To Speed Up, Build With Skill
Accelerating Development by Enhancing Team Skills
Push for Realistic, Achievable Increments: The chapter emphasizes starting with tiny, complete products built in small cycles, often revealing initial inefficiencies in the team's ability to deliver fully integrated product increments within short time frames like two weeks. To counteract struggles with pace, the approach discourages extending deadlines and instead advises setting even shorter cycles (e.g., one week or one day). This method exposes underlying issues and galvanizes teams into optimizing build, integration, and test times.
Reshape the Output Expectations: Moving to weekly or daily integrations pushes teams to enhance focus and swiftly address changes. If even basic integration can't be achieved in a week, it pushes the issue to the forefront, allowing it to be tackled head-on.
Implementing Robust Technical Practices: A significant portion is dedicated to urging teams to adopt acceptance test-driven development (ATDD) and test-driven development (TDD) to pre-emptively eliminate defects and ensure that iterations do not circulate back from Quality Assurance (QA) with issues. Embracing these practices provides higher confidence in the functionality and stability of the software being delivered.
Cross-Functional Team Formation: To reduce dependencies on external departments such as database administrators or user interface designers, embedding these critical skill sets directly into the main team is advocated. This structure enhances self-sufficiency and speeds up integration and testing processes.
Sharpening the 'Definition of Done': The narrative suggests progressively sharpening the team's 'Definition of Done' for each sprint. Early on, it might be acceptable for features to run individually on a developer's machine but evolving this definition to require integration and thorough testing as part of the definition enhances both the product quality and team capability.
Progress Perception vs. Reality: Initially, setting stringent definitions and achieving them within tight sprints may seem slow and laborious. However, this method eliminates the prolonged test-and-fix phases that traditionally follow development cycles. The perception of slowness is overshadowed by the actual pace gains from reduced rework and smoother, more predictable development cycles.
Investment in Skills: The most crucial advice offered is the investment in continuously developing the team's skills. This investment is seen as pivotal, reducing time wasted on defect resolution and promoting a smoother, more effective performance across development cycles.
Summary Insight: Emphasizing skill development and tightening sprint requirements transforms perceived slow development phases into highly productive cycles. This approach fosters a disciplined, skillful team that incrementally delivers a robust, tested, and complete product without the typical drag of post-development quality issues. Such practices not only enhance the speed but also the quality of development, enabling earlier delivery of valuable software features.