The Mistake of Rewriting Products
12 February, 2018
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.
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.
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.
Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader
Parallels between Work and Sport.
SVP Engineering at Trustly Group AB
A major sign of trust, comfortability, and vulnerability is for someone you lead to be able to say something sucks.
Senior Engineering Manager at Curology
Jonathan Ducharme, Engineering Manager at AlleyCorp Nord, encourages the importance of a workplace environment that cultivates mental wellness.
Engineering Manager at AlleyCorp Nord
Lewis Prescott, QA Lead at Cera Care, explains his journey from a degree in psychology to learning test automation and computer programming.
QA Lead at CeraCare
Otavio Santana, Distinguished Software Engineer at Zup Innovation, shares his best practices for upskilling without stretching yourself too thin.
Java champion, software engineer, architect, and open-source Contributor at Independent Technical Advisor