21 Mar Agile Revolution: A new era of software delivery
IT initiatives continue to experience high rates of failure. As a result, many organizations are losing faith in IT as a valued partner. The result stifles innovation, growth, and a company’s competitive advantage.
Returning value to IT requires shedding the flawed processes of yesterday, and introducing methods that create greater alignment between IT and business by promising incremental delivery of functional software.
Software development is hard work, so we have been taught that the best way to solve the difficult challenges inherent to IT initiatives is to treat software development as an engineering discipline. Yet we continue to fail.
• After five years and $26 million dollars, the University of Wisconsin System discontinued implementation of a system-wide payroll and benefit initiative.
• The Department of Workforce Development recently canceled the EnABLES project. Overall, $23.6 million was spent on the project, including approximately $10 million on the phase II appeals system that was never completed.
• Wisconsin is attempting to recover $2.1 million after a failed Oracle-based e-mail installation.
• In 2005, after spending more than $170 million, the FBI canceled development of it’s Virtual Case File (VCF) without deploying it.
I can promise that many other organizations not subject to public scrutiny experience failure rates with equally staggering numbers. Why do we fail? In the case of the VCF, failure was the direct result of poorly defined and evolving requirements and overly ambitious schedules.
The original CHAOS report, published by The Standish Group in 1994, supports the claim that the primary impediment to successful software delivery surrounds requirements. Since the publication of that report, more evidence has emerged to support its findings:
• 35 percent of requirements change throughout the software lifecycle (Jones, C. 1997. Applied Software Measurement. McGraw Hill.)
• 45 percent of delivered features are never used. (Johnson, J. 2002. Keynote speech, XP 2002, Sardinia, Italy.) (Also see Feature Driven Development.)
• 82 percent of projects cited incomplete and unstable requirements as the number one reason for failure. (Thomas, M. 2001. “IT Projects Sink or Swim.” British Computer Society Review.)
• Large projects, those costing more than $10 million, are successful exactly zero (0) percent of the time. (Johnson, J. 1999. “CHAOS Into Success.” Software magazine.)
Unfortunately, many organizations attempt to rectify this situation by applying traditional software development techniques that emphasize early requirements elicitation and stabilization. While a noble goal, it is not possible to stabilize that which is inherently unstable, and organizations are typically left with processes that are little more than slight variations of the faulty practices that have plagued the software industry for decades.
Clearly, a more nimble and adaptable approach is required.
The Agile Revolution
In 2001, a group of luminary experts convened in Utah to discuss the dismal state of software development and delivery. What emerged was The Agile Manifesto, a symbolic proclamation denouncing the traditional development methods and practices that have led the software industry astray.
Today, we are feeling the affects of the agile software development movement as it redefines software delivery and continues to prove its value on enterprise IT initiatives.
• 88 percent of projects cited improved productivity after applying agile techniques. (Corporate Report, 2003. Agile Methodologies Survey Results. Shine Technologies Pty Ltd., Victoria, Australia.)
• 84 percent of projects cited improved quality after applying agile techniques. (Corporate Report, 2003. Agile Methodologies Survey Results. Shine Technologies Pty Ltd., Victoria, Australia.)
• The most recent CHAOS report published by Standish Group included agile practices as one of the top 5 factors influencing the success of software related projects.
Agile methods separate themselves from traditional software development practices through elegant simplicity. By stressing frequent and incremental delivery of functional software through intense collaboration, teams realize increased alignment between IT and business, reduced risk, greater adaptability, and increased quality.
In an age where IT services are viewed as an easily obtainable commodity, the onus is on IT to earn back the trust of our most valued partner. To do so requires innovative use of technology that exceeds the desires of our customers. Such is the benefit of agile processes and practices.
But how? Over the next few months, we will explore the values, beliefs, principles, benefits, and characteristics of agile software development.
He is the author of Java Design: Objects, UML, and Process, and a frequent contributor to The Agile Journal, where he writes The Agile Developer column. His personal website is www.kirkk.com, and his planet is http://planet.kirkk.com.
The opinions expressed herein or statements made in the above column are solely those of the author, and do not necessarily reflect the views of Wisconsin Technology Network, LLC.
WTN accepts no legal liability or responsibility for any claims made or opinions expressed herein.