image from inflectra.com
Application Lifecycle Management, ALM for short, is the practice of DevOps and the support to companies. It is a very important practice in DevOps and fundamental to other practices. Nowadays, companies tend to attach great importance to the introduction and promotion of CI/CD tools, but not much attention to ALM. This is due to the upsurge of Docker and DevOps. However, CI/CD is only one segment of improving team efficiency, Without the support of ALM tools, CI/CD is only a castle in the air, which makes it incapable of optimizing the work efficiency of the whole team, or even worse. For example, it might cause the team incompatible or conflict with it.
If the managerial do not see the increased value produced by automation and the team do not see the improved efficiency brought by automation, it should be the problem that attributed to the lack of an end to end research and development data chain within the enterprise. If there is no data chain, the problem is always a partial reflection of what is wrong, and you can never find the cause of the problem.
According to three ways of working in The Phoenix Project by Gene Kim:
- The first way is a left-to-right flow of work from Development to IT Operations to the customer. This flow needs to maximize by managing the Work In Progress (WIP) and have continuous build, integration, and deployment practices.
- The second way is about the constant flow of fast feedback from right-to-left at all stages of the value stream.
- The third way is about creating a culture that fosters two things: continual experimentation, which requires taking risks and learning from success and failure and understanding that repetition and practice is the prerequisite to mastery.
The first step is to establish a global view which is also the basis for establishing follow-up feedback and continuous improvement. CI/CD is more for speeding up the feedback in DevOps, but feedback is not working without a global view.
Choosing the right ALM tool is very important. ALM tool is like an ERP tool for Dev teams. Of all features in an ALM tool, tracking is the very base module, such as issue tracking in Jira or bug tracking in ZenTao . Besides tracking work, code, case, build and runtime tracking should also be included. In order to do so, data of tracking, configuration and automation must be chained.
In such scenario, an integrated tool can be very useful, such as ZenTao. It has built-in bug tracking, QA management, SVN/Git integration, etc. Using separate tracking tools (such as Jira and Redmine), configuration management (such as SVN，GitHub/GitLab, BitBucket), QA management (such as QC, TestLink), defect management (Bugzilla), and automation tools (Jenkins), requires a integrated data chain and a separate data mining and analyzing platform which cost a huge amount of money and is very hard to build.
Image: ZenTao bug tracking page
ALM is the practice of DevOps, so apply an ALM tool in it will help greatly in enterprise management.