A few months ago, I wrote about DevOps, the set of principles and practices that bring development and operations teams together to work effectively. In this blog, I’d like to explore how DevOps can be applied to Application Lifecycle Management (ALM), the product lifecycle management that includes governance, development and maintenance of software.
Applying DevOps into ALM can positively impact every stage of the ALM. Let’s take a look at the value of integrating DevOps into each stage.
The first step of ALM is governance. It includes all of the decision-making for the software being developed, including the development of the business case. Once the business case has been developed and approved, governance takes the form of project management throughout the entire ALM. This could also be in the form of project portfolio management, if multiple projects are involved.
Since DevOps stresses communication, collaboration and information sharing as well as the use of cross-functional teams, it can have a very positive impact on developing the business case for a new piece of software and the subsequent project management throughout the ALM.
Within the development stage, DevOps plays an important role in several areas, notably:
- Requirements Definition
In today’s fast-paced software development culture, IT requirements change more rapidly than ever due to market changes and other factors, such as customer needs. Implementing DevOps into the requirements definition will ensure that strong communication between the operations and development teams is present so that all essential requirements are captured and changes to requirements are quickly addressed.
- Systems Design
Multiple stakeholder input from across an organization, and potentially from outside the organization, is essential at the systems design stage of software development. DevOps principles focus on a cross-functional view that naturally allows that the right stakeholders are involved in the design of the software.
- Quality Assurance and Testing
Often quality assurance (QA) and testing come into play at the end of the ALM and these team members are only brought into the picture at this time. In a DevOps approach, the QA and testing team members would be involved in the entire ALM process. This approach can be a key way to manage risks associated with the software’s deployment as well as its continued maintenance, which will include integrating new requirements and bug fixes.
The rewards of integrating DevOps into ALM really come into play in the maintenance stage of the software, or its “continuous integration, innovation and deployment.” In agile environments, the focus is on releasing small bundles of code more frequently. This can be challenging for many companies to achieve successfully. By implementing DevOps into the mix, teams can become much more efficient and effective within a fast-paced agile development environment.
I’m sure there are many more reasons to integrate DevOps into ALM. Please share your ideas with me in the comments section. I’d love to hear them!