Does the business you’re acquiring have a mature, well-defined system for managing the lifecycle of its software? Or are there glaring issues with how teams manage requirements, test applications and track defects that impact the usability and effectiveness of software?
An application lifecycle management (ALM) assessment will answer those questions.
It’s an essential part of a technical due diligence report because poor ALM makes for long, inefficient and expensive development processes, which result in software that fails to meet business goals.
For investors, underperforming software means additional investments and longer ROI timelines. A thorough ALM assessment can help them recognize those hurdles before a deal gets done.
At Kingsmen Software, our detailed ALM assessment analyzes the people, processes and tools companies use in the following 11 areas.
Version control refers to the processes and tools developers use to track changes across the different versions of an application. A good version control process will give a development team full traceability of changes, from requirements through implementation.
It’s vital to have a version control process for code changes, says Kingsmen Software CEO and Partner Bill Clerici, but you also want to have version control for databases, infrastructure and continuous development pipelines.
Tools are becoming an increasingly important part of version control, so it’s important to analyze them, too.
“With the proliferation of Git, Mercurial and other options, distributed Version control systems (DVCSes) surpassed the centralized approach, in which developers make changes to a single copy of code stored on a server,” explains Ryan Black, assistant site editor at TechTarget.
“By contrast, with a distributed system, developers can use these version control concepts to make changes to their individual copies of a software repository and combine these changes in the master.”
User Experience Management
User experience management ensures developers take the end user's needs into account when designing and building applications. Our assessment looks at several areas, including:
- Persona management.
- Style guidelines.
We also analyze the maturity of a company’s experience design management process, which covers how they visualize the full end user experience and implement that vision.
Program and Project Management
Good program and project management are vital to the success of any software development initiative. This is one of the most important disciplines we assess. If teams don’t have a good project management system in place, their output usually suffers.
To identify a team’s project management maturity, we’ll ask a series of questions such as:
- What’s your planning process?
- How do you schedule things?
- Are you taking budget into account?
- Are you tracking time?
- Are you tracking developer capacity?
Requirements management outlines how development teams take requirements from stakeholders and turn them into a workable strategy. We analyze how teams accept requirements and use version control to trace them throughout development.
The requirements acceptance process is typically inadequate at most companies, says Bill Cerci. Teams rarely have a defined structure about how to accept work that comes into the development team.
Architecture and Design
Any new development must be consistent with a company’s existing architecture and software design principles. We analyze:
- The current state of system architecture.
- Processes and tools used in modeling.
- Whether core design principles are in place.
- Best practices and principles surrounding design patterns.
Finally, we assess whether the organization takes a mature look at emergent topics in the industry. Is there a process to understand up-and-coming features and whether they may benefit the company?
Application development looks at how the development team functions and whether mature processes and tools are in place.
For instance, do they have coding standards that are regularly referenced? Do they have style guidelines or a process to review code? Organizations should also have strict acceptance criteria in place so that there is a technical definition of “done.”
Automation is vital for a mature application development process, specifically automated builds and deployments. The more teams try to make do without automated solutions, the more risk there is for human error.
Project Portfolio Management
Project portfolio management (PPM) describes how the company evaluates and executes upcoming projects in a way that ensures they align with company goals.
“PPM provides executives, project managers, team members, and stakeholders an overarching view of their projects, including how they fit into the organization’s directives and strategy, thereby lending insights into the potential returns and risks involved,” writes Moira Alexander, founder of PMWorld 360 Magazine.
Our assessment looks at processes around work intake, demand management, prioritization and assignment. We also analyze the tools teams use to manage projects and which people are responsible for portfolio management.
Risk assessment and management is another key part of project portfolio management. Companies need a process for analyzing risk and opportunity cost.
Work Item Management
A development team’s work item management processes allow them to break down big projects into manageable tasks. A mature team needs to have strong routines, regular communication with stakeholders and a process for prioritizing tasks.
Unfortunately, a lot of teams don’t have a repeatable process for work item management. They create new processes every time, which is inefficient and means there’s no way of understanding how long a piece of work is expected to take.
During a merger or acquisitions, it’s essential for investors to assess a development team’s quality management process to understand how much additional work is typically required once an update is pushed live.
Without a strong quality management process, development teams don’t have any way to understand the impact of their work or how they can improve processes in the future.
Mature organizations will track several quality support metrics such as rate of defects, number of support tickets raised and number of unplanned emergency updates that must be released. Ultimately, large numbers in any of these metrics indicate a problem earlier on in the development process.
Test Defect Management
Organizations should also have processes that let them manage tests and defects, including the creation, tracing, and execution of test cases and scripts.
Our analysis looks at what tests development teams run, whether tests are automated, and how defects are tracked and fixed. A poor test defect management process will mean issues won’t be identified until code is in production.
We also analyze the tools teams use to track defects. As Agile consultant Yvette Francino writes, there are several ways to track defects. “In fact, even if you're just using sticky notes, email, spreadsheets, or a log on a wiki to track customer issues, you'll need defect tracking of some sort. It's just a matter of figuring out the right tools and processes for the team.”
Release management concerns the processes, tools and people involved in the planning and execution of software releases and updates.
It’s primarily a concern for larger organizations that have multiple teams running multiple products, or multiple teams working on one big product. Each of those teams needs to communicate effectively to understand the risk to their own work whenever another team pushes a release live.
A Heatmap Ties Everything Together
At the end of the ALM assessment, we compile our findings into a detailed heatmap that shows the maturity levels for each of the above disciplines.
This lets investors see at a glance where there are risks and concerns, as well as areas where the target company performs well. For those wishing to dive deeper, we also include a full write-up for each discipline.