Follow Agile Journal on Twitter
- Loading...
Upcoming and Recent WebCasts
|
| Becoming an agile IT organization is a process of continuous improvement and evolution in a number of different areas such as requirements gathering, project management, and development. This can be fulfilled in many different ways, with process changes enabling or inhibiting responsiveness to greater or lesser degrees. Ordering the different ways to evolve by degree of agile affinity defines a lightweight "maturity model" that allows an organization to asses current state, set targets, plot a course for continuous improvement, and build and measure against a business case for adopting Agile practices.
Evolutionary Stages Application development involves a number of different activities ranging from requirements gathering to development to governance. Each of these, in turn, can inhibit or engender IT's responsiveness to changes in the business environment.
For example, consider how the way in which requirements are gathered impacts IT responsiveness. At one extreme, a big up-front design does not allow {sidebar id=1} for much flexibility in functionality once the project has begun. At the other, having requirements spontaneously expressed as end-to-end statements of functionality that include a formal measure of business value delivered, and storing requirements in a global repository to be acted upon opportunistically, can provide maximum flexibility.
Identifying polar extremes is useful guidance: e.g., does an organization tend toward one extreme or the other? Beyond that, extreme perspectives raise questions and concerns as an organization considers how it is to improve:
Clearly, having a presentation of stages of affinity would go a long way to answering these questions.
Prescriptive Agile? Before going any further, the objective of this approach is not to propose an assessment-cum-"agile certification." Nor is it to define absolute stages of evolution through which every project, department or organization will mature. It is meant to provide a way to recognize the relative strengths and weaknesses in how work is done as well as the inhibitors and enablers to business-IT alignment. Defined across a complete set of IT activities, such a model would allow for assessment of "agility" to be more fact based and less a matter of opinion.
Consider again the example of requirements gathering. From least to most agile, progression might look something like this:
With this level of detail, current and future state and the gap separating them become easier to map.
Multiple Dimensions In addition to requirements gathering, a complete maturity would include other activities which inhibit or engender agility, including:
There are organizational considerations and inter-dependencies to consider. For example, consider a department of "stove-piped" teams, each working on a largely technical slice of an application but not working on the whole. In this case, an end-to-end, testable statement of functionality would span teams and therefore not be executable. Here, the organization very likely needs to be restructured to engender greater collective code ownership and very likely simplicity of design as well. Clearly, a restructuring will take more effort and if handled poorly could be a traumatic event, completely inhibiting development activity.
The now more complex task of restructuring a department should not preclude making incremental progress. For one thing, there are benefits of being in an intermediate state of requirements gathering: marshalling tasks into bounded, granular, portable statements of work engenders better estimating, scheduling and tracking leading to greater operational transparency. For another, incrementally maturing toward collective code ownership, simplicity of design and requirements gathering introduces practices that enable that restructuring.
Plotting a Course and Measuring Progress A more thorough collection of maturity flights allows an organization to take better informed decisions as it tries to become more agile. Specifically:
In addition, each level can be numbered, for example from -1 (inhibits agility) to 5 (greatest enabler of agility). Once assigned, progress can be periodically surveyed and visually represented, tracked and reported (see Figure 1).
Figure 1: Sample Skill Maturity
Seeing the gap and interim stages clearly defined allows other critical questions to be answered:
Fully applied, this model facilitates development of a business case including an organizational change plan, costs and benefits for Agile practice adaptation.
Conclusion This "agile maturity model" is not intended to be prescriptive or authoritarian. It is an attempt to create a simple, flexible, fact-based assessment of the degree of agility in fundamental IT practices and, subsequently, in an organization. With this framework, an organization can quickly assess how its current processes enable and inhibit responsiveness and can determine what it should be doing. Fully applied, an agile maturity model also helps identify what teams must change to be able to achieve responsiveness and then structure a business case for making those changes. About the Author Ross J. Pettit has over 15 years experience delivering complex development projects and managing multi-national operations as a developer, manager, and consultant. He holds a BS in Management Information Systems and an MBA. He is currently consulting to global clients implementing Agile practices as a Client Principal with ThoughtWorks. {mos_sb_discuss:5}
Set as favorite
Bookmark
Email this
Hits: 13071 Comments (0)
|
| < Prev | Next > |
|---|
Agile Marketplace - Announcements and Special Offers
PureCM –SCM for Agile Teams
PureCM helps you to manage development in short iterations: keeping track of changes, supporting automated builds and preserving frequent snapshots of your projects.
Get the free trial now
Collabnet -TeamForge 5.3
CollabNet TeamForge 5.3 includes Dynamic Planning—providing flexibility to model release scope and timeline in a single view. Now, you can easily manipulate/adjust release data.
Download Your Free Trial
Free Agile Development Platform
Explore building working web business applications with Agile methodologies and OutSystems' Agile Platform Community Edition. This no-strings attached software download is free for personal or small business use and includes a small download footprint, simple installation, a complete getting started guide and sample applications.
Download your Agile Platform today
Agile Journal Live Seminar Series
These complimentary mini-conferences will feature the leading providers of Agile software development solutions. The next seminar will be held October 28, 2009 in Raleigh, NC.
Register Here
Agile CMMI – The Best of Both Worlds
Shares how a leading financial institution gains CMMI level 3 compliance and supports Agile practices.
Register for CollabNet webinar May 21
Requirements-based testing (RBT) can help you increase efficiency, reduce project risk, and improve overall software quality. Learn how MKS Integrity for application lifecycle management enables RBT, delivering full lifecycle traceability to help ensure that project requirements have complete test planning and execution coverage. Download the Requirements-Based Testing whitepaper






