Startups move fast. As products and companies evolve, growing pains are inevitable. Even if the initial technology stack choice was sound and the technical debt is properly managed, product pivots and scaling challenges will likely result in major changes to code. Following a meetup at Honeybook, below, we review Honeybook’s successful migration to AngularJS for some lessons learned.
As part of our initiative to be closer to portfolio companies this year, we launched a rotating Meetups at our portfolio companies in order to share their lessons and experiences with the broader startup community.
Last week we co-hosted our first meetup on “Get to Know and Get Ready for Angular 2.0” at HoneyBook. Creatives and event professionals use HoneyBook to simplify and power their everyday business. In one place, they can digitize and automate any form of paperwork and communications, collaborate with creative peers, and get the support needed to expand and extend the life of their careers. The company is managed between offices in San Francisco and Tel Aviv.
A year ago, HoneyBook developed the platform part of its offering for event and creative professionals. Through continuous and rapid development, Honeybook delivers an excellent experience to their members. However, this rapid, customer-centric development impacted its codebase. The client side framework being used at the time – Backbone.js – didn’t support these changes well. At the same time, the development of Angular and other frameworks with more active developer communities made it clear, that in order to keep moving fast, the company needed to make some changes.
The development team at HoneyBook knew a framework change on this scale would take several months to complete. Understanding that this seemed like an eternity to everyone, Oz Alon, CEO and co-founder of HoneyBook, joked at the time that “since HoneyBook is building for the long haul, what’s a few months compared to 50 years?” The team ruled out migrating incrementally and decided to bring product development to a halt while they focused all their R&D resources to complete the codebase migration task as quickly as possible.
In the end, the migration process took three months and went exceptionally well. HoneyBook met its own deadline and tripled the teams’ ongoing development speed. We interviewed Oz and Dror Shimoni, co-founder of HoneyBook, to share their learnings in order to help companies facing similar challenges.
1) Understand, anticipate and manage the risk
If you choose to invest most or all of your R&D resources into a refactoring effort, you will probably bring your product development to a halt. Since this process usually takes a few months, your customers will experience a stagnant product and your competitors’ marketing people will take advantage. Oz’s advice is to prepare your sales, support and community teams in advance to communicate this process (and the benefit) to your customers to keep them happy and patient. While this communication helps, you should anticipate a decline in sales and customer retention and be willing to take that risk. Oz understood that even if it meant losing the majority of their hard-earned members to-date, this process was crucial for the company’s future growth. HoneyBook was living out one of its mottos: “being fearless.”
A churning user base and a stagnant product is not a great recipe to raise capital. You should leave enough margin of error for the refactoring process to end successfully and consider a potential recovery time for the member base to regrow. You should allocate some recovery time when analyzing your runway and planning your next round and growth projections. That said, there is never a perfect time for refactoring and once you understand that refactoring is inevitable, you should get it out of the way as soon as possible before you find yourself forced into it.
2) Communicate the process clearly
While the need for a major refactoring effort is clear to the CTO and architects, it might not be clear at all to the non-technical team members. Things get even more complicated when the CEO has no engineering background. Discussions on the details of refactoring are highly technical debates and might leave the ‘non-techie’ members of the team feeling like they have little to no influence. Although trusting your team members and your intuition are important, it is best to set measurable goals for the refactoring process. Whether the goals are scaling better, improving development efficiency or recruiting, predefining them as a team helps on-board everyone and focus the company during the process.
Communicating the milestones and progress is equally important. Taking the time to accurately assess the resources needed for such a project and setting clear and measurable milestones along the roadmap will help solve friction when, not if, it occurs. At Honeybook, they kept their process and progress transparent. Each web-page that was rewritten in Angular was available for review and rigorous and frequent time reassessment were held and published, helping the San-Francisco teams stay on top of things that were far away physically and technically.
3) Prepare your R&D
Conducting a major change in your technology stack is always a challenge. Whether you are restructuring your architecture for scale, adjusting to a product pivot or switching to a new coding language, it is possible that your current team’s knowledge and skill set are not sufficient. Investing the time to properly train your team and hiring outside consultants to monitor and advise on the process will make for a more time-efficient process and a stronger technical team after the process is done.
Before Honeybook started the shift to Angular, they devoted a handful of their tech-leaders to research the framework, discuss the programming paradigms the team will use and to build the infrastructure for the migration. When the rest of team joined them, they had a solid foundation to rely on and their productivity was high from the get-go.
The meetup we held last week is part of Honeybook’s preparation for their next technological leap towards Angular 2. Hosting leading Angular evangelists at your company is a great way to get your team intrigued and it’s also a good opportunity to give something back to the community.
Honeybook’s story is one of many experiences which entrepreneurs can share with others in the community and help them learn. The meetups we will hold in the next few months will offer pragmatic tools and lessons from our the experiences of our portfolio company’s founders in a variety of fields. Our next meetup will focus on design and will be hosted by JoyTunes. For more information about our next meetups, sign up to our newsletter.