Video Spotlight
Agile Sponsors
Featured Whitepapers
- Learn Ways to Keep Schedules and Costs in Line With Requirements Change Management
- Java Deployments in an Enterprise Environment
- Challenges & Characteristics of Enterprise Continuous Integration
- Build Release Plans That Deliver Customer Value!
- Improving Traceability and Auditability Across the Development Lifecycle
|
| 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: 13477 Comments (0)
|
| < Prev | Next > |
|---|
Agile Marketplace - Announcements and Special Offers
Webcast: Moving Build and Code Quality Upstream
This interactive panel discussion moderated by Bob Aiello, Editor-in-Chief fo the CM Journal brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.
Register 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
Requirements-based testing (RBT) can help to ensure comprehensive test coverage, reducing the risk of failure and improving software quality. This white paper details how application lifecycle management can be used to more effectively implement RBT processes, offering greater collaboration, traceability and control.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
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


