|
Extreme Programming methodology as others Agile software developments is based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The five fundamental reasons why Alkia uses Extreme Programming are: - Lower costs
- Early detection and cancellation of failing projects
- Higher quality software
- Improved control of a project
- Reduced dependence on individuals and increased flexibility
Agile methods promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. Conceptual foundations of this framework are found in modern approaches to operations management and analysis, such as lean manufacturing, soft systems methodology, speech act theory (network of conversations approach), and Six Sigma.
Lower Costs through Improved return on investment This is the fundamental reason to use agile methods, and it's achieved in a number of different ways. In an agile project, the initial requirements are the baseline for ROI. If the project runs to completion with no changes, then the business will get the projected returns. However, by providing frequent opportunities for customer feedback, agile methods let customers steer the project incrementally, taking advantage of new insights or changed circumstances to build a better system and improve the ROI. By delivering working software early and often, agile projects also present opportunities for early deployment and provide earlier return on smaller initial investments. One project that I worked on used the latest deliverable to analyse a real problem that cropped up about 50% of the way into the development, and potentially saved millions of dollars. Early cancellation of failing projects It's common to observe projects to be on track for the first 80% or more of the schedule, only to be delayed for many months. In this situation sponsors face a difficult choice. Do they abandon the project after spending 80% of the budget or continue to fund the project in the hope of getting some return on the investment? Often, the reason this happens is optimistic reporting of progress on abstract intellectual tasks such as analysis and design. It's difficult, if not impossible, to accurately judge the completeness of analysis and design until you start implementation, which means in traditional methods delays will not crystallise until late in the project. Agile projects avoid this situation by performing analysis, design and implementation in short increments, and judging progress by the delivery of working software, which gives much more solid feedback on actual vs planned progress. Overly optimistic planning becomes obvious much earlier in agile projects, giving the sponsor the chance to review the costs and benefits of the project, and where appropriate cancel the project with minimal investment. Higher quality Of the four fundamental variables you can use to control a software development project, cost, time, scope and quality, most agile methods explicitly use scope as their control variable. All agile methods emphasise the production of high quality software, and extreme programming in particular adds a number of practices to support this objective. I've directly observed the higher quality of software produced using XP - in one case a project that required six developers for six months, and was subsequently used by about 250 people, had only one reported defect in the first six months of use, and this defect was cosmetic. Improved control Agile projects may produce fewer paper artefacts, but by running in short iterations and forcing convergence on running, production quality software at the end of each iteration, they give sponsors and customers improved visibility and control of a project. This is further enhanced by emphasis on integrated, multi-disciplinary teams, where information is routinely shared, and highly visible. Many agile teams will find that they initially need to do some extra work to present their progress in a way that conforms to the expectations of the rest of the organisation. This certainly shouldn't be neglected, but as an organisation gets more experience with agile projects the need for this sort of reporting facade should decrease. Reduced dependence on individuals and increased flexibility Agile projects emphasise sharing of information, and performing analysis, design and coding on a team, rather than individual basis. This helps prevent situations where development is critically dependent on an individual, who might become unavailable on short notice. It also means that development doesn't become bottlenecked. On an agile project it should be possible to get everyone on the team working in the same area of the system, and change this area from one week to another depending on business priorities. This isn't a definitive list of business benefits as I'm sure that other agile methods practitioners would have their own lists, shaped by their own personal experiences. However, it's clear to me that agile methods do deliver direct benefits to business, to the point where I have seen business people insist that their new project manager use a particular agile method, because it delivered what they needed the last time, even if they weren't aware of the detailed technical practices. For businesses in turbulent environments, the flexibility and feedback provided by agile methods may be particularly critical. In closing, it's worth pointing out that agile methods, including XP, operate best in an environment of trust and respect. Businesses who have been burnt by earlier projects may be inclined, quite rightly, to be wary of their next software development project. In that case some agile practices need to be modified, and special efforts need to be made to restore trust and respect before the organisation can get the full benefits of agile methods. However, their will still be benefits from agile methods, and they may be a key ingredient in the process of restoring trust. |