Support parallel development and maintenance
Managing maintenance and development in parallel requires strong support for multiple code lines (or branches). You also need transparency to track what branches you have and their current status, as well as automation to keep branches up to date without excessive overhead. Also, with agile, frequent refactoring happens regularly. Your solution must support refactoring and editing of the same objects in parallel, making sure all changes are applied to the relevant objects in the right way and right order, and preserving their history.
An example of parallel development
Get added project visibility
With multiple releases or builds, you need to know what has changed between them. With integrated CM and reporting tools, development managers can visualize differences between any two configurations, either by looking their files and folders or completed tasks and features.
In conclusion, agile techniques can create new challenges for the way development teams manage their release planning, team collaboration, and delivery. The ability to plan easily, share plans with the team across geographical boundaries, and give up-to-date status insight is crucial.
By integrating planning with CM and their build processes, development managers can better control important parts of their development lifecycle such as branching and merging, avoid human error, and support a fast feedback cycle.
In small teams, performance of the CM tool is crucial, as frequent builds demand frequent snapshots of each code line or branch. Failure to evaluate performance upfront might lead to increasing idle time once project content (and teams) start growing. These effects are accentuated in larger teams working on a multitude of projects or releases in parallel. Here, the ALM solution has to make sure that planning, tracking, and configurations all stay in sync in order to allow frequent planning and deployment to go hand in hand.
So with the right choice of tools, it’s possible to take the best elements of both agile and ALM approaches to optimize work along the development lifecycle and reduce complexity and administrative overhead in any size of team. Even these apparent opposites can attract.