I’ve been thinking a lot about two areas of IT: complexity and convergence, which have a lot to do with each other.
Collectively, we operate some very complicated infrastructures, which make many aspects of IT difficult. With a massive funding round for Nutanix, the integration of Whiptail into Cisco as UCS Invicta, and VMware’s release of VSAN, we are seeing a lot of convergence happening. Normally siloed areas of IT are being forcibly integrated.
Our data centers are piles of kludges
We don’t start out with complicated systems. The first system designs we do to solve a problem are concise, simple and easy to implement.
Problems tend to arise during the implementation process. Sometimes it’s a missed requirement–somebody didn’t talk to everyone or the right people. Sometimes it’s an assumption, perhaps that the management interface on your Fibre Channel switch could do gigabit speeds, but it’s actually only 10/100. At any rate, you need a fix, and that fix makes a mess of your clean design.
Gradually we add things to a nice design to handle new business requirements. We replace aging or failed components with new parts, but those new parts are never the same as the old ones. We come up with numerous “easy fixes” for problems and they stack up, kludge upon kludge upon kludge, until all that’s left of the original, simple system design is the Visio diagram from years before.