How to Transition to Agile Software DevelopmentPosted 2013-11-06 Email Print
WEBINAR: Available On-Demand
Innovate and Thrive: How to Compete in the API Economy REGISTER >
Agile software development involves building software iteratively and incrementally. The results of early phases influence the planning of later phases.
By Lawrence Mantrone
Would you accept a 60 percent failure rate for your software development projects?
According to the Standish Group’s 2011 CHAOS report, which studied projects undertaken between 2002 and 2010, fewer than 40 percent of software development projects are likely to succeed in delivering desired features on time and under budget.
You are not alone if you find these statistics unacceptable. Organizations are demanding better technology project execution, but not just due to cost overruns, missed schedules and quality issues. Management also wants to harvest the business value expected from new software sooner while using fewer resources, as the Scrum Alliance noted in its report.
Technology managers have tried for decades to improve software delivery by applying project management best practices originally developed for construction or engineering projects. These approaches rely on predictive planning and tight control over requirements and schedule changes. Their mixed results in improving project success have led more organizations to turn to agile methodologies in an effort to do better.
Agile methods treat software development as an innovation process. They accept the resulting uncertainties and reject predictive techniques in which teams attempt to plan, define and build software in preconceived sequential steps. They favor building software iteratively and incrementally, and the results of early phases influence the decisions and planning of later phases.
Agile approaches empower individual team members by promoting close, unstructured collaboration within self-managed teams. This contrasts with top-down management approaches in which senior managers dictate assignments to junior team members.
Conventional software development processes define requirements in detailed documentation, which are then handed off to designers and developers for implementation. Agile teams start with brief feature descriptions and work out details through repeated cycles of discussion, development, testing and review.
The use of agile practices can help teams better manage software development project risks. Incremental development produces functional software earlier and eliminates reliance on often-unreliable predictive estimation techniques. Software testing and review take place throughout the development process rather than being concentrated at its end. Therefore, project sponsors can quickly make informed decisions based on actual progress.
The 2011 CHAOS report suggests the use of agile methods might be paying off. The study showed projects were three times more likely to succeed when agile methodologies were employed. Organizations that have tried agile methodologies tend to keep using them. The Scrum Alliance reported that 47 percent of the respondents to its 2013 survey are using the popular agile framework known as Scrum “frequently” or “always.”
Agile methodologies enable companies to become superior competitors by improving their chances of completing projects within cost and schedule constraints. Companies also find that the use of agile approaches allows them to better meet the requirements of their internal and external customers. Faster software deployment accelerates innovation, efficiency and revenue, the Scrum Alliance found.
Today, companies must be able to innovate continually to survive. This has led many to consider alternatives to predictive planning processes deployed within conventional, pyramid-shaped management structures in favor of agile product development, which can reduce product development life cycles from years to months.
Many organizations find traditional processes and management structures to be too time-consuming, less able to deal with complex problems, and not responsive enough to new product requirements that are dictated by changes in business or regulatory environments.
Agile methodologies are well-suited to address the demand for continual learning and the psychological needs of today’s workforce, especially Millennial employees (those born after 1980). Agile processes emphasize positive work relationships based on mutual respect. They are designed to enable self-managed teams to create products without being tied to unrealistic goals and schedules. Agile teams are expected to be multidisciplinary, and their members are encouraged to master new skills.