Foreword
After the success of Learn PowerShell in a Month of Lunches, Jeff and I wanted to write a book that took people down the next step, into actual scripting. The result, of course, was Learn PowerShell Toolmaking in a Month of Lunches. In the intervening years, as PowerShell gained more traction and greater adoption, we realized that there was a lot more of the story that we wanted to tell. We wanted to get into help authoring, unit testing, and more. We wanted to cover working with different data sources, coding in Visual Studio, and so on. These were really out of scope for the Month of Lunches series’ format. And even in the “main” narrative of building a proper tool, we wanted to go into more depth. So while the Month of Lunches book was still a valuable tutorial in our minds, we wanted something with more teeth.
At the same time, this stuff is changing very fast these days. Fast enough that a traditional publishing process - which can add as much as four months to a book’s publication - just can’t keep up. Not only are we kind of constantly tweaking our narrative approach to explaining these topics, but the topics themselves are constantly evolving, thanks in part to many incredibly robust community-building add-ons like Pester, Platyps, and more.
So after some long, hard thinking, we decided to launch this effort. As an Agile-published book on Leanpub, we can continuously add new content, update old content, fix the mistakes you point out to us, and so on. We can then take major milestones and publish them as “snapshots” on places like Amazon, increasing the availability of this material. We hope you find the project as exciting and dynamic as we do, and we hope you’re generous with your suggestions - which may be sent to us via the author contact form from this book’s page on Leanpub.com. We’ll continue to use traditional paper publishing, but through a self-publishing outlet that doesn’t impose as much process overhead on getting the book in print. These hard copy editions will be a “snapshot” or “milestone edition” of the electronic version.
It’s important to know that we still think traditional books have their place. PowerShell Scripting in a Month of Lunches, the successor to Learn PowerShell Toolmaking in a Month of Lunches, covers the kind of long-shelf-life narrative that is great for traditionally published books. It’s an entry-level story about the right way to create PowerShell tools, and it’s very much the predecessor to this book. If Month of Lunches is about getting your feet under you and putting them on the right path, this book is about refining your approach and going a good bit further on your journey.
Toolmaking, for us, is where PowerShell has always been headed. It’s the foundation of a well-designed automation infrastructure, of a properly built DSC model, and of pretty much everything else you might do with PowerShell. Toolmaking is understanding what PowerShell is, how PowerShell wants to work, and how the world engages with PowerShell. Toolmaking is a big responsibility.
My first job out of high school was as an apprentice for the US Navy. In our first six weeks, we rotated through various shops - electronics, mechanical, and so on - to find a trade that we thought we’d want to apprentice for. For a couple of weeks, I was in a machine shop. Imagine a big, not-climate-controlled warehouse full of giant machines, each carving away at a piece of metal. Lubrication and metal chips are flying everywhere, and you wash shavings out of yourself every evening when you go home. It was disgusting, and I hated it. It was also boring - you set a block of metal into the machine, which might take hours to get precisely set up, and then you just sat back and kind of watched it happen. Ugh. Needless to say, I went into the aircraft mechanic trade instead. Anyway, in the machine shop, all the drill bits and stuff in the machine were called tools and dies. Back in the corner of the shop, in an enclosed, climate-controlled room sat a small number of nicely-dressed guys in front of computers. They were using CAD software to design new tools and dies for specific machining purposes. These were the tool makers, and I vowed that if I was ever going to be in this hell of a workplace, I wanted to be a toolmaker and not a tool user. And that’s the genesis of this book’s title. All of us - including the organizations we work for - will have happier, healthier, more comfortable lives as high-end, air-conditioned toolmakers rather than the sweaty, soaked, shavings-filled tool users out on the shop floor.
Enjoy!
Don Jones