Understanding that employees keep a lot of your startup’s critical info in their heads is part of every disaster (or attrition) preparedness plan. The analysis often begins with, “What if (employee name) gets hit by a beer truck?”
But for a tech startup with just a few developers – especially when the founder isn’t one of them – a more appropriate question might be, “What if my entire development team disappears? Can I actually keep serving my customers and stay in business long enough to rebuild the team?”
Understanding Dependencies: The Highest-Stakes Game of JENGA Ever
In the rush to a Minimum Viable Product, a lot of key technical decisions, compromises, and shortcuts will be made. It’s inevitable. Once the product is deployed and in production, there can be a web of interlocking technical dependencies that no single person fully understands, a web that isn’t actually visible in the code itself. Those dependencies can interact and break in strange and unexpected ways.
It’s like having your entire business built on top of a JENGA tower, and only the developers who built the tower actually understand where you can add and remove pieces without the whole thing toppling over and crashing to the ground & taking your company with it.
Some of the most important information is often the least obvious. Is there an SSL certificate about to expire that nobody bothered to document? An expired certificate can cause everything to mysteriously stop working at midnight. Is there some minor cloud service (say a push notification broker) no one told you about that would bring your entire service down if the next version of its API changed? If it takes you a week to figure out what’s happening, how many paying customers will you have left?
Technical Documentation: Write it Down Now – You’ll Need it Later
It is a bit counter-intuitive, but disaster preparedness for a 3-person development team requires more, not less, DevOps documentation than a larger team. With a bigger team, the critical information about how your product is developed, deployed, and maintained is almost always distributed and replicated across several people’s heads. It’s inherently fault-tolerant. But with only 3 developers? Get the critical stuff written down!
Start by having the team list the purpose and credentials of every single cloud service used in the documentation, development, testing, deployment, operations, support, and sale of your product. You’ll know it’s time to start sweating when the list gets to 20 services and you’ve never heard of half of them.
As a startup, your greatest asset is your people. And the work they produce has tremendous value. Which is why it’s essential that you protect their work against beer truck disasters through rigorous technical documentation. That way, even if your core development team moves on to another company, or goes on parental leave, or gets hit by an 18-wheeler filled with kegs of craft stouts and small-batch ales, your startup will still be able to keep on going.
Jeff Brown is a coLabber and software developer specializing in web applications.