When Legacy Codebase Stalls Innovation
VP Engineering at RepairPal
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.
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.
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.
Connect and Learn with the Best Eng Leaders
We will send you a weekly newsletter with new mentors, circles, peer groups, content, webinars,bounties and free events.