I figure I've been writing code and messing about with computers since some time in 1980 -- a little over 35 years at the time I write this. One thing I've learned is that if you make things complicated, you (or your employer, or your successor) will sooner or later pay a price for ignoring a mandate of simplicity. I suppose that's one aspect of the Unix philosophy that appeals to me and has guided me over the years: "Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new 'features'." That's from Doug McIlroy, in the Bell System Technical Journal, 1978.

And yet, with guys like McIlroy, and great ideas that can be found by searching Google for "Unix philosophy," the industry still manages to build monstrously complex software. For the most part, I posit that this is done in the name of "increasing the wealth of shareholders." Someone has a good technical idea that begins making money. As the business grows, the business side of the house loses sight of the original purpose for this product and attempts to squeeze the lemon for all the juice they can. New features, flavors, and options proliferate until the product is a grotesque parody of the original, elegant version.

And worse: It is now so complex that a single reasonably smart person cannot deploy, configure, or use the product without becoming a certified expert. The manufacturer creates a new revenue stream by developing a certification process, and IT professionals are pigeon-holed as they make a choice to develop expertise at great cost, that may well be worthless five or ten years down the road.

And so here is a maxim of my own: IT executives should be wary of any software for which there exists a certification program.

That doesn't mean we should shun them absolutely, but a healthy dose of suspicion can't hurt!

VMware is a good example. I first played with VMware in 1999 or 2000. It looked fun, a great idea, but I didn't have a good machine to play on. I encountered it again in 2003 in a data center I was managing (v2.5.3, if my notes are accurate). We had big iron and I loved it. I bought a monster server for my basement and installed it at home. I never took a class or read the documentation. I found some relevant blog posts when I had issues. I have since managed VMware professionally and recreationally. As the product added features, it became more complex. Upgrading to version 4, I hired a consultant as I was afraid of breaking something. The upgrade to version 5 was handled by the specialists at our parent company. We don't use most of the 'fancy' features that VMware offers. At home, I'll probably start over and use Proxmox the next time I have a big problem with VMware. At work, we're probably stuck with it because of the FUD surrounding open source infrastructure.

What else falls into this category? Checkpoint firewalls, Cisco routers, and various Oracle products. I'm sure there's a long list.

These giants of the industry have created an economy based on complexity, features, and ongoing training, there's no doubt. I wonder to what extent that economy is self-serving and artificial; I suppose that's part of what makes the wheels of capitalism turn. And some of these are by their nature complex, but for so many use cases a simple, open source alternative is sufficient. Firewall/router? Why not have a look at pfSense, Sophos, or even DD-WRT? Database? MariaDB (née MySQL) solves most of your problems; SQLite probably solves a good number of them.

None of the behemoth, enterprise tools can be eliminated; there's a time and place for everything. However, I think technology executives would be remiss to avoid consideration of alternatives that provide the required functionality without complexity.

PS - I recently upgraded my home ESXi server from v6.0 to v6.5 and it was as easy as it should be. Kudos to VMware for getting that right!