Planning for Failure is Easy

Planning for failure is easy – planning for success is much, much more difficult.  Failing has absolutes that you CAN plan for.  Success is much more ambiguous.  What is success?

For a new web startup – is success 100,000 hits the first day?  Or 100 million hits the first month?  How you manage either is critical to not just growing, but existing.  No matter what your traffic, you need to serve it.

The ability to expand is crucial, and it takes a lot of different things to make that happen.  The software has to be ready to handle unexpected traffic.  The database needs to keep up.  The server needs to STAY up.  

You need some money set aside – quadrupling your data plan in an hour is expensive.  Doing it every hour for a week is damn near impossible to deal with.  Even if money weren’t an issue.

Money is of course, always an issue.  What if you expected to spend 10K and you put 50K away “just in case”?  And then you found you needed 500K.  Do you have a plan?  Who would you call?  And if you called – do they know enough about you to maybe invest 500K NOW?

Most people I have worked with are more concerned about what happens if the application can’t handle the traffic – they are worried about the software, not the infrastructure.  Most launch-day failures I have observed have come from infrastructure/expansion issues.  Not simple programming issues.  I would rather have programming issues.

Today I told a client that, “What we are doing now is like replacing the air ducts in a basement – to improve the ventilation of the whole house.  Until we get out of the basement, you won’t feel the breeze”.  Something like that anyway.  And yes, it sounds corny.  Worse now than in context, I think.  But it still is true. 

 Sometimes it gets really bad before it gets really better.  We aren’t at really bad.  We’re just in the dark for a while.  And just like a spacecraft re-entering the atmosphere – I don’t feel nervous during the black out period. 

But I get very worried if the blackout lasts longer than it should.