What is Product team?
Product teams provide customers with long-term product development capacity, which provides managerial, delivery and technical support to
take a product from idea stage to a market ready state. Product teams are usually run by a programme (or product) manager and starts with
the business and technical analysis of the product idea, planning and documentation of the product roadmap, staffing key technical roles
and the development of the technical capabilities of the product.
The product team is made up of specialists across all phases of the software development life cycle, including Planning, Analysis, Design,
Development (or Implementation), Testing and Maintenance.
What is a Feature team?
Feature teams are cross-component, cross-functional, and a long-lived squads that deliver end-to-end customer features, one by one, against the product backlog. These
teams are components to achieve efficient Agile development. Since Feature teams are cross-component and cross-functional, they have the ability and focus to deliver features
across the entire architecture, from database, API and user interface to infrastructure provisioning and deployment automation.
Feature teams are often constructed around an architect (or technical lead) and may include analysts, software engineers and testers. They are also
often sized on the Agile heuristic of 7+/-2 resources. This has been shown to be highly efficient delivery teams, with low communication overhead and
high output velocity.
Depending on the project and delivery specifications, Feature teams may cycle into and out of projects at a much higher rate than dedicated teams. This
is often due to the impactful and agile nature of these teams.
Which approach will work best?
Clients are often presented with this question. More often than not, the decision rests on a small number of considerations.
The size of the project (or product) is often a good indicator of the best approach to follow. Large enterprise products with multiple, complex components
that require significant technical manpower is often best delivered within the Product team framework. The benefit with Product teams is the overarching
coordination an experienced Programme manager can ensure. With this approach, a large team of engineering resources can be allocated into key delivery
areas on a need and priority basis. Complex systems often require significant foundational work to be prioritised before specific functional requirements
can be addressed. Under these conditions, resources are flexibly assigned to unlock certain prerequisite non-functional capabilities (infrastructure, etc.)
before functional development can be delivered (applications, database schemas, services, APIs, etc.). As more and more non-functional deliverables are provided,
the focus can shift to functional capabilities required to fulfil other requirements of the product.
Feature teams, on the other hand, are recommended for smaller projects which are already supported by existing (or client-internal) product teams. In these
cases the Feature teams will be applied to deliver specific capabilities in support of the larger product roadmap. These capabilities are often localised
features (such as processing or integration capabilites) which do not constitute the entire product, or are significantly smaller products, which can be
delivered without unnecessary product management overhead.
Product teams are usually best suited where clients don't have sufficient technical capacity to deliver and maintain complex products over long periods of
time. Feature teams are best suited to provide additional technical and engineering capacity to organisations with their own engineering talent, but who may
be engaged in other projects to deliver products or features themselves within the time available to do so.