Tuesday, 19 April 2011

Systems that scale











Boris bikes ... what a great addition to the London commuto-sphere! I have recently, however, noticed a lot of frustrated boris-bikers hanging around by docking stations waiting for a docking space to become available. This, to me, seems like the scheme has become oversubscribed sooner than anticipated which got me thinking :
  • what if your product becomes too successful too quickly?
  • what if your product becomes more successful than you expected?
  • have you considered how it would scale? 
If you never plan scalability into your products/systems then inevitably you will end up having to apply fixes & patches after the fact or risk losing customers who simply aren't getting the experience they expect or even worse are experiencing a cost or pain due to the unforeseen side effects of a system that simply hasn't thought about scalability.

In the case of the Boris bikes, customers have to wait for a van to come around and collect some bikes thus freeing up capacity for more users. Users of your website won't hang around, if they cannot complete their transaction they will bail out. The result is loss of revenue for your business.

If you fail to plan for a system that scales you will be forced to resort to special task teams, such as the boris bike team who collect the bikes. The task team will, post-facto, analyse your bottlenecks and apply strategic fixes and patches to reduce the main pressure points. However, these can prove to be costly (you may need to hire specialist performance experts) and themselves unscaleable (there's only so many band aids you can apply to a system before it collapses).

Any well planned, well architected system should factor in the scenario of the product being "too successful".
  • Stress test your system to gain confidence that it can comfortably handle more than your expected volumes of users
  • Stress test your system to discover it's breaking point. Knowing the point where your system will fail can help you pre-mitigate the problems and will unveil the warning signs you will need to look out for when you feel you are approaching capacity.