Bring successful solutions to customers with application lifecycle management (ALM) strategies

You have an idea for a Dynamics 365 solution that can help your business grow. How can you turn your idea into a reality and make sure it works well for your customers? You can use application lifecycle management (ALM) to guide you. ALM is a way of managing your solution from conception to operation.

In this article, you'll learn what ALM is, why it's important, and how to apply it to your Dynamics 365 solution. You'll also discover the recommended Dynamics 365 tools for ALM and how to prepare for an ALM workshop.

What is ALM?

ALM is a way of managing your solution from the start to the end. It starts when you buy the Dynamics 365 license and goes through different stages. After you use the solution for your business, you keep it running and improving it over time.

The following diagram shows the stages of your solution, which could include one or more Dynamics 365 apps such as Finance, Supply Chain Management, Sales, Field Service, or Commerce.

Wheel of ALM processes from planning to writing your business needs, designing the solution, configuring based on your needs, creating, testing, deploying, and maintaining the solution.

ALM covers the entire lifecycle of your solution, not just development. It includes:

  • Governance: How you make decisions and manage risks for your solution.
  • Project management: How you plan, organize, and execute your project activities and resources.
  • Requirement management: How you capture, analyze, and validate your business needs and processes.
  • Architecture: How you design the structure and components of your solution.
  • Development: How you code, build, and track your solution.
  • Test management: How you verify and validate your solution against your requirements and quality standards.
  • Maintenance: How you support and troubleshoot your solution when it's live.
  • Change management: How you handle changes and updates to your solution.
  • Release management: How you deploy your solution to different environments.

ALM helps you:

  • Follow best practices, processes, and templates for each stage of your solution.
  • Collaborate with your team, partners, and Microsoft using various tools.
  • Roll out your solution in multiple stages and iterations.
  • Innovate and automate your solution using tools.

Having well-documented processes and tools for ALM will result in better visibility, efficiency, and quality of your solution.

Make sure that your team has the appropriate ALM tools, such as Azure DevOps, to manage all aspects of your solution. You need tools to track and automate your application governance, requirement management, configuration, development, testing, deployment, and support.

The tools should connect your team members and your processes. For example, when a developer checks in the code, they link the changes to a specific work item. This way, you can trace the development work item to the business requirement and the test case.

Application vs. development lifecycle management

Some people might define ALM as improving development processes such as version control, build automation, release deployments. Although it's part of ALM, we refer to this part of the lifecycle as the software development lifecycle (SDLC), or Dev ALM.

ALM isn't just about the development lifecycle that covers development activities including design, develop, test, and deploy. ALM covers the entire lifecycle of your implementation, including the application development lifecycle and test management.

Why do you need an ALM strategy?

When you start your Dynamics 365 solution, you begin the application lifecycle: from the project's Initiate stage to the Implement stage, Prepare stage, and finally the Operate stage.

ALM in project stages.

Throughout the project lifecycle, you work with different teams, manage project activities, define and map business processes, configure and develop your solution, test and deploy your code, and maintain your solution in production.

Think of ALM as planning a trip. You set dates, book flights and hotels, and plan places to visit. All that planning will likely result in a great vacation.

Similarly, well-planned ALM will lead to a solution that grows your business. With ALM best practices, you're set for success in your solution implementation. You gain visibility into several areas:

  • The current work items (requirements, development, testing)
  • The work items completed, in progress, or planned
  • The teams that worked, are working, or will work on specific tasks
  • Issues and risks associated with your solution
  • Development best practices
  • Code history or version control
  • Build and release automation
  • A testing plan, test cases, and test results against requirements

Your ALM strategy might not be perfect from the start. But you can refine it over time as you learn from your experience and feedback.

What happens without a defined ALM strategy?

ALM is the lifeline of your solution. Let's go back to the trip analogy. You planned your dates and booked your flights, but you didn't book lodging or decide on any sightseeing activities. Your trip could be a disappointment, and you might end up spending more time planning when you should be enjoying your vacation.

Like a poorly planned trip, if you don't have an effective ALM strategy, you can expect a negative impact on your solution, quality, and customer satisfaction.

Without effective ALM, you might have poor decision-making, recommended practices might not be followed, and teams are disjointed in the implementation, which can cause delays.

Do you need an ALM strategy for simple solutions?

You might think that implementing well-defined processes and tracking work items, teams, and tools is too much work for a small or simple solution.

However, every solution, no matter its size or complexity, should follow ALM principles. Have a project plan, define the scope, the business requirements, and the documentation. Your solution might not require development or integration, but it will still have configurations and application updates.

With an effective ALM strategy and well-defined practices, you can keep your solution healthy and up to date with the latest releases.

How to apply ALM to your solution

You should use ALM from the start to the end of your solution. In this section, we'll look at some of the areas of the ALM process.

During implementation

While you're implementing your solution, you go through multiple stages: Initiate, Implement, and Prepare. ALM applies to all these aspects of your solution:

  • Project management
  • Business process management
  • Application configuration
  • Development
  • Testing
  • Bug tracking
  • Ideas, issues, risks, and documents
  • Release management

After implementation

When you're live in production, you're in the Operate stage. ALM continues with the following aspects:

  • Continuous updates
  • Independent software vendor (ISV) updates
  • Maintenance and support
  • New features
  • Next stage

Project management

Efficient ALM requires having documented processes, templates, and tools for all project management activities. The following list covers some examples of such activities:

  • Project planning
  • Cost management
  • Team management
  • Ideas for improvements or solutions, issues, and risk management

A project manager can perform their responsibilities better when these areas are defined and documented. For example, you should have a template for the project plan that the project manager can use in the Implement stage.

Learn more about project governance.

Business process management

ALM processes and tools should include managing business requirements and processes effectively and efficiently. After you define your templates and tools, provide a framework for functional team members to work together to define and validate requirements and business processes. Teams can track business requirements for business processes and connect them with configuration and development.

For example, a functional team member gathers and defines business requirements in a given template and tracks them in Azure DevOps. They get the requirements reviewed by business users through assignment of work items. The business requirement document is stored in a repository.

Learn more about process-focused solutions.

Application configuration

ALM processes and tools should also include managing application configurations. Before configuring an application, the business should define and review business processes and requirements. Functional team members should have defined processes and tools to perform fit gap analysis and to identify the configuration required in the application.

Track your configuration setup and changes using tools such as Azure DevOps. Configuration is often a one-time activity without documentation and tracking. Such cases lead to confusion, lack of visibility, and questions about why certain decisions were made. Always maintain your documentation for application configuration during testing, user acceptance testing (UAT), cutover, and even after going live during maintenance and support.

Development

Having an efficient development lifecycle is one of the essential aspects of ALM. In general, the development lifecycle consists of the following phases:

  • Design
  • Develop
  • Build
  • Test
  • Deploy

Continuous integration and continuous deployment (CI/CD) is one of the best and latest practices to enable delivering code changes more frequently and reliably.

After the business requirements are defined and identified, the development team should get involved to work on any gaps in the solution. The development team analyzes the requirements, reviews the functional design, prepares the technical design, and gets the technical design reviewed. The development team should use version control, create development tasks, link check-ins with work items, and prepare a unit-testing document.

Finally, use build definitions and pipelines for automation and to identify and fix any build issues. Build automation is vital for continuous integration or gated check-ins. Manual builds are error-prone and time-consuming. The build process, either manual or automated, is mandatory for development.

The following example of a CI/CD approach has a centralized version control in place, a build agent using build definitions, and release pipelines to push code to a sandbox or other environments. In this scenario, Dev A develops Solution A and Dev B develops Solution B. Dev A gets Solution B (Dev B's code) using version control after a successful build automation. When the build is successful, the code is released to the sandbox environment using the release pipelines. After successful testing, the code is released to the production environment.

Example of ALM CI/CD.

Testing

Testing is an integral part of ALM. Under ALM, test management processes and tools should be defined with templates to help manage test preparation, execution, and reporting. It should also include what tools to use for these steps. Learn more about testing strategy and test management.

Maintenance and support

In addition to the steps taken for planning, developing, and deploying your solution, as part of effective ALM, you should have a plan to make sure your solution continues to be optimal and healthy.

Learn more about the support process in Service the solution and Transition to support.

ALM strategy for Dynamics 365

ALM can improve every aspect of your Dynamics 365 solution. Learn more about ALM and Dynamics 365.

ALM workshop

The ALM workshop is part of the Success by Design framework. It's designed to validate that the development approach is aligned between the customer and the partner and that it follows the best practices of Dynamics 365 ALM.

Conclusion

ALM is the management of your solution lifecycle from conception to operation. It includes disciplines across the lifecycle of your solution, such as governance, project management, requirement management, architecture, development, test management, maintenance, support, change management, and release management.

Your solution lifecycle might go through several evolutions. Each evolution might use the same development lifecycle methodology. Basically, the development lifecycle is part of ALM, ALM is bigger than development ALM, and development ALM is part of the development lifecycle.

Next steps

Resources

DevOps and Azure Pipelines

Finance and operations apps

Customer engagement apps