AMA: Why Ditch the GUI?

JC writes:

One item that hasn’t been quite clear to me: Why after all of the time spent focusing on mouse-based navigation and visual controls did Microsoft choose to go back to a text-based interface?

Don’t get me wrong, I love PowerShell but I already loved scripting so for me it was just the new language. However, I recall several horror stories where some poor tech typed in the wrong switch, chose the wrong name or did something in the wrong order and ended up in the middle of a J.E.E. or C.E.E. as a result. In fact, I just finished walking someone through importing a new module who couldn’t get it loaded (spending 10 minutes before coming to me) because of a typo.

What’s the real benefit in going back to typing (other than the benefits of scripting in general)?

I hope you’ll submit a question, too!

Well, there’s even more to it than that, right? When Windows NT was taking over as the preferred departmental file and print server, and slowly worming its way into data centers, it was because of the GUI. NT made server management “as easy as using your desktop,” and it put Microsoft where they are today.

But the problem is scale. When you had one departmental file and print server, sure, the GUI was wonderful. But when you’re managing 10,000 virtual machines that run in data centers spread across three continents, the GUI is utterly unsupportable.

So, “going back to typing” basically implies “scripting,” and let’s talk about what that is. The term script, as it applies to computers, was literally taken from the Hollywood definition of script. Here is a list of words and stage directions, and I need you to do them in this order, exactly this way, every single time. It’s the computer as an “actor,” following instructions and reading its lines.

Now imagine a Hollywood actor being given their lines and stage directions in pictures and gestures. When the director wants them over there on the set, he or she has to run over and point to the spot. The actor then moves over there. It’s inefficient; if you had the cast of Ben-Hur to move around, you’d never get it done. Writing everything down and distributing copies is the only way to get all those people moving in the same direction at the same time while saying the right words.

Same with computers. When you’ve got one, clicking your way through a GUI is fine. When you need to coordinate thousands, the GUI just doesn’t get it done.

Well, when Microsoft started in server computing, the GUI made sense because nobody had more than a few Windows servers. Now, Microsoft’s grown a little, and people have dozens, hundreds, and thousands of servers. The management techniques that worked in 1997 just don’t scale to 2017. And so Microsoft had to go with a management technique that does scale, and that happens to be the same one everyone used back in 1977: text.

Does text offer more room for failure? Yup. Does PowerShell make it harder for someone to get into IT, with the higher learning curve command-line administration carries with it? Yup.

But here’s the thing: we don’t need as many IT people if we’re doing stuff from the command line. So the mistake-prone ones? We can let them go. The ones who can’t “get it?” We can afford to lose them. Automation reduces human labor from a quantitative perspective, but demands more human labor from a qualitative perspective. In other words, we need fewer, smarter people to run the modern IT estate, provided they’re doing it right. Not every business has twigged to this, in no small part due to a general superstitious distrust of computers (“how do I know this will work?”), and because, in the Microsoft space at least, it’s such a huge leap for many admins.

Microsoft’s making the switch because it has no choice; we’ve too many assets to keep doing things the old way. It’s not that scripting has benefits; it’s just that it’s literally the only practical solution. And it’s not that it doesn’t have people-related downsides, it’s just that we can no longer afford to keep the people around who incur those downsides.

More than one-third of the people who attended PowerShell + DevOps Global Summit 2018 has “Automation Engineer” or “DevOps Engineer” as a normalized job title, a percentage that’s up more than triple since just 2016. So businesses do get it, and they’re marching this way not because Microsoft is pressing the issue. It’s these businesses pressing the issue; Microsoft is just trying to keep up.