An update on Agile methods 2008
Dorothy Tudor explores the elements of Agile project delivery with specific reference to DSDM Atern. She examines the factors which make success more likely in an Agile project and gives steps to successful implementation.
What is Agile?
The modern definition of Agile development approaches has evolved since the mid-1990s as part of a reaction against 'heavyweight' methods, perceived to be typified by use of the waterfall model of development.
An Agile approach is one which delivers business-focused results quickly and effectively. It should do this reliably, predictably, and within a tightly-constrained budget and a specific timeframe, whilst delivering the benefits for which the project was initiated. An Agile method generally promotes incremental development and delivery. It will advocate simplicity ¡V it should be easy to learn, use and modify, and sufficiently well-documented to be teachable and repeatable. It should be adaptive, having the ability to allow for changes in requirements occurring during the development cycle whilst controlling 'scope creep'.
It should also offer a set of best practices that allow for rapid delivery of high-quality product; a leadership philosophy that encourages team work, trust, empowerment and accountability; a team-based approach, requiring close customer/developer collaboration, and a business-focused approach that aligns development and delivery with customer needs and company goals. And finally, it should also promote a sustainable pace of working and visibility of progress.
Notable Agile methods include:
- Adaptive Software Development (ASD);
- Extreme Programming (XP);
- Feature Driven Development (FDD);
- Dynamic Systems Development Method (DSDM). DSDM has recently been re-launched as DSDM Atern.
Adaptive Software Development (ASD) proposes a new way of seeing the software development in an organisation, allowing an evolutionary approach with the expectation of late changes. It provides solutions for the development of large and complex systems. The method encourages incremental and iterative development, with constant prototyping. It claims to provide a framework with enough guidance to prevent chaos, but not so much that it would suppress emergence and creativity.
The Scrum approach has been developed for managing the software development process in a volatile environment. It is an empirical approach based on flexibility, adaptability and productivity. Scrum leaves it open for the developers to choose the specific software development techniques, methods, and practices for the implementation process. It involves frequent management activities aimed at consistently identifying any deficiencies or impediments in the development process, as well as in the practices that are used. It works through business representation by means of a designated 'product owner' prioritising requirements in a 'product backlog'. The team then self-organises to deliver value in short, typically 30 day, sprints.
Extreme Programming (XP) is a collection of software engineering practices aimed at enabling successful software development despite vague or constantly changing software requirements. Some of the main characteristics of XP are short iterations with small releases and rapid feedback, close customer participation, constant communication and coordination, continuous re-factoring of code, continuous integration and testing, collective code ownership, and pair programming.
The Crystal approach presents a number of different methods from which to select the most suitable one for each individual project. Crystal also includes principles for tailoring these methods to fit the circumstances of different projects. Each member of the Crystal family is marked with a colour indicating the 'heaviness' of the method. Crystal suggests choosing the appropriate-coloured method for a project based on its size and criticality. Larger projects are likely to favour a more rigorous interpretation of Crystal than smaller ones. Crystal methods are open to the use of any development practices, tools or work products, thus allowing the integration of, for example, XP and Scrum practices.
Feature Driven Development (FDD) is a process-oriented software development method based on short iterations. It consists of five basic activities and focuses on the design and building phases. FDD embodies iterative development with other best practices believed to be effective in industry, some from the 'Lean' approach pioneered by Toyota. The specific blend of these ingredients makes the FDD processes unique for each project. It emphasises the quality aspect throughout the process, and includes frequent and tangible deliveries, along with accurate monitoring of the progress of the project.
Dynamic Systems Development Method (DSDM) is a method developed by a not-for-profit consortium in the UK. It comprises best practices brought together in a clear and customisable delivery framework. It defines roles at the governance level as well as team level, and includes both user and technical roles. It is a scalable approach to different types and sizes of project. The fundamental idea behind DSDM is that instead of fixing the amount of functionality in a product, and then adjusting time and resources to reach that functionality, it is better to fix time and resources, and then adjust the amount of functionality accordingly, but always with a business value focus. The latest version, DSDM Atern, has been extended to cover not only software projects but all types of project.
Comparison of the lifecycle coverage
The lifecycle coverage of the foremost agile approaches varies. Crystal focuses on the design, build and test areas. XP concentrates on the ways of working of the development team. Scrum allows for the integration of development practices from elsewhere, whilst providing guidance on the management aspects of the process and on product delivery. ASD covers the prototyping and innovative iteration of the development process, whilst DSDM Atern addresses the project control and management aspects, at the same time giving techniques and approaches to assist team-based iterative development. The table below is a rough guide to the lifecycle coverage offered by the various Agile approaches.
Table 1: Comparative lifecycle coverage of popular Agile approaches.
How an Agile approach adds benefit
For a more detailed analysis of an Agile approach, I have chosen DSDM Atern, which gives the widest lifecycle coverage and is the best-documented and most scalable of the Agile approaches.
DSDM Atern comprises a lifecycle framework, a set of principles, team roles and responsibilities, and a set of best-practice techniques and guidance. It can be used alone as a project delivery framework, or can be dovetailed with PRINCE2TM to deliver effectively in a changing environment.
The focus is always on enabling something of business value to be delivered as early as possible, and then on delivering further features regularly. This is achieved by involving customers, users and developers as active members of the project team. The approach is equally applicable where an 'off the shelf' solution is sought rather than an in-house development. The approach relies on breaking the project into small, cohesive, feature-based pieces and planning the development and delivery of features incrementally in short timeboxes. It also involves organising the project personnel into small multi-skilled teams. The Agile approach achieves its promise of on-time right-quality delivery of business value through business-driven prioritisation of features, and by the use of specific techniques to promote effective communication.
For example, DSDM Atern uses: Modelling techniques to make ideas visible and aid communication; Prototyping and iterative development to illustrate and evolve solutions; Firm project control using short timeboxes and a completed-product focus.
A sound, customisable project framework; Clearly-defined roles, responsibilities, with levels of authority for the project personnel and guidance on team-working; The involvement of stakeholders through well-run, facilitated workshops, for discovering facts and requirements, obtaining consensus, buy in and decisions.
DSDM Atern has eight principles which are fundamental to the successful application of the approach, as shown in the table below.
The DSDM Atern website provides guidance on the effective application of these principles. The approach is free to use and free to view on www.dsdm.org.
Successful adoption of Agile
A number of changes may be needed within an organisation in order to adopt an Agile approach. Significant user resource will need to be committed to Agile projects. This will have a fundamental impact on the work patterns of the users involved. Management may, for example, have to arrange cover for parts of the day-to-day jobs of key users whilst they are involved in projects. Users will need to be educated in the project approach, since many user jobs are event-driven rather than project driven and the project discipline may be unfamiliar. User management will need to enable their staff to participate fully in projects. Management must become accustomed to empowering staff to make decisions over which the managers themselves would previously have had full control.
DSDM Atern provides a Project Approach Questionnaire designed to uncover these essential issues. A set of carefully-crafted questions is provided, which should be asked at the outset of any Agile project, and kept under scrutiny during the project as areas of potential risk. The questions from a completed Project Approach Questionnaire are presented in the form of a Radar Chart, as shown in Figure 1.
Figure 1 - DSDM Atern's Project Approach Questionnaire, presented as a Radar Chart
This highlights areas of potential risk in a visible way. The scale runs from 1 (strongly disagree) to 5 (strongly agree). From the chart, it would be evident that the hypothetical project presented has a clear business driver (a positive indication) but that ownership is unclear, which is a risk.
Steps for introducing an Agile approach
The approach to introducing Agile will depend on the maturity of the organisation and the project approach already in place. However, a few key steps to success are:
- Identify a senior management champion who will support the introduction and adoption of the approach;
- Arrange management briefings in both the benefits and the requirements of the approach;
- Look at staff reward, performance management, targeting and bonus arrangements to ensure that business staff will not be disadvantaged by spending time involved in projects;
- Identify coaches, support and training for the Agile approach;
- Ensure that guidance, support, tools and in-house project templates are available;
- Select a pilot project which is meaningful - people will not adhere to timeboxes if they do not believe that the deadline is meaningful;
- Gather metrics from projects;
- Celebrate successes.
Compared with 'heavyweight' project approaches, Agile provides greater flexibility, a higher return on investment, and a higher speed and quality of delivered solutions, as perceived by customers of the project. In addition, greater visibility of progress during the development process leads to increased management confidence during the project. Agile approaches are already widely used in both public and private sector organisations. They vary widely in their coverage of the development lifecycle. The Agile approaches give a more controllable project with on-time delivery and a focus on maintaining the quality of deliverables. However, management must accept the cultural changes that Agile involves and acknowledge their responsibility in supporting such approaches if the organisation is to reap the significant benefits they can offer.
OCLC, the Online Computer Library Center based in Dublin, Ohio, formed in 1967, develops software for use by libraries and their users, museums and academic institutions. Researchers, students, scholars, professional librarians and other information seekers use OCLC services to obtain bibliographic, abstract and full text information. More than 54,000 libraries in 96 countries and territories around the world use OCLC services to locate, acquire, catalogue, lend and preserve library materials.
TCC has worked with OCLC, to incorporate the agile approach DSDM into a development culture that was deeply-rooted in 'traditional' software development methods. The benefit OCLC was trying to achieve was delivery of the primary functionality for systems in a fraction of the time required by traditional approaches.
OCLC's own metrics dashboard has been used to track the effectiveness of the development cycle from 2003 to the present date. This dashboard tracks the results for project schedule, deliverables, costs, and process effectiveness.
George Walter, OCLC quality director says, 'The advantage of having a common method, process, and language to use within our project teams among the various development groups gave us the incentive to continue using DSDM even as other agile approaches emerged.'
OCLC believes that DSDM provides an approach characterised by quick time-to-market through flexibility of requirements. Project teams expect to give the users the necessary functionality very quickly and add enhancements incrementally through subsequent iterations.
For each new project, DSDM training was offered to the whole team, and the initiation of the new project followed immediately, with coaching of staff members through the real world application of the method.
Not everyone initially welcomed the change with enthusiasm. Some users expressed the concern that the MoSCoW prioritisation would mean that they would get less functionality. However, experience has shown that the users working alongside developers are able to exercise control over what is done and what is omitted, and the on-time delivery has proven to be a very valuable aspect of the approach. Quality of delivery had to be reconciled with organisational expectations. This aspect was made easier as it was an initiative of the Quality function within OCLC to introduce DSDM. The senior Quality staff had a clear idea of where compromises could be made, but also of what practices would be acceptable. They also had the will to give the new approach a chance, which paid enormous dividends in the end. George Walter concludes, 'We are moving in the right direction. Whereas most projects used to take 18 to 24 months to deliver a product, they now typically take two to three months to deliver significant value. This has been a very big WIN for us!'
Dorothy Tudor is technical director at leading Agile training and consultancy company, TCC Ltd.
(ITadviser, Issue 56, Winter 2006)