The Mistake of Rewriting Products
12 February, 2018
Associate Director at Wayfair
Problem
I joined Venmo as Manager of the iOS team, and the team really wanted to rewrite the iOS app in Swift. I was wanting to build credibility with the team, so I went to bat for them and convinced Product that we should do the Swift app.
Actions taken
We had a few challenges in rewriting the app. We had to maintain two codebases, there was still pressure from Product to continue releasing new features, and there were bug fixes to make in production. With a small team of six to seven people, it was difficult to manage all of these issues. Around a year into the project, we were working with Apple towards their SiriKit and iMessage extension release that was part of iOS 10. We were at a decision point of whether to use our old codebase or new codebase to build it. The team was sure that they'd get the new app out with Swift and with the extensions in a couple of months, and felt that they were really close to the end. However, I had to go back to the team and say that we couldn't do it. The team was really disappointed and frustrated by this. However, we got the extensions done on our old codebase and got a little bit of PR along with that, working with Apple. While the team was frustrated, they did come to recognize that there was no way the new app would have been ready, as the release of the new Swift app didn't happen until six months after.
Lessons learned
Rewrites are really difficult projects, and where possible you should instead make incremental changes. What we thought would take three to six months of development ended up taking about two years. It took too long and it caused enough frustration with various team members that by the end of it, there was only one engineer from the original team left. There's a quote "You do one rewrite in your career and then never again." This was it, this was my rewrite. I agreed to do this project as I really wanted to support the team, but it was a terrible decision. I also learned that you have to go back on your own decisions sometimes. It was tough to deliver the message to the team that we wouldn't be using the new app for the Apple extension release, but it resulted in a much better outcome.
Discover Plato
Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader
Related stories
26 May
Hiring 10x engineers is hard for most companies. It’s a tough battle out there for talent. So how should most companies approach building their team?

Vaidik Kapoor
VP Engineering - DevOps & Security at Grofers
24 May
Jord Sips, Senior Product Manager at Mews, shares his expertise on a common challenge for product managers – finding root causes and solutions.

Jord Sips
Senior Product Manager at Mews
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.

Pavel Safarik
Head of Product at ROI Hunter
8 May
Weiyuan Liu describes his experience moving up from an individual contributor, tech lead, and engineering manager.

Weiyuan Liu
Director of Engineering at Zillearn
8 May
Weiyuan Liu shares his insights on public speaking, such as how to prepare for your first presentation.

Weiyuan Liu
Director of Engineering at Zillearn
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.
