The professional goal of every software developer and every development team is to deliver the highest possible value to employers and customers. Yet our projects fail, or fail to deliver value, at a dismaying rate. The upward spiral of process inflation, though well intentioned, is culpable for at least some of this failure. The principles and values of agile software development were formed as a way to help teams break the cycle of process inflation and to focus on simple techniques for reaching their goals. At the time of this writing, there are many agile processes to choose from: SCRUM,[2] Crystal,[3] feature-driven development (FDD),[4] adaptive software development (ADP),[5] and Extreme Programming (XP).[6] However, the vast majority of successful agile teams have drawn from all these processes to tune their own particular flavor of agility. These adaptations appear to be coalescing around a combination of SCRUM and XP, in which SCRUM practices are used to manage multiple teams that use XP.
|