This week’s guest blogger is Alex Kriegel. Alex is an Enterprise & Data Architect for a state government and has over 10 years of experience in the field. He has written numerous books on relational database technologies and is also an Expert Reviewer on IT Central Station. Contact us if you would like to be one of our guest bloggers.
Software intensive systems have a lot in common with humans – they are born, mature and die. They sometimes even come back from the dead or simply linger around scaring the day lights out of everyone who comes in contact with them. To minimize one’s chances of inadvertently releasing such monsters into the wild one should adopt a holistic point of view – that of Application Lifecycle Management.
Wikipedia defines ALM as “… a continuous process of managing the life of an application through governance, development and maintenance. ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management.” Can’t say it is a novel concept – every organization is already doing all of these either by design or by accident, with the majority falling into the giant “in-between” void. The key is tight integration between three key areas – governance, development and operations.
To address the issues, many vendors came up with ALM tools – sometimes bundled, oftentimes integrated, into a suite. Wikipedia lists over 40 “products” ranging from full-blown suites to a assembly of specific tools, both commercial and free open source. Gartner’s MarketScope mentions 20 leading vendors with ALM suite offerings, out of which 8 got “Positive” rating, including IBM’s which got the only “Strong Positive”. The Forrester’s Wave for ALM lists 7 vendors in the “strong” segment, with additional marks for market presence (with IBM, HP and Microsoft leading the “big” guys and CollabNet, Atlassian and Rally Software leading the smaller vendors).
The ALM offerings differ in degree of completeness, degree of coherence between the tools and extensibility model provided. Some of the more integrated offerings come in a variety of flavors such as SaaS or on-premises installations, with numerous options to complement either one. And then there is a price tag to consider, which as with everything that purports to address enterprise-wide issues, is not insignificant – ranging from tens of thousand of dollars to a couple of millions (and then some) with additional costs for infrastructure, operations, and maintenance. Still, there is a solid evidence that these investments under the right circumstances might and do pay off. Implementing ALM principles to the Enterprise Integration and/or software development project can significantly improve quality of the delivered system and positively affect schedule.
The ALM processes fall into 5 domains:
- Requirements Definition and Management
- Quality and Build Management (including test case management)
- Software Change and Configuration Management
- Process Frameworks and Methodology
- Integration Across Multiple AD (Application Development) Tools
An integrated suite with a hefty price tag must address all of these domains to be worth consideration; and for the best of breed route, integration considerations are of paramount importance in order to realize ALM potential. One such important consideration, for example, is integrated QA (either that or the ability to integrate with a QA suite).
So far, only two vendors today offer fully integrated (all 5 domains), end-to-end, technology neutral ALM suites – IBM Rational Jazz Platform and HP ALM. The rest is either very technology specific (such as Microsoft TFS) or stops short at providing some vital functionality (e.g. the issue and project tracking Jira does not address requirement management while FogBugz does, and neither comes close to providing test management functionality; both provide robust extensibility models to amend this with third party integration). We are going to elaborate on the selection criteria and process of “the best-fit ALM” solution in follow up posts.