Smarter engineering decisions in startups
Team Workomo had an excellent working session on engineering last week with Prashanth Susarla, ex-CTO of PayU. He shared several frameworks and heuristics with us for taking smarter tech decisions as a really early-stage startup. Sharing key insights below 🎯
#1 Less is more: proactively look for platform elements where you can avoid coding and offload to off-the-shelf services. Look for opportunities where you can cut down your own code. Avoid unnecessarily complex approaches for low-value tasks 🤺
#2 Invest in automated testing: it will yield valuable dividends compared to manual testing. In fact, engineering teams should invest in automated testing ASAP else it becomes part of a broken culture that’s tough to change later ⚙️
#3 Testing is strategic to the product: often teams tend to view testing as low-value ops. Being able to design great test cases is a high-value skill. Break down the most critical user journeys and start automating them. Don’t sweat over perfecting the testing frameworks yet 🛠
#4 Aim for architecture reliability, not perfection: at really early stages, with rapid product iterations and pivots, engineering teams need to build for progress and not perfection. Having said that, keep periodically stress testing your backend for expected traction loads 🏋🏼♀️
#5 Define engineering SLAs via highly-specific user stories: eg. a user story could be “95th percentile of my users should not see more than a 5 min delay between updating their Gsuite calendar vs those changes reflecting in the Workomo panel” 🎥
#6 Apply ML to project future loads & requirements: while engineering is building for high-velocity weekly/ biweekly releases, certain core elements require thinking through requirements say after 1–1.5 yrs. However, you can’t build for it right now. So use ML to break down the problem and optimize 🔬
#7 Account for engineering activities in product sprints: core engineering tasks that aren’t always directly related to a specific feature release, still need to be baked into sprint planning & timelines. Helps balance prioritization between feature releases and tech debt optimization ⛹🏽♀️
#8 Build a strong engineering culture: that happens as a result of adopting strong habits. A bad habit will often give you speed but destroy value in the long run. Even if you are moving in bi-weekly sprints, always have a 3-month view and a 1-year strategy in place ⏳
#9 Security is important even for a really early product: your platform coming under attack is not a question of “if”, it’s a question of “when”. Think about security as soon as you launch, even in private beta. Imagine a doomsday scenario once a month and prepare for it 🏹
#10 Finally, the best engineering teams are driven by humility: while looking to build any feature or platform, teams need to be incredibly honest to themselves about their present capabilities, what risks can they take, what plans can they pull off & take decisions accordingly 🧗🏽♀️
What are some engineering best practices that have worked for you in an early startup environment? Would love to hear your thoughts.
Note: this post first appeared on the Workomo blog here.