Product, Process, People
Faced with major redirection in release 2.0 of their product, the Sketchbook Pro© team introduced in Chapter 1 delivered the revised product in 42 days. As I quip in workshops, “I know teams who would have complained for 42 days with comments such as: “They don’t know what they want. They are always changing their minds.” Adaptability has three components—product, process, and people. You need to have a gung-ho agile team with the right attitude about change. You need processes and practices that allow the team to adapt to circumstances. And you need high quality code with automated tests. You can have pristine code and a non-agile team and change will be difficult. All three are required to have an agile, adaptable environment.
The barrier to agility in many software organizations is their failure to deal with the technical debt in legacy code. The failure is understandable because the solution can be costly and time consuming. However, failure to address this significant barrier keeps many organizations from realizing their agile potential. It took years for legacy code to degenerate; it will take significant time to revitalize the code. It requires a systematic investment in refactoring and automated testing—over several release cycles—to begin to solve the problems of years of neglect.