Rapid Growth

Reading Time Time to read: 2 minutes

Move fast without breaking things

Leonidas Tsementzis

Head of Engineering @ Forward Partners

Building a product is hard. Building a product that scales with the team and the constantly evolving business needs is even harder. As your product grows, you will need to scale up your team and introduce some processes in order to make developing, testing, releasing and maintaining your product fast, efficient, and more enjoyable.

Key takeaways

  • Release early, release often and listen to your customers
  • Create a culture of automating testing
  • Automate the boring tasks

Release early, release often

The product release cycle is moving towards continuity. Facebook releases major features every Tuesday and bug fixes every day. HubSpot deploys 300 times per day. Even desktop applications like Google Chrome releases new updates automatically, without any user interaction, ensuring an always up to date product. As an early stage startup, you may not have the capacity to release so often, but you need to setup the processes to automatically release a feature or a bug fix as soon as it’s ready, without having to wait for a major ‘release bundle’. Being able to quickly experiment and evaluate your assumptions not only reduces your customer feedback loops but also introduces an “always shipping” culture, enabling everyone to continuously provide value to the customers. Thankfully, there are lots of commercial and open source products to help you setup a continuous delivery process. You can use PaaS solutions like Heroku to easily deploy your application directly from your command line, or setup a fine-grained release pipeline process using tools like Jenkins, Travis, CodeShip, AWS CodeDeploy etc.

Create a culture of testing

Writing tests is a integral part of software development that allows development teams to deliver high quality, predictable and maintainable products. To someone who isn’t a software developer, the idea of writing code to test code may seem rather silly, but the benefits are easy to see:

  • Running tests automatically before each release, ensures the product works as expected and you’re not introducing new regressions.
  • Tests serve as documentation for how your code is meant to behave. Good tests are like a reference implementation, and other developers can look at them to see how to integrate their code with yours.
  • Tests make it easier to change software because you have confidence that changes do not break existing functionality. Poorly-tested software becomes increasingly expensive to change as time goes on. Risk increases dramatically as the system becomes more complex because it becomes more and more likely that changes inadvertently break things that used to work.

Writing tests is an easy to overlook process in the very early stages of a product but it’s important to remember that “Going Lean” doesn’t mean go fast regardless of quality. Going Lean is avoiding waste. Bad quality software generates a lot of waste. So, if you avoid writing tests, you are really generating a lot of waste. If not now, then certainly later, when the cost of change would by significantly higher.

Automate the boring tasks

Setting up a development environment for a new hire is almost always a frustrating experience. Ensuring your development environment closely replicates your production environment is necessary to avoid compatibility issues. Configuring services for a production environment is a repeatable and error prone procedure. Automating those procedures is necessary in order to move fast but also to ensure the development experience is always consistent.

Leonidas Tsementzis

Head of Engineering @ Forward Partners

Leonidas is Head of Engineering at Forward Partner and has over ten years experience in software and product development, specialising in full stack development, scalable infrastructures and lean development practices. He has founded two startups and is an advisor to others. He has a strong engineering background, he works closely with our early stage startups on all their technology oriented needs. He’s an open source advocate and frequent speaker at tech events on infrastructure, scalability, performance and lean development.


Comments are closed for this guide.

Similar Guides