Http://www.infoq.com/articles/scaling-lean-agile-feature-teams
Feature team
Long-lived-
Team stays together so they can 'Jell 'for higher performance; they take on
New Features over time
Cross-functional
And cross-component
Co-located
Work on a complete
Customer-centric feature, internal SS all components and disciplines (analysis,
Programming, testing ,...)
Composed
Generalizing specialists
Feature teams work independently
Being empowered and given the responsibility for a whole feature. Advantages
Include:
Increased Value Throughput
-Focus
On delivering what the customer or market values most
Increased
Learning
-Individual and team learning increases because of broader
Responsibility and because of co-location with colleagues who are
Specialists inVariety
Of areas-critical for long-term
Improvement and acceleration; CES the waste of underutilized people
Simplified
Planning
-By giving a whole feature to the team, organizing and planning
Become easier-for example, it is no longer necessary to coordinate
Single-specialist functional and component teams
Reduced waste
Of Handoff
-Since the entire co-located feature team does all work
(Analysis, design, code, test), handoff isDramatically
Reduced
Less waiting;
Faster cycle time
-The waste of waiting is already CED because handoff is
Eliminated and because completing a customer feature does not have to wait
On multiple parties each doing part of the Work serially
Self-managing;
Improved cost and efficiency
-Feature teams (and scrum) do not require
Project Manager or matrix management for feature delivery, because
Coordination is trivial. The Team has responsibility for end-to-end
Completion and for coordinating their work with others. data shows
Inverse relationship between the number of managers and development
Productitasks, and also that teams with both an internal and external focus
Are more likely to be successful [ab07]. Feature teams are less
Expensive-There isn' t the need for extra overhead such as project managers .-
For example [jones01]:"
The matrix structure tends
To raise the management head count for larger projects. Because Software
Productiincludeclines as the management count goes up, this form
Organization can be hazardous for software.
"
Better
Code/Design Quality
-Multiple feature teams working on shared Components
Creates pressure to keep the code clean, formatted to standards, constantly
Refactored, and surrounded by using unit tests-as otherwise it won't be
Possible to work with. On the other hand, due to long familiarity, component
Teams live with obfuscated code only they can understand.
Better
Motivation
-Research [ho80, hackman02] shows that if a team feels they
Have complete end-to-end responsibility for a work item, and when the goal
Is customer-directed, then there is higher motivation and job
Satisfaction-important factors in productivity and success.
Simple
Interface and module coordination
-One person or team updates both sides
Of an interface (caller and called) and updates code in all modules; because
The feature team works stand SS all components; no need for inter-Team
Coordination.
Change is
Easier
-Changes in requirements or design (
We
Know it's rare, but we heard it happened somewhere once
)
Are absorbed by one team; multi-team re-coordination and re-planning are not
Necessary.
Component team
Summary
Disadvantages:
Promotes sequential Life Cycle
Development and mindset
Limits learning by people working
Only on the same components for a long time-the waste of underutilized
People
Encourages doing easier work
Rather than most valuable work
Promotes some component teams
Do "artificial work"
Causes long delays due to major
Waiting and handoff wastes
Encourages code duplication
Unnecessarily promotes
Evergrowing Number of developers
Complicates Planning and
Synchronization
Increases bottlenecks-single
Points of success are also single points of failure
Fosters more poor code/Design
Transition
There are several tactics
Transitioning to feature teams:
Reorganize
Broad cross-component feature teams
Gradually expand
Team Responsibility