When Legacy Codebase Stalls Innovation
19 September, 2021

VP Engineering at RepairPal
Problem
We had a legacy codebase that was working quite well. But if we wanted to add to the existing features or try something new, we would encounter some difficulties. As much as the problem was technical, it was in its essence a mindset problem. It took a mindset shift to detach from the given circumstances and approach a functional, working codebase with an innovation mindset.
As a leader, I was aware that not encouraging innovation will take its toll. I wanted to instill an innovation mindset in my team members and have them learn and experiment at all times. That will undoubtedly involve some risk, but I would be able to contain it. In all honesty, I could see nothing but benefits from it.
Actions taken
First off, I surveyed the engineering team because they were the ones to work daily on the legacy codebase. I wanted to gain their insights based on their dealings with new features, bugs and improvements. After some brainstorming with my peers in product & business, I compiled the questions and sent the survey out. I used the results to create the Happiness Index, which would measure their satisfaction with the status quo and indicate what would make them happy in terms of new challenges that we could offer. In parallel, I worked with the leadership team to secure buy-in for future initiatives that could instigate innovation. It was a bit bumpy, and it took time, but explaining why nurturing an innovation mindset was important helped with convincing.
Then I started to research thoroughly about innovation, particularly given our situation. I looked at other well-established companies that certainly had legacy codebase and perhaps, some obsolete processes but placed innovation as a top priority. The extensive research helped me not start from scratch but take their learnings and customize it to match our needs. One of the things that stood out and felt quite applicable to our situation was organizing regular hackathons. With hackathons, we were learning over time, the second being better than the first, etc. We also learned from other companies that some of the best experiments were done using AB testing. Initially, we started some AB testing on our own but then began to leverage some third-party applications for testing.
In the end, we decided to bring some fresh ideas from the outside. We established internship opportunities in cooperation with the University of California, which supplied us with some novel ideas. We opened our hackathon to their college students and future software engineers. We also extended our partnership to the computer science department, which further strengthened our cooperation with academia and ensured we were aware of the latest developments in the field.
Lessons learned
Nurturing an innovation mindset gradually brought us to the realization that we should move from our legacy codebase. There was a lot of planning needed to make that happen, and we couldn't do it all at once. We established benchmarks that helped us track our progress incrementally and motivate us to keep it going. At the same time, we made sure that the business and all stakeholders were getting their features and that things were delivered. Our work was organized not to stop new things from happening, on the contrary, it was organized to help us innovate on our codebase and have more new things.
Discover Plato
Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader
Related stories
29 November
Why DevSecOps matter and what's really in it for you, the team and the organisation?
Vikash Chhaganlal
Head of Engineering at Xero
25 October
Mrunal Kapade, an Engineering leader, based in Silicon Valley, shares tips that helped reduce attrition in the remote engineering teams while leading multiple teams from startups to Fortune 500 companies.

Mrunal Kapade
Director of Engineering at Inspire Energy
14 October
Teams have tremendous impact on the products on they build. T.E.A.M definition - Together Everybody Achieves More is true. A collaborative and empowered team builds great product versus the good ones.

Praveen Cheruvu
Senior Software Engineering Manager at Anaplan
23 June
Lucjan Suski, CEO & Co-founder of Surfer, relates how he started a company as a side project and shares his insights on bootstrapping tech startups.

Lucjan Suski
Co-founder, formerly CTO and CEO at Surfer
22 June
Łukasz Biedrycki, VP of Engineering at BlockFi, talks about the importance of building on your strengths and finding your passions to maximize your impact. He dives into the tactics that managers can use to support their teammates in this pursuit.

Łukasz Biedrycki
VP of Engineering at Glassnode