By Steve Drake, Director, Technology at TrueNorth IT
What is Application life cycle management? (ALM)
As shown in the diagram below, ALM has many aspects. Microsoft defines ALM as follows:
“ALM is the lifecycle management of applications, which includes governance, development, and maintenance. Moreover, it includes these disciplines: requirements management, software architecture, development, testing, maintenance, change management, support, continuous integration, project management, deployment, release management and governance. ALM tools provide a standardized system for communication and collaboration between software development teams and related departments, such as test and operations. These tools can also automate the process of software development and delivery. To that end, ALM combines the disciplines concerned with all aspects of the process to achieve the goal of driving efficiency through predictable and repeatable software delivery.”
How to implement ALM
How does this affect your management of your Dynamics 365 systems? It is likely to be an important part of your digital transformation project. As developers make changes to address bugs and implement new features, we need to be able to track what has changed, when it was changed and which feature or bug it relates to. This allows us to approve changes in a controlled fashion and to roll back to earlier versions if necessary.
If you set up ALM for Dynamics right from the start, you can collect changes to the Dynamics solution throughout the digital transformation project.
For instance, you can configure your ALM process to automatically release managed solutions to other environments via a pull request. You are then able to release to your next environment, such as production, once the testing is complete. Again this all done via pull requests.
Development complete and ready for testing :
Testing complete, ready for release:
This is an example of the output from our DevOps pipelines:
This did take a little effort to set up, but it’s repeatable and having a solid release process is very valuable to any project. Setting this up from the start gives us more history, but it can be added to an existing project and will still add value.
Key benefits for the business
- You can track the changes made to Dynamics solutions throughout their development
- You can see which features are released to each environment
- You can see when features were released
- You can track bugs against feature development
- You can see when fixes to bugs were released and which environment they were released to.
Practical benefits for developers
This is all pretty standard practice for most developers. We are using GIT to store changes made to Dynamics; we are using standard pull requests to manage the code review and the merging of the code to make up the release. Developers like to work like this. Using ALM for Dynamics allows your Dynamics projects to have the same governance as the rest of the codebase that makes up the project.