A feature team typically is composed of a Product Owner (in an Agile shop), along with developers working on multiple platforms focused on delivering product features. This is more common in a business that’s trying to deliver and maintain feature parity across web and mobile at the same time. These are the two major patterns I’ve seen:
Pro – Feature Parity & Product Consistency
Feature parity tends to be a strong desire from a market perspective (e.g. your mobile users can do the same on iOS and Android). One team implementing and coordinating the work for a feature on all platforms makes it easier to maintain feature parity.
Product consistency is also easier because as features are implemented in the product, they go into all platforms at the same time, which makes it easier for Product/Design/Test to help drive consistency in the app.
Pro – Less cross platform communication across teams
Feature teams should be setup to be independent and equipped to solve their problems with as few external dependencies as possible. Since you should have all the developers you need to ship to all platforms on one team, this removes a lot of external communication. Less communication enables faster decisions and quicker execution.
Con – Harder to staff / Developer Morale
Con – Requires strong Product leadership
You can easily argue that all products require strong product leadership (you’d be right), but when delivering across multiple platforms, it requires strong product choices to make sure you’re deliver smartly to your consumers. In the Platform Team case, it’s easier to align your choices to “what’s expected on this platform” (e.g. let’s just use the HIG), but that become more complicated when you have to make decisions across three disparate platforms (e.g. should this feature be more like web or more like iOS?).
Con – Increase test demands on the team
One of the bigger cons is that the testing effort increases as the number of platforms increase — even if you’re in a hybrid use case. If you have a team composed strictly of developers (this is almost same as a Platform Team from this perspective), then Alice and Bob should write all the unit, integration, and UI tests needed — on their platform. However, if you have dedicated QA developer like Charlie, he may have to write tests on both platforms.
Emphasizing team delivery vs. individual delivery is a way to overcome this, but depending on the staffing mix, it’s easily possible to have developers swamp the QA developers on a team, which can get tough fast.