The Battle of Gettysburg, fought in 1863, was the battle with the largest number of casualties in the American Civil War, and is often described as the war's turning point. The Union army defeated attacks by Confederate General Robert E Lee's army, ending Lee's invasion of the North. History shows that the Southerners lost the battle because they had to cross two miles of open ground going uphill - they simply could not see what lay ahead.
This lack of visibility is a challenge often faced by software developers, who simply have no line of sight and are therefore incapable of organising a winning advance. That's where application life cycle management (ALM) comes in.
ALM has been defined as the marriage of business management to software delivery.
Ziaan Hattingh is MD of IndigoCube.
It is a continuous process of managing the life of an application through governance, development and maintenance. It increases productivity, by enabling the team to share best practices for development and deployment, and lets developers focus only on current business requirements. It also improves quality, ensuring the final application actually meets the needs and expectations of users.
ALM breaks boundaries through collaboration and smooth information flow, and accelerates development through simplified integration. By synchronising application and design, it cuts maintenance time. It also increases flexibility by reducing the time it takes to build and adapt applications that support new business initiatives.
Ultimately, ALM overcomes software development silos to enable a whole-team, whole-view approach to the software delivery cycle. By co-ordinating requirements, design and construction, project planning, change and configuration management, build and quality management, it empowers organisations to get fast answers to questions like these:
* How are our teams in India and the United States progressing against plan?
* What requirements and defect fixes are in this release?
* Are we as an organisation getting better at managing requirements scope?
* What has changed that I need to now test?
Benefits of ALM implementations
ALM has been defined as the marriage of business management to software delivery, made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management. It enables the fundamental transformation of software delivery, breaking down the silos between developers and testers, between IT and business stakeholders. It delivers real-time, transparent access to project data, risks and progress, just as Lee's army needed when they were crossing that open field in Pennsylvania.
The benefits are as follows:
* Predictability - Through better estimation, better communication and more repeatable processes.
* Auditability - Traceability of work back to a business need.
* Agility - Through the collaboration and application of “just enough” processes.
* Productivity - Through the continuous improvement of processes and practices, and more effective utilisation of resources.
* Quality - Through more effective management of requirements, design and quality processes.
In order to realise these benefits, a few ALM imperatives have to be observed:
1. Real-time planning
To determine the company's real-time planning capabilities, ask if the company's teams can integrate planning with execution, plan for Waterfall, Iterative and Agile environments, instantly see the impact of a change in project scope or resources, and report on the current status of its projects in real-time. Real-time planning means that plans are fully integrated with execution, planning is continuous and conducted through project dashboards, everyone can instantly see the impact of changes to delivery dates, and the company can easily instantiate project plans into individual and team activities.
2. Traceability
To assess traceability, ask whether the company can easily link related assets, such as requirements, code, test assets and builds, and answer questions that span multiple roles and/or repositories. The challenge that customers face is that when it comes to a question within their domain, they are usually able to answer it.
3. Process improvement
Process improvement requires that developers can leverage out-of-the-box process templates for traditional and agile workflows, change processes “on the fly” as part of a continuous feedback loop, allow team leads to determine how strict or lax the “rules of the road” should be, and modify process enforcement over the life of a project, to encourage early-stage experimentation and end-game stability.
4. Development intelligence
To evaluate the state of the company's development intelligence, ask if it can minimise administrative overhead by relying on its environment to capture metrics, keep all stakeholders advised at the right level of detail, and keep team members focused with reporting at the individual, team and project level.
5. Agile collaboration
Sometimes e-mail, phone and ST chats work against collaboration, as team members spend more time searching for old e-mails, for example, than getting work done. How well does the team collaborate? To ensure agile collaboration, the company needs to be able to quickly grasp the “who, what, when and why” of team activities, bring new team members up-to-speed quickly, and overcome the barriers of multiple languages and time zones when working with outsourced and distributed team members.
Over the course of the next five Industry Insights, I will delve into each of the ALM imperatives and investigate them in more detail.
Share