At some point in your product career, you will do a systems migration or a system rewrite. In this two-part series, let’s explore some lessons learned. This first post is about the things to avoid before starting a systems migration. The second post will walk through some practical tips for organizations on the most efficient way to pull this off.
To set the stage – How do you get to the point of needing a rewrite in the first place? The general arc of startups starts with an MVP that is designed quickly. It’s all lean in the beginning, this is the MVP phase. Most backend processes are manual. It makes sense – you don’t know if there is product-market fit and so you don’t over-engineer and make a full end to end software solution. As you find product-market fit, your user base starts growing exponentially and you enter the bolt-on phase. There isn’t enough time to slow down and add incremental features to the core product to make scaling easier. So you start bolting on hacks on top of hacks, pseudo automation based on excel macros and more policies and procedures to keep up with the growth. Your software system now gets to spaghetti level status. Continue reading “Platform rewrites, lessons learned”