Bringing DevOps to an Entrenched Legacy Environment with KanbanCraeg K Strong
schedule 7 months agoSold Out!
At a Federal Agency or a large commercial company you may get a chance to work on a major program that makes a real difference in people’s lives. But the (legacy) software behind such programs is often large and complex, and therein lie some challenges. Here are some of the challenges we faced on a major 15+ year old legacy system comprised of 2M lines of source code:
- maintenance costs were escalating
- It seemed like every time an issue was fixed, it caused two more
- Lengthy delays between major software releases
- New releases suffered from high priority bugs that had to be hot-fixed immediately
- The software was taking longer and longer to be fully tested; in fact, it became practically impossible to test every feature.
When looking to implement agile practices on a legacy program, it is hard to know where to begin. Innovative Silicon Valley companies like Etsy leverage DevOps and Continuous Delivery practices to achieve new levels of automation and agility, shrinking development lead times and deploying to production many times each day. However, it can be a struggle to implement these practices for legacy systems that run our core businesses. To make matters worse, the agile community offers relatively little practical guidance for implementing DevOps practices in legacy environments. Fortunately, the Kanban Method provides a practical way to gradually evolve these core systems towards achieving DevOps cost savings and efficiencies, even if you don’t have a massive budget.
Through a case study involving a criminal justice system for a US government agency, we will examine how the Kanban method helped us identify and remove the barriers that prevented us from implementing DevOps automation for legacy systems. Just as importantly, Kanban provided the means to measure the efficacy of our efforts, prompting us to course-correct when necessary. We will review some interesting examples using the Microsoft technology stack, but these lessons apply equally to Java, LAMP, MEAN, or any other set of technologies. The end result was better quality and collaboration and faster delivery of value to our stakeholders. Perhaps it is possible to teach an old dog new tricks, after all.