ALM tools
ALM tools are usually a collection of project management tools. How sophisticated those tools are depends on a lot of factors, one of which is how mature the current organization is in relation to application development. It could range from a very simple document or wiki to a “full-blown” ALM product.
It is also important to mention that there are usually several tools that are combined to achieve a holistic ALM tool landscape.
The following list gives you an idea of the features your ALM tool landscape should (at least) cover:
- Communication: The team implementing the solution needs to communicate with various stakeholders. Since communication is a crucial part of developing an application, it should be part of the ALM planning. It should be clear to the entire implementation team which communication channels they should use.
- Requirement planning: Requirements are necessary so that the development team implements the correct functionalities according to the needs of the business. Therefore, clear structure and tooling in regard to requirements (including gathering, defining, estimation, and tracking) are important.
- Test management: Every implementation should be tested. An automated approach is preferable, but a manual approach in most cases is also feasible. Both approaches are often combined, depending on which area of the application is currently being tested. Either way, a good ALM approach should define where the tests are managed. This includes defining new tests, scheduling test execution, and tracking test results.
- Source code management: Since a usual application implementation project includes writing code, an ALM process has to include a tool to manage the project’s source code. This includes different branches, commit tracking, and pull requests.
- Automated deployment: An optimized ALM process will execute deployments to downstream environments in an automated fashion. This optimizes quality since all the necessary steps are always executed in the same order and in the same way. To be able to handle this, an ALM process should define which deployment automation tool to use.
Here are some examples of ALM tools:
- Microsoft Azure DevOps
- GitHub Actions
- Atlassian Software Suite (Jira, Confluence, Trello, Bitbucket, Bamboo)
- Jama Software
- Tuleap
- Visure