Developer velocity drives business growth
Rapid product development drives outcomes in startups. McKinsey claims that companies with great developer velocity achieve:
- Four to five times faster revenue growth.
- Sixty percent higher total shareholder returns.
- Twenty percent higher operating margins.
- Greater customer satisfaction, brand perception, and talent management.
The best way to improve developer velocity is to reduce the time developers spend on unnecessary manual work — when an engineering team moves slowly, it’s usually because they’re busy with work other than building software. In some startups, developers spend a tonne of time manually testing their work, reading bad documentation, manually releasing/deploying code, and troubleshooting issues.
Reduce wait times
Software engineers spend a lot of their time waiting:
- They wait for tasks, tickets, or feedback from their product manager.
- They wait for their quality assurance testers to validate their work.
- They wait for slow automated tests to run.
- They wait for other engineers to review and merge their pull requests.
- They wait for the next release so they can ship their code.
- They wait for customers to upgrade to the new version so they can use their new features.
- They wait for the customer service team to relay customer feedback on their new features.
When developers wait, they either sit idly or work on something else. Both of these are terrible:
- Idle time is wasted time! Nobody wants key employees sitting around.
- Juggling multiple projects simultaneously kills focus, leads to excessive context switching, and distracts developers from what’s important.
Startup leaders should prioritise developer experience to reduce wait times and keep developers focused on developing.
Tighten feedback loops with automation
The best wait to improve developer experience is through automation. With automated frequent releases, developers no longer need to wait for their work to make it to production. With automated testing, developers no longer need to manually test their work or wait for someone else to do it.
Startup leaders who prioritise automation through DevOps build more productive teams.
- Automatically build your software upon each commit or pull request with Continuous Integration (CI) tooling.
- Automate testing. Automated tests are more reliable and efficient than manual tests because they reduce human error and run in the background. Your build process should run automated tests.
- Automate performance testing. Software can stress test your application and infrastructure for you.
- Automate static code analysis, dynamic analysis, and dependency checks to reduce the burden of cybersecurity compliance.
- Automate releases and upgrades. With Continuous Deployment (CD), developers no longer need to manually release code and upgrade customers. You can deliver value frequently with minimal overhead.
- Use automated migrations to handle database schema changes.
- Manage infrastructure as code. With infrastructure as code, you can automate platform infrastructure provisioning, configuration, and management.
- Automate monitoring, logging, and alerts. Proactive monitoring of infrastructure and services can reduce the number of unexpected disruptions, distractions, and incidents.
Cut out intermediaries to tighten feedback loops
After a feature is released, additional work is usually required to improve it. Customer feedback and the measured performance of the feature (adoption, load times, conversion rates) informs this work. Developers spend a lot of time waiting for this feedback (though they may not realise it because they typically move on to something else while they wait).
While insulating developers from unnecessary distractions is a good idea, leaders often take this too far by adding distance between engineers and customers. Product people often toil over processes and research/communication efforts to help engineers understand customer feedback and customer needs. There is a simpler solution here: expose engineers to customers.
A good software development process features customer feedback at every stage. Engineers should consult quantitive customer data and qualitative anecdotes directly from customers. This exposure doesn’t mean every customer should have constant direct access to engineers; developers must focus on development. But as they build, they should demo and deploy directly to customers who can provide valuable feedback and advice.
Maintaining short wait times
Teams that win over the long term continuously shorten developer wait times. Startup leaders should regularly ask themselves what roadblocks, barriers, and distractions keep their engineers from building software. Try to measure this, and ask your developers for feedback. The less time developers spend waiting, the more they spend building. That’s how you outpace the competition and deliver value to customers.