Welcome!

Blog Post

Top Takeaways from Continuous Discussion (#c9d9) Ep. 40

CD for Legacy Applications

This week, we hosted a Continuous Discussion (#c9d9) on best practices for Continuous Integration and Continuous Delivery for legacy applications.

Our expert panelists included: Deepak Karanth, Chief Architect and Consultant at Software Yoga; Jean D’Amore, Consultant at ThoughtWorks; Manuel Pais, DevOps Lead Editor at InfoQ and consultant at Skelton-Thatcher; Tarun Arora, Microsoft MVP in Visual Studio Development Tools; and, as always, Sam Fell and Anders Wallgren of Electric Cloud.

In this episode, we covered legacy systems in depth – from definitions and addressing challenges, to the best practices for refactoring legacy code and DevOps-ifying your legacy applications. What resonated during the live podcast was the importance of culture and teams, and first making sure refactoring code is going to drive business value, before going all-in. Continue reading below for some of the top insights that were shared during the event.

How do you define Legacy?

  • KaranthDeepak-Karanth-c9d9-devops-podcast says “You know you have legacy code when “you look at [it], you feel like throwing it away.” In other words, it’s code which you do not want to change, or are afraid to change, because there’s no way to know if it will cause side effects in other parts of the system.”
  • Jean-DAmore-c9d9-devops-podcastIn D’Amore’s opinion, anything that is developed without DevOps and CD in mind is automatically legacy. He goes on to advise against letting code go dormant. “For example, you may have created something great six months ago, but if you have not touched it since and the mindset of changing and improving isn’t there, it is legacy.”
  • Fellsam-fell furthers by saying there is an “inertia” factor: if you sit still for too long, it becomes harder to move forward. “Always be thinking about how you can make your product more efficient, even if you aren’t touching the code frequently.”
  • manuel-pais-c9d9-devops-podcastFor Pais, legacy is an evolving definition, but is mainly applications that you cannot change at the speed your business needs them to change. Ipso facto, “If you don’t have processes in place to move quickly, you are working in a legacy app.”
  • Tarun-Arora-c9d9-devops-podcast“When dealing in legacy applications, it’s not the end-state, it’s the path,” says Arora. “Legacy begins with the fear of change.” He notes how management often respects stability in business applications, resulting in an increase fear of modifying. “If you can’t change on-demand,” he says, “you are on the path to legacy.”
  • anders-wallgren-c9d9“The core of legacy is fragility: you think or know it will break every time you touch it,” explains Wallgren. “This creates a positive feedback loop where you learn to stop touching the code entirely.” However, he says you need a little “TLC” in your code base so it doesn’t go to waste.

Should you poke that bear?

  • Tarun-Arora-c9d9-devops-podcastArora says “To take a business-case driven approach here. Go through your enterprise, take stock of applications, the turnaround time on them, and ask what value do they deliver to your organization? If they aren’t delivering enough value it may not be worth it to poke the bear.”
  • manuel-pais-c9d9-devops-podcastPais puts his focus of refactoring around teams and people. “It’s more important to start with awareness that a team has become legacy, rather than the code or application itself. Legacy teams working in older processes don’t allow systems in those teams to evolve as quickly as they need.” Pais’ advice? “Make it a priority to enable teams to work better and stay on par with the more advanced teams in terms of tooling, processes and collaboration.”
  • Jean-DAmore-c9d9-devops-podcast“Do you have the ability to rewrite the legacy code? Is there a part of the application that is less risky to replace? Is the system fit for the purpose?” These are all questions D’Amore would ask before considering refactoring legacy code. “If there’s an investment at the organizational level that says the system is right for us and we want to keep investing in it, then poke the bear.”
  • Deepak-Karanth-c9d9-devops-podcastAdvice per Karanth, “Don’t poke the bear just for the sake of it. It’s important to have a clear vision for why you need to poke the bear and what the outcome is of the whole process. Two important aspects to consider: 1) internal 2) customer.” Karanth says “You know it’s time to refactor the code when customers start complaining, and when your own developers are having a hard time changing the code.”
  • anders-wallgren-c9d9The age-old answer Wallgren gives is: “It depends. The practical problem with legacy applications is you have no tests, if you’re lucky there are specifications. The decision to refactor depends on many factors, such as the size of the legacy code base.”

Challenges with CI and CD for legacy apps:

  • Jean-DAmore-c9d9-devops-podcast“The biggest challenge in CI for legacy applications is off-the-shelf package apps,” says D’Amore. “Essentially, you are at their mercy.” However, D’Amore says “If you are forced into a package application situation, it should become a decision-making process – ask how is this going to affect my environment, how are we going to be able to make changes in the ecosystem alongside the package app?”
  • Deepak-Karanth-c9d9-devops-podcastKaranth mentions the challenge of politics when making a technical decision. “For example, when different departments are handling different parts of the delivering process, how do you automate? What happens to the jobs of those people when you do automate? The technical challenges are easy to solve – version control systems, unit tests – the biggest challenge is the people.”
  • manuel-pais-c9d9-devops-podcastPais further emphasizes the challenge of changing people and culture in legacy systems. He says, “To evolve your practices, and at same time evolve how people think about those practices. Often, there are one or two people that are really into the process of refactoring and create their own “hero crusade.” This is good, but not if everyone else stays where they were before.”
  • Tarun-Arora-c9d9-devops-podcastArora says an outcome-drive approach is best when implementing CI in legacy systems. “Being able to see where you are getting the biggest bang for your buck is crucial. It’s all about decomposing in a fashion where you can create a façade around it, or identify end-points that you can use to do automation testing to speed up the CI pipeline.”
  • anders-wallgren-c9d9For Wallgren, the challenge becomes, “who do you throw at this problem? Oftentimes, it becomes the “sustaining engineering” team’s problem, but in actuality you want your best people on this project.” He advises to “Think about the skillsets required to go into an unknown code base, understand it, figure out how to write tests for the part you want to refactor, and/or how to extract the part you want to tear out and write it as a new service.”

Bringing DevOps practices to legacy applications- where do you start?

  • Deepak-Karanth-c9d9-devops-podcastKaranth emphasizes again that “The starting point should always be the culture; find out if the team has the necessary people to do the job. Management often treats this process as just another development task, which is the wrong approach,” according to Karanth. “Finally, understand that refactoring and building a support environment (both people and tools) takes several months to do.”
  • Tarun-Arora-c9d9-devops-podcast“There is no value in doing it, if there is no value in doing it,” says Arora. “There needs to be business value, appetite for change, a roadmap and a vision.”
  • manuel-pais-c9d9-devops-podcastAdvice per Pais: “When you realize it’s worthwhile to refactor, first deal with reality, take things step by step, seize opportunities to change and improve, and change the technical side along with the culture and mentality.” Culture is important, but Pais reminds us to “Have metrics in place to make sure you are going in the right direction.” (ie. deploy frequency, time-to-repair)
  • Jean-DAmore-c9d9-devops-podcastD’Amore advises to “Visualize your current state – the latencies, what changes often and what is the hardest to change.”
  • anders-wallgren-c9d9Wallgren says to “Make sure you invest enough time and resources in understanding the change you are about to make. Try not make too many decisions on scope until you have spent time on investing. You are likely dealing with code that isn’t well-defined in terms of what it’s supposed to do – bite off less than you think you can.”
    In addition, he says:

     

Watch the full recording of this week’s episode here.

More DevOps for legacy applications

DevOps and CD for legacy applications is also a key topic at DevOps Enterprise Summit (DOES). For more real-world use case for addressing legacy applications in the enterprise, watch CenturyLink’s talk below on implementing CD for Legacy Applications from DOES15, and Scott Prugh’s talk from DOES14.

Century Link – Implementing CI/CD for Legacy Applications

Scott Prugh – CSG – DevOps and Lean in Legacy Environments

Want to take the stage at this year’s DevOps Enterprise Summit?

There’s still time to submit your talk proposal for DOES16 – CFP closes on May 16, 2016.

Submit your proposal »

Want more Continuous Discussions?

We hold our #c9d9’s every other Tuesday at 10 a.m. PST, with each episode featuring expert panelists talking about DevOps, Continuous Delivery, Agile and more. Next time on Continuous Discussions: Creating an Internal Dev/Test Cloud.

More Stories By Anders Wallgren

Anders Wallgren is Chief Technology Officer of Electric Cloud. Anders brings with him over 25 years of in-depth experience designing and building commercial software. Prior to joining Electric Cloud, Anders held executive positions at Aceva, Archistra, and Impresse. Anders also held management positions at Macromedia (MACR), Common Ground Software and Verity (VRTY), where he played critical technical leadership roles in delivering award winning technologies such as Macromedia’s Director 7 and various Shockwave products.

Latest Stories
While some developers care passionately about how data centers and clouds are architected, for most, it is only the end result that matters. To the majority of companies, technology exists to solve a business problem, and only delivers value when it is solving that problem. 2017 brings the mainstream adoption of containers for production workloads. In his session at 21st Cloud Expo, Ben McCormack, VP of Operations at Evernote, discussed how data centers of the future will be managed, how the p...
When applications are hosted on servers, they produce immense quantities of logging data. Quality engineers should verify that apps are producing log data that is existent, correct, consumable, and complete. Otherwise, apps in production are not easily monitored, have issues that are difficult to detect, and cannot be corrected quickly. Tom Chavez presents the four steps that quality engineers should include in every test plan for apps that produce log output or other machine data. Learn the ste...
Wooed by the promise of faster innovation, lower TCO, and greater agility, businesses of every shape and size have embraced the cloud at every layer of the IT stack – from apps to file sharing to infrastructure. The typical organization currently uses more than a dozen sanctioned cloud apps and will shift more than half of all workloads to the cloud by 2018. Such cloud investments have delivered measurable benefits. But they’ve also resulted in some unintended side-effects: complexity and risk. ...
Is it possible to migrate 100% of your data ecosystem to the cloud? Join Joe Caserta as he takes you on a complete journey to digital transformation mapping out on-prem data footprint and walking it to the cloud. Joe will also explain how the modern ecosystem supports Artificial Intelligence and will include business use cases to back each of his insights.
Your job is mostly boring. Many of the IT operations tasks you perform on a day-to-day basis are repetitive and dull. Utilizing automation can improve your work life, automating away the drudgery and embracing the passion for technology that got you started in the first place. In this presentation, I'll talk about what automation is, and how to approach implementing it in the context of IT Operations. Ned will discuss keys to success in the long term and include practical real-world examples. Ge...
Recently, REAN Cloud built a digital concierge for a North Carolina hospital that had observed that most patient call button questions were repetitive. In addition, the paper-based process used to measure patient health metrics was laborious, not in real-time and sometimes error-prone. In their session at 21st Cloud Expo, Sean Finnerty, Executive Director, Practice Lead, Health Care & Life Science at REAN Cloud, and Dr. S.P.T. Krishnan, Principal Architect at REAN Cloud, discussed how they built...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
When building large, cloud-based applications that operate at a high scale, it's important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. "Fly two mistakes high" is an old adage in the radio control airplane hobby. It means, fly high enough so that if you make a mistake, you can continue flying with room to still make mistakes. In his session at 18th Cloud Expo, Le...
Sanjeev Sharma Joins November 11-13, 2018 @DevOpsSummit at @CloudEXPO New York Faculty. Sanjeev Sharma is an internationally known DevOps and Cloud Transformation thought leader, technology executive, and author. Sanjeev's industry experience includes tenures as CTO, Technical Sales leader, and Cloud Architect leader. As an IBM Distinguished Engineer, Sanjeev is recognized at the highest levels of IBM's core of technical leaders.
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by ...
JETRO showcased Japan Digital Transformation Pavilion at SYS-CON's 21st International Cloud Expo® at the Santa Clara Convention Center in Santa Clara, CA. The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to companies expanding to Japan. With the support of JETRO's dedicated staff, clients can incorporate their business; receive visa, immigration, and HR support; find dedicated office space; identify local government subsidies; get...
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, we provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading...
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...