The unexpected can and will delay your launch.
At a previous employer, I was the sole web developer on an engineering team of almost 10 people. This meant, among other things, I worked with technologies the team had never heard of let alone understood.
Still, it was their responsibility to give my code a quick sanity-check review before I pushed it to the server. More than once, they just glanced at my code, thought I don’t understand this at all but I trust Eric, and given me the green light.
This obviously led to problems.
We started holding monthly meetings to show off new projects each team member was working on as a way to build camaraderie amongst the team. It was a blast, and I eagerly awaited my turn on the SmartBoard. I presented a nifty C#-based CMS I had built from scratch that managed not only our corporate website but also licensing and renewal information for our clients and support information for our call center upstairs.
One of my coworkers had a question when I was done showing off, “so … if Eric gets hit by a bus tomorrow … what happens?”
We chuckled a bit and I was advised to avoid bus stops until we had time to find someone to cross-train on my code. After a couple of hours, it was apparent that finding a backup would prove difficult; the “avoid bus stops” warning was less of a joke.
The next day, my boss informed me the company had purchased a life insurance policy for me to protect against that unlikely eventuality.
Not kidding.
Murphy’s Law
We’ve all promised deadlines once upon a time that seemed reasonable only to have them fall through. A co-worker gets sick and fails to ship a design on time. A vendor scraps a product before you had time to clone the development repository as a backup. Someone breaks into the office and steals everyone’s computer.[ref]This happened to me at a marketing agency the day before we made a key presentation to a client representing a $2MM contract. Luckily we had backed our critical files up to a remote server, but restoring everyone’s systems took quite a while and even after working through the night we barely made it to the meeting.[/ref] A server catches on fire and takes the site down right before launch.
The unexpected can and will happen. You can’t predict catastrophic system failure. You can’t predict break-ins. You can’t predict developer-hungry buses.
But you can insulate the project from them.
Does success depend on one key person? Cross-train someone else on their duties as early as possible and make sure they stay up-to-date.
Does the presentation depend on a specific machine? Set up a second – or a third – just in case something goes wrong.
Are you taking the entire team across town for dinner? Don’t let all of your senior staffers ride in the same vehicle.
Yes, this might sound corny, but the goal here is to identify any potential risks to the project, its schedule, its success, and the overall vitality of the team and plan around them with omg-its-going-to-happen certainty. If nothing goes wrong, you were overprepared. There’s nothing wrong with being overprepared.
If something goes wrong and you were underprepared … then I wish you the best of luck.