Back to resources

When Legacy Codebase Stalls Innovation

Innovation / Experiment
Dev Processes
Motivation

19 September, 2021

Arpan Dalal
Arpan Dalal

Sr. Director Engineering at RepairPal

Arpan Dalal, Sr. Director Engineering at RepairPal, shares how sticking to a functional, legacy codebase can stall innovation by deterring people from trying new things.

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

The Art of Asking Why: Narrowing the Gap Between Customers and Users

24 May

Jord Sips, Senior Product Manager at Mews, shares his expertise on a common challenge for product managers – finding root causes and solutions.

Customers
Innovation / Experiment
Product
Personal Growth
Leadership
Stakeholders
Users
Jord Sips

Jord Sips

Senior Product Manager at Mews

Navigating Disagreements When It Comes to Priorities

9 May

Pavel Safarik, Head of Product at ROI Hunter, shares his insights on how to deal with disagreements about prioritization when building a product.

Innovation / Experiment
Product Team
Product
Dev Processes
Conflict Solving
Internal Communication
Collaboration
Convincing
Strategy
Prioritization
Pavel Safarik

Pavel Safarik

Head of Product at ROI Hunter

Leading Your Team in Stressful Situations

27 April

David Kormushoff, Director at Koho, recalls how he galvanized his team to tackle a time-sensitive problem, sharing his tips on how to shift chaos into calm.

Goal Setting
Leadership
Conflict Solving
Deadlines
Collaboration
Motivation
Strategy
Health / Stress / Burn-Out
David Kormushoff

David Kormushoff

Director at Koho

Why You Should Take Technology Risks in Product Development

25 April

Matias Pizarro, CTO and VP of Residents at ComunidadFeliz, recalls a time in his early career when he took a technology risk that had wide-ranging benefits to his product's user experience.

Innovation / Experiment
Product
Scaling Team
Dev Processes
Matias Pizarro

Matias Pizarro

CTO and VP of Residents at ComunidadFeliz

Combining User Research with Testing to Build a Successful Product

20 April

Waldo Vanderhaeghen, VP of Product at 3YOURMIND, details an experience in product discovery, analyzing user research, and testing.

Innovation / Experiment
Product
Conflict Solving
Feedback
Users
Waldo Vanderhaeghen

Waldo Vanderhaeghen

VP Product at 3YOURMIND

You're a great engineer.
Become a great engineering leader.

Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.