An Application Lifecycle Management approach to software development has always been a combination of processes, methodologies, and tools, but for some time there has been an imbalance between these aspects.
The ALM market has been led by all-encompassing ALM suites, with suite integration through a common repository sometimes labeled as 'ALM 2.0'.
However, the introduction of Agile Software Development into mainstream development has brought to the fore the fault lines of an ALM approach where a 'one size fits all' line is taken.
Rather, the new ALM reflects that there are different types of software activity and different traditions within the developer community.
Over the years the software component of products built by major industries such as defense and aerospace has increased dramatically, and sophisticated ALM tool suites have been successful in these markets in helping reduce complexity where many thousands of engineers and components need to be managed.
For example, Requirements Management tools first arose in these software engineering markets, helping to trace requirements to code artefacts, improving test management, and also managing re-use of components for effective cost savings.
In the context of business software applications where requirements are fluid and have a high change probability throughout the lifecycle, Agile development has proven to be highly effective. As part of the lightness and agility, tools are used to support the process and methodology, for example automated test management, and continuous integration and builds, but other tools are less popular, for example Requirements Management and modelling, as they are seen to hamper the Agile practice.
What these trends in application development have highlighted is that there is no one best way to develop software, and much depends on the target market and traditions and skills of the developers.
Therefore a team that is highly skilled in modelling can be as effective as an Agile team that does no modelling. What does not work is training people with no development experience in Unified Modelling Language skills and stratifying development activity into architects/modellers and coders.
Integrated ALM tool suites are historically associated with top-down, command, and control development processes. Agile development, such as Scrum, is contrary to this. It delegates responsibilities to the edge and has a federated control structure. The new ALM is there to support whatever the style of the developer, be it modelling, Agile, or hybrid, and recognise that different vertical industries have different development tool needs.
The key is not to impose a 'one size fits all' mentality on how software development should be done.
Source: Computergram