Is your team constantly firefighting instead of building features?
- Does it take longer for a feature to get released than it did to write it?
- Do you lose sleep the night before the “big release”?
- Do you find yourself manually checking and rechecking features despite tests?
- Do you schedule work or sprints around releases?
- Your list of “action items” from the last outage just keeps growing or never gets fixed?
- You have some systems in place, but you never know which one to use?
Your team and your code isn’t the problem.
Your systems are the problem.
It’s true, every team and organization is a bit different. They’re all unique. But that doesn’t mean that they don’t need _reliable, resilient _processes
What tools you choose to use don’t matter that much.
Almost every single product, team, and organization goes through a similar journey
I’ve worked with a number of teams across a number of organizations and have seen the same issues crop up over and over and over.
This is OK, its all part of the process. If you were writing a book you wouldn’t expect to just suddenly have a perfect final draft right? Your systems development works the same way.
“Automation” is often said to be the solution. Sure it sounds great, get a machine to do it. But if you don’t intentionally craft your automation to relieve the pain points, to help with systemic problems, you’ll find yourself right back in the same spot. This time just with a lot more code.
Unfocused automation won’t help you.
You need a solid foundation in order to build the right sort of automation.
Are you ready for automation?
Do you have the foundations in place to add automation to your development and release process?
I lay out 10 core things that you need to have in place in order to help speed up your release cycle as well as provide guidance on how to do them.
I’ve helped teams and individuals at companies like:
Amazon, Zappos, WalmartLabs, and VMWare.