For this Agile Tuesday article we sat down with Alex Walworth, our technical lead at PITSS, to discuss some of the reasons that an Agile DevOps approach is the right choice for a software modernization project.
QUESTION: Modernization projects are well-known for being different from typical green-field development projects. What are the top three reasons to take an Agile DevOps approach to a software modernization project?
Dynamic Development
When you choose agile for your software modernization projects, development will be very dynamic. You’ll be able to adequately prepare for the changes that will inevitably occur during the course of the development lifecycle.
With agile, you’ll always have a set, manageable two-week timeframe to create and meet expectations. Then, your team and decision makers are able to review that phase. During the next phase(s), you have the opportunity to change and improve, always becoming better at what you’re developing. With this schedule, you can add in features and changes as they arise. When you are replacing the features of a legacy product, this gives you the power to re-prioritize new features responsively to support your users.
Avoid Technical Debt
For our purposes, technical debt is the extra development work necessary when developers have used short cuts instead of best practices in legacy application code. The debt in technical debt refers to the cost of additional rework caused by choosing the immediately easy solution instead of going with the overall better approach that would take longer.
In the context of legacy applications, the longer an application is in use it begins to accrue more and more technical debt in the form of unused, unnecessary, or poorly developed code. By separating your development process into agile sprints, you can ensure that any part of the application that is no longer necessary can be removed. Stricter traditional guidelines create unnecessary requirements for how to handle or retain code. In agile, only the valuable feature code passes into the new product on an as-needs basis.
Seamless Progress
With DevOps, you’re able to automatically deploy your changes on a sprint-by-sprint bases without much less need for manual testing. This is also accomplished without a dedicated operations manager, and allows developers to continue to develop without downtime for deployment process.
The relationship between DevOps and Agile is a seamless one because within the sprint timeframe, it allows you to integrate sprint releases with your DevOps process. Each sprint can then be deployed to your respective environments in an automated fashion, allowing stakeholders to review the application and provide input immediately.
At a project manager level, when your team is ready to release your application, a traditionally manual approach means there will be more involvement and sign-off required in order to promote your application to test production. However, when utilizing DevOps, the guaranteed testing process prevents the need for such a strict user interaction during operations and deployment of the app, saving time and ensuring that the project is continually moving forward.