Managing Software Development: Why ALM Software is Essential
The problem with deciding what tools to use for software development is the overwhelming complexity and availability of the available tools, and often the bigger picture is lost amongst the details. Specifically, when comparing Application Lifecycle Management (ALM) systems, features and the associated benefits of adopting an ALM Software, the bigger picture is whether the tool in question provides complete traceability and transparency, throughout every product feature.
Inevitably when everything does go wrong in software development, it is a slow collapse that creeps up on development teams as things progressively deteriorate, and it is typcially the result of poor management. It is only when the pain is so intense and problems become totally unmanageable that action is taken, and problems are addressed, but by then it’s often too late and the project is already too costly to continue and is scrapped. In the day to day running of things those responsible do not see the bigger picture and therefore do not see where minor problems arise, it is for this reason that corporate executives and product owners should demand ALM software to be used to ensure transparency and traceability and have it written as mandatory for all projects.
The bigger picture is this, no matter how good your individual programmers or teams are, when placed under extreme pressure the unexpected and unlikely becomes highly plausable. Situations may arise that individals are ill equipped to deal with, for example:
- The addition of a new inexperienced team member (people exaggerate on their resumes)
- A project with an excessive rate of change. As the rate of change increases, code tends to get messy. One common problem associated with this is where refactoring occurs and documentation is not updated.
- A project manager who tries to micromanage an Agile team (very common).
When projects fail, it is typically a combination of factors that includes a failure of communication, requirements management and the failure to implement the required Agile work culture change. If events are not managed quickly or effectively (problems left to fester) they lead to other bigger difficult to manage problems.
All too often, – the reason for the final failure is a complete mystery to those who were managing it. Only after a thorough investigation by independent third parties are the contributing factors identified.
Since each project typically costs millions of Dollars / Euros or more, the idea of not doing everything humanly possible to mitigate all risks (including miss-management) where possible is unthinkable and yet all too common. Starting an Enterprise level project without ALM software is akin to not testing code, in that both are essential for mitigating development related risks.
When scaling up Scrum or any other Agile method at enterprise level you don’t just scale up Agile, but also complexity and the associated risks of additional complexity. An integrated ALM Software (free of middleware) is necessary to manage this complexity and the associated frequent changes to requirements and the overwhelming number of artifacts that must be tracked and associated. When taking a retrospective look at high profile examples where Scaling up Agile development has gone wrong, the tools used by developers and their use can often be identified as being inefficient for the task at hand, making it difficult for investigators to follow and to determine what happened and potentially voiding any insurance agreements. In many cases the the correct use of tools such as codeBeamer ALM would have prevented many of the contributing factors of failure (preventing failure in its entirety).
Insurers that provide insurance against software development failure require complete transparency and traceability for the entire duration of the project, however most Agile, Scrum or Kanban tools do not provide the 360 degree transparency necessary (despite claims that they do). Often such tools, particularily those that have 3rd party plugins with external databases and support further complicate things and these do not provide the transparency and traceability necessary that a ALM software such as codeBeamer ALM provides throughout the entire Application Development Lifecycle.
codeBeamer ALM is designed for Scaling Agile and for DevOps, it provides the most comprehensive implementation of the Scaled Agile Framework (the most successful enterprise framework) to date and is suitable for the most regulated of industries where functional safety of products is critical (medical devices, automobiles and aircraft etc) and closely regulated (strict standards must be complied with / adhered to).