Do complex situations always require complex solutions?
I was extremely busy yesterday, so after the day was over I was able to delve into an offline email thread that had burgeoned beyond my scope of idle time. So, I grabbed the best tidbits to consume. But, while reading the tidbits I came to the realization that the thread would be non-existent if technology "just worked."
The premise behind the thread was how complex System Center Configuration Manager (ConfigMgr) has become. Since its early days, ConfigMgr has been a stalwart solution to managing companywide endpoints. I cut my IT teeth on ConfigMgr back in 1994 when the product was still named Systems Management Server (SMS). The product saved my job and my company, so I've always been a fan.
ConfigMgr 2012 released to rave reviews – at least initially. The new product added a whole stack of new features to aid in managing today's on-premise issues. It attempted to improve on the failures of the 2007 version by adding new server and site roles to maximize efficiency and scalability, and improved on the client bits to ensure less unreliable deployments. But, in doing all of this, it seems Microsoft has added more complexity to a product that, by now, should "just work."
At the time, I posted a thought to Twitter. It reads:
Xbox: deliver the new Java update to all HR computers and alert me when it's complete.— Rod Trent (@rodtrent) January 7, 2014
Some thought I was joking. I wasn't. Somehow we have allowed ourselves to be wooed by a wealth of features over the ease of function. When we embark on researching new technologies, vendors drop in to give dog-and-pony show demos. The demos usually show that their product will do exactly what we require and it does it quickly and easily. So, we make an acquisition. Only after the product is purchased do we get to realize just how complicated the solution really is. From installation to implementation to rollout, there are problems at every turn that require support calls, hotfixes, and patches. And, after that has been all sorted, and the product is ready to use, the real mess starts. But, it worked so well for those vendor salespeople. It looked easy. But, in truth, those vendor salespeople are just professional demo monkeys who have performed the same exact show a monotonous number of times. They could do it in their sleep and as long as sales numbers continue to rise, the bananas are plentiful.
In that same email thread, one individual suggested moving back to the 2007 version of ConfigMgr because it did exactly what was required without all the added complexity. The person said, 'Microsoft added all these great features but then requires me to learn and use PowerShell to manage them?'
Complexity at its highest level.
But, this issue is much wider than a single Microsoft product. This issue seeps into just about every Enterprise-class product available. This is one area where I think companies could benefit from consumerization. When a retail consumer wants to share a photo on Facebook, they pull out their mobile device, tap twice, enter some funny or inspiring text, and move on. Managing corporate assets should be just as easy.
As an example, think about the some of the steps required to rollout the latest version of Java:
- Locate the latest version on the web and download it to local server storage.
- Identify those computers that need the latest version.
- Figure out what else runs on those computers that the latest Java version might break.
- Determine which computers need a previous version of Java uninstalled prior to installing the most current one.
- Research old Java .dll files stuck in the system that could conflict with the latest and remove them.
- Create a deployment package for the new version of Java.
- Pick a schedule for deployment that will minimize business disruption.
- If the deployment is selected for overnight, ensure those computers will remain powered on and have the ability to log in (if needed).
- Deploy the latest version of Java to those computers you have identified.
- Review reports of successes and failures.
- Troubleshoot those computers where the installation failed and fix the issue.
- Redeploy to those failed computers.
- Wait for potential support calls from end-users where you may have missed a conflict or because an app now refuses to function.
- Roll back Java on those computers that experience problems.
I'm sure I've missed a couple steps that exist in your own process, but you get the picture. Java is updated pretty frequently. Java 8 is expected in March of 2014, but Java 7 has had over 50 revision updates since 2011. You'd think the process would be much simpler by now, right? But, it's not. And, it only seems to be getting more complex as vendors add additional features to their products. And, as they add new features, it seems, it also alters how the product works, most times requiring retraining or rethinking, and most definitely requiring new hotfixes to fix newly introduced problems.
In a perfect world, I envision the real-life Easy Button that the retail office supplier, Staples, promotes. If I want to deploy the most current version of Java right now, just give me a button to push. After all this time, knowing that the steps rarely change, can't Microsoft just automate the process for me and give me a button to push?
Microsoft spends a lot of time creating documentation. They have entire teams focused just on documenting new features and providing information on how to use their products and how their products actually work. And, this too, speaks to the level of complexity in the machine. In that perfect, Easy Button world, there would be no need for documentation.
Maybe some of it is our fault. Maybe we're forcing vendors, like Microsoft, to add new features to support our wishes and desires. Maybe it’s a human condition. They say that the English language is the most increasingly complex language in the current world, after all. In early civilization pictures sufficed. Now, we spend years in school to learn an ever-changing formal sentence structure and then find out that the words "selfie" and "twerking" have become official nouns and verbs.
But, I still think a lot of the responsibility falls on the vendor to develop ease of function into any new features they add at our request. Features are great. Just give me a single button to use them. That would be true innovation.
So, I'll sit here and wait for my Xbox command to complete and my alert to show up. How long do you think I'll have to wait? 2020?
God forbid we still have to deal with Java in 2020.