This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do.
To the PowerShell team, past and present. For all youve done, and for all youll do, thank you.
Foreword
Nietzsche once said, What we do is never understood, but only praised or blamed. There are people that praise PowerShell and there are people that blame PowerShell, but few people understand PowerShell. One of those few is Don Jones. It is hard to overstate Dons importance in the PowerShell story; he is the proverbial First Follower. (Do yourself a favor and spend three minutes searching for a video called First Follower: Leadership Lessons from Dancing Guy and watch it now. NoI mean now. Ill wait.)
I met Don in a bar in Las Vegas. He told me he wrote booksreally fast and really good. He said he understood IT pros, that they were going to love Monad, but that it would take 10 years before it became mainstream. I told him he was wrong and explained all the things we were doing to avoid the crossing the chasm problem. As I recall, his response was Ok. Sure. If youve never talked with Don, it is hard to convey his ability to politely tell you that you are full of it, but it isnt worth his time or effort to explain it to you. If you hear OK or Sure you are really in the weeds, but Ok. Sure. is a clue. You can guess where this story is going. In the end, Don was rightabout that and so many other things along the way. It is a good thing I ignored him because if I had a clue about the difficulty that was in store for us on the path to take the great ideas in Monad and ship it as PowerShell, I would have ordered us another round and moved on to something else.
In Shell of an Idea, Don tells some of the many stories behind the creation of PowerShell and its design. It is a story of a group of amazing engineers struggling to forge a whole suite of new technologies into a coherent experienceall the while fighting a multi-year game of internal politics whack-a-mole. In case it is not clearwe were the moles. Microsofts embrace and mastery of GUIs brought it such overwhelming success that it was found to be a monopoly. So when I came to the company talking about the importance of command line interfaces and programmatic shells well you can imagine how well that went over. The only reason we were funded to do a shell was to compete with Linux and even then, it was deemed so unimportant that I had to take a demotion to work on it full time.
The world has an unfortunate habit of giving all the credit to a single hero. The reality is that big things happen because of teams. So it is with PowerShell. I came up with several of the core foundational concepts and architectural principles, but PowerShell is unequivocally the product of a team of awesome engineers. Bill Gates used to say that Microsoft was great at finding and hiring the worlds best software talent but failed at getting their IQs to add up. I am most proud I was able to create an environment that allowed a group of some of the worlds best engineers to ship their ideas in a way that their IQs added up. This book is the story of those engineers, their ideas, and the messy path to adding it all up and shipping in an environment actively trying to kill the project at every step along the way.
Jeffrey Snover
May 2020
Introduction
My history with Windows administrative automation goes back a long way, at least to my 2003 book, Managing Windows with VBScript and WMI (Addison-Wesley). A bestseller of the time, it put me on the map as someone who spoke about, taught, and wrote about Windows automation. It helped drive my first Microsoft MVP Award recognition in 2004 and made it natural for me to jump into Windows PowerShellthen called Monadwhen it hit the scene in 2005.
I was honored to co-present with Jeffrey Snover at TechEd Europe 2006 in Barcelona, where Microsoft formally launched PowerShell and introduced it to the world. I wrote the first published book on PowerShell, Windows PowerShell: TFM (SAPIEN Press) and have in total written or co-authored close to a dozen books on PowerShell. Learn Windows PowerShell in a Month of Lunches (Manning Books) remains a go-to bestseller for newcomers, and PowerShell In Depth (Manning) is still a top reference for PowerShell admins. I co-founded PowerShell.org, launched the PowerShell + DevOps Global Summit with my partner, and was named PowerShells First Follower by Jeffrey Snover at the first Microsoft Ignite events in Chicago. I coined the terms Toolmaker and Toolmaking within the PowerShell world, and have been an advocate for strong practices and patterns. I even substituted for Jeffrey Snover as a speaker at the TechEd North America 2007 conference. Suffice to say that PowerShell has been an enormous part of my life and career.
Over the years, Ive made a ton of good friends in the PowerShell community, which is easily one of the friendliest and most down-to-earth group of technologists Ive ever met. My office has a small collection of the thoughtful, tongue-in-cheek mementos theyve given me: a CIA challenge coin, a Lego minifig of myself, a beer stein with PowerShell and Disneys Figment character etched into it, and more. My career has taken me away from the day-to-day engagements with both the technology and that audience, but theyve both been such a huge part of my life and career that I can never step fully away.
In fact, that was the genesis for this book: I just cant let PowerShell go. Its not only been important to me, but its also been hugely important and impactful to so many people in the industry. And yet PowerShell almost never happened. In fact, it almost never happened more than once. Were it not for a team of passionate visionaries willing to make the occasional possibly-career-limiting moves, PowerShelland all the positive impact its createdwouldnt have existed. PowerShell might have just been a port of Unix KornShell, or it might have just been a WMI querying tool. Or it might not have been a thing at all.
Theres a lot of untold story under the shell, and its a story I wanted to tell. Much of PowerShells core team have moved on to other teams or even to other companies. Nobodys getting any younger. I felt it was time to capture their stories and the shells story while I could still track everyone down. Some bits of the story have been told at conferences or in other venues, but its never been pulled together into one placeand its never been told in its entirety.
If youve worked with PowerShell, then Shell of an Idea should provide some fascinating backstory to it. If you havent worked with PowerShell but youre at least conversant with computers and systems administration, then youre in for a real treat. As much as possible Ive tried to wrap context around the stories so that you can see where they fit into the world, and what PowerShell struggled against and sought to solve.
Ive also included a number of quotes, solicited through my blog at DonJones.com. These may seem out of context as I present them, but theyre intended to provide some background for the people that PowerShell has impacted the most. Ive edited these as lightly as possible for length and clarity because I feel that the effect of the shells story is just as important as the story itself. Heres one example: