Evaluating Agile Software Development Programs
Agile development used to be relegated to small-scope software development projects. No longer, says IBM's vice president of development transformation and integration. She argues that Agile can adapt to the most complex of development projects.
Fri, January 23, 2009
CIO — Although it may not be obvious, software is hidden in crucial aspects of your everyday life, from the bank ATM that gives you money, to the E-Z Pass that allows simplified payment methods to major roadways. Delivering high-quality software efficiently is critical to businesses in every industry, and more importantly to end-users. Eighteen-month product cycles are no longer acceptable, and businesses are looking for ways to become more agile and adapt quickly to changing market demands.
Despite the demands of an efficient software development program, many of today's development projects still function and rely upon a traditional methodology that requires defining all requirements up-front, with little, if any, room for change. The problem with this approach is that most stakeholders are not adept at accurately defining their needs. Coupled with the dynamic pace of technological advances, the results are disheartening. U.S. research firm Standish Group found that 90 percent of software projects are completed late, 66 percent are deemed failures and 30 percent are scrapped.
As you may know, Agile development is a process methodology that enables companies to deliver software more rapidly. It is an incremental, collaborative method aimed at producing high-quality software in a cost-effective and timely manner.
In the early days of Agile, the applications where Agile development was applied were smaller in scope and relatively straightforward business applications. Today, the picture has changed significantly. As companies want to apply Agile development to a broader set of projects, Agile needs to adapt to deal with the many business, organization and technical complexities faced by today's software development organizations.
To properly analyze the cost of a transition to Agile, you must weigh costs against the benefits, while taking into account any reduction in development risks. For example, a commitment to an Agile methodology requires changing the way engineers spend their time and how they approach all software development activities. Highlighted here are some key points as to why there is such a switch on focus including:
Individuals and interactions (over processes and tools)
Working software (over comprehensive documentation)
Customer collaboration (over contract negotiation)
Responding to change (over following a plan)
You must also consider the role you will play as manager. Most managers of Agile and lean development programs take a more hands-off approach. They allow team members to spearhead specific aspects of projects to foster the kind of environment needed to enable the most successful switch to Agile and lean development.
Agile increases the efficiency of a team's software delivery, which translates into customer satisfaction and revenue. Efficiency is about eliminating waste in a particular activity, which may or may not have an impact on the larger goal. However, efficiency does not suggest that you are doing the right thing, or doing things in the right order. Efficiency is bigger and more important since it suggests that you achieved a goal.


