Integrating Agile with Application Lifecycle Management
This section describes integrating Agile with ALM.
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 to react faster to changing market conditions, or shift in customer requirements about the final product.
Faster and more regular communication reduces or eliminates silos within a company. Applying Agile to Application Lifecycle Management improves collaboration between Requirements Management, Development, Testing, and Project Management.
This helps streamline the entire value adding process and transforms the organization into a an effective, 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 Increment (PSI) should be created.
To keep up with these four-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 two or three 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 to successfully deliver value in any type of project, ranging from construction to product development. It is interactive, iterative, focused, and it has all the characteristics of Agile Software Development.
Codebeamer enables agile management by offering:
• Efficient project planning by using the Planner interface.
Agile Development
Frustration about the inefficiency of software development projects was the original facilitator of agile. which remains the most active domain in agile adoption.
Codebeamer enables agility for developer teams in the following principles:
• Efficient
source code version control(most particularly: Distributed Version Control), that encourages experimentation and short live branches.
Agile Test Management
Agile development recognizes that testing is not a separate phase, but an integral part of software development, along with coding. (
Wikipedia
).
Similar to 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 that software testing can be automated to a large degree. This makes tight integration into the development process easier.