Whenever I visited developed countries, I learned quite a few things about their general infrastructure. For instance, when I went to Switzerland a few years back, I found it very easy to travel by train from one city to another. We could board any train without a prior reservation. The trains ran at fixed intervals, and had enough seats available at all times. Initially, I did have a feeling that too much infrastructure was provided, and therefore wasted. But as I reflected on this arrangement, I realized the positive side of things. Since there was no shortage, they had completely done away with the booking infrastructure — entire booking office facilities, as well as the need for each passenger to pre-plan their travel and do advance bookings.
Similarly, I was amazed to see the network of roads, flyovers and bypasses in countries like USA, Canada, South Africa and China. The first thought that occurred to me was that such a huge investment was not necessary; it was a simply a hype and luxury. But let us look at the positive side of the story – this facility does away with road crossings, red lights and policemen manning the crossings — not taking into account the time wasted by each vehicle which waits at such signals. Isn’t that a huge cost incurred by us?
Now, we in IT can learn from such an observation. Many a time, we evaluate projects on the basis of costs and then provide for facilities that we think are optimum. We face constraints as soon as usage goes up. For example, in one of the earlier companies that I was with, we often got complaints that the network was slow. So my team started to evaluate packet shapers as well as other network tools to monitor and regulate traffic. However, inspired by a foreign visit, I compared the cost of monitoring versus doubling of bandwidth. I finally decided to overprovision network bandwidth. By doing so, I could avoid network monitoring tool investments as well as my infrastructure team’s time, which would otherwise have been spent on this daily activity.
I then used the same learning for provisioning other resources like servers and storage in our data centers. Despite our best efforts in sizing, I always found worked out configuration to be on the lower side, leading to further additions. Problems with provisioning server resources with increasing usage were common, till we had a solution in the form of server virtualization. Similarly, howsoever smart I tried to be with storage sizing, I always fell short. So I adopted a simple solution – to add sufficient buffer to the calculations.
Contrary to common belief, this practice really doesn’t add to much cost. In fact, it’s an incremental cost which takes away the headache without hindering business. By saying so, I don’t mean that you should dump huge facilities, but add sufficient capacity so that you are not constrained in terms of work. The cost of restraining people or asking them to wait is a huge societal cost, and should be taken cognizance of.