Integrating Agile with Application Lifecycle Management
What is Agile ALM?
The basic idea behind agile development is the attempt to develop better software by reducing communication borders, and at the same time introducing shorter iterations of development and review. This enables development teams so react faster to changing conditions, may it be changes in the market or changes in the customer's mind about what the final product should be like.
As communication happens faster, and most importantly more regular, silos within a company are reduced or even removed entirely. Applying "Agile" to Application Lifecycle Management will lead to intensified collaboration between Requirements Management, Development, Testing and Project Management.
This helps to streamline the whole value-adding process and therefore transforms the company into a more effective and holistic value delivery system.
Agile Requirements Management
Agile in ALM also includes Agile in Requirements Management. Within agile development, software is build incrementally, usually in Sprints that last up to four weeks. After a Sprint or two, a so called Potentially Shippable Icrement (PSI) should be created.
To keep up with these 4-week development cycles, the requirements ideally also need to be defined incrementally. In Agile development, requirements are usually written as User Stories in one single sentence. Once this rough outline is set, the User Stories get defined in more detail during several iterations.
Agile RM ensures that requirements definition keeps pace with development by working in the same length of cycles (definition and review) as development does, but 2 or 3 iterations ahead of it. The goal is to provide requirements that are sufficiently detailed for implementation at the beginning of each Sprint.
Agile Project Management
Agile management (or agile project management) generalizes the agile values, principles and methods in order to successfully deliver value in any type of project, ranging from construction to product development. It is interactive, it is iterative, it is focused, it has all the characteristics of Agile Software Development.
CodeBeamer enables agile management by offering:
- Highly customizable issue trackers and workflows that allows modeling any sort of project domains.
- Efficient project planning by using the Planner interface.
- Execution and visibility through the Cardboard interface.
Agile Development
Frustration about the inefficiency of software development projects was the original facilitator of agile. Not surprisingly, it is still the most active domain in agile adoption.
What does CodeBeamer offer for developer teams? Pretty much the same as outlined in the previous section, but it also enables agility in the following principles:
Agile Test Management
"Agile development recognizes that testing is not a separate phase, but an integral part of software development, along with coding". (Wikipedia)
The same way as development and requirements definition, testing should also be done in short iterations and joined with feedback loops. A major difference to agile development and agile requirements definition is the fact, that software testing can be automated to a large degree. This makes tight integration into the development process a lot easier.