Organizing by Feature
Focus on Value Delivery through Features: To maximize the speed and efficiency of value flow, organizing work around features rather than skill sets or departments is paramount. Features represent digestible units of value that can be clearly understood and managed.
Team Structure Eliminates Delays: Traditional organization by skill-set necessitates passing work among various teams, creating delays and quality issues due to multiple handoffs. Organizing small, cross-functional teams around the creation of complete features minimizes these handoffs, aligning responsibility with authority, thus enhancing both pace and quality of development.
Practical Implementation and Challenges: - Feature Teams: These are small groups equipped with all necessary skills to build a complete feature. This organization style supports quick and easy allocation of work, enhances visibility of progress, and focuses team efforts on dedicated features. - Adaptation to Feature Teams: Shifting to feature teams may be challenging and might represent a change in organizational structure, but the potential benefits in delivery speed and quality justify the effort.
Resource Constraints and Solutions: - Specialist Shortages: While a perceived lack the of specialists (like database or UX experts) may seem a barrier, often, individuals within the organization possess 'near-expert' capabilities that can be honed. - Communities of Practice: Establish communities (e.g., Database or UX Community of Practice) around these skills within the feature teams to foster skill development and share expert guidance without forming new departments. This helps in building expertise across the board and ensures that learning and improvement are continuous.
Scaling Made Simpler: Organizing by feature simplifies scaling as it largely involves managing a series of independent, cross-functional teams working in parallel. This method circumvents the complexities and high costs associated with traditional scaling methods in large organizations.
By implementing these structures and strategies, organizations can significantly accelerate their software development processes, making them more responsive to changes and more aligned with delivering high-value features efficiently.