When To Reinvent the Scripting Wheel
While grabbing premade scripts to solve your current problem is a huge time saver for IT, you're missing out on quite a few things by not doing it yourself.
- By Adam Bertram
Do you love PowerShell scripts as much as I do? Scripts are awesome! Being able to automate just about anything in the life of a system administrator is truly a wonderful thing. Even better, there's thousands of people just like me out there that truly love PowerShell scripts too. We're lucky enough that some of them have decided to contribute their time to take the effort to share them with the world. Just head to the Technet Script Repository and you'll find well over 10,000 scripts to automate or manage just about anything you can think of. If you have a task you need scripted, chances are there's a script that will either completely do what you need done or will at least help you. This is great news but when do you get to the point where these community scripts aren't enough?
As an IT professional you come across various problems every day that could benefit from being scripted. With the proliferation of scripts out in the community you might be tempted to just download a script when you need it like ordering from a menu. Need a script to read users from Excel and create in Active Directory? I'll take that ,please. How about a script to get product keys of Windows computers? Oh, waiter, please deliver me one of these. It can be tempting to simply order a script (free of charge) off of the Internet menu and be productive. But at what cost?
IT administrators are busy people. I understand the temptation to get your scripts to go but have you ever thought about what that's costing you? It's obviously not money because scripts are freely available. It's a skillset and an important one at that. If you're downloading scripts all the time and solving your organization's problems how many other IT guys are doing the same? Where there's demand for a product, that product typically increases in value. Since the scripts are free then where's the value? It's in the scripter. People that can write good PowerShell code are in demand. As the consumer of the scripts, you're the one making these guys more valuable. Wouldn't you like a piece of that?
If PowerShell skills are so valuable then why are you still ordering from the menu rather than cooking up the scripts? Maybe it's because you don't have time. Perhaps your organization doesn't have a training budget and won't let you go to training. Whatever excuse you have there's no reason why you can't advance your career on your own terms. How do you do that? You reinvent the wheel over and over and over again until you've designed and built so many wheels and have gotten so good at it that people are choosing your wheels over all the others.
When faced with a basic problem that requires a script you'll probably find a script to download that will solve it. It's tempting to just download, use it and get on with life. But I implore you to resist. Your efficient engineer-like mindset may think, "Why reinvent the wheel if there's something already out there?" I admire your mindset even though it's a little short-sighted. Think to yourself, what are you gaining by reinventing the wheel? Writing a script that solves a specific technical problem you're having does two things; helps you understand the problem (and the system) and gives you experience in writing scripts.
Writing a script that's been done hundreds of times before is not an inefficient use of your time. It's free on-the-job training. It's getting around your company's non-existent "training" budget. It's about getting training on the fly as you work. It's about adding another skill to your growing skill set to make you more valuable in the career marketplace. The next time you see a need for a script, I challenge you to resist the quick fix and instead open up your PowerShell console and type Get-Help. It may not be the quickest route to the solution but it will be the most valuable.
Adam Bertram is an independent consultant, technical writer, trainer and presenter. Adam specializes in consulting and evangelizing all things IT automation mainly focused around Windows PowerShell. Adam is a Microsoft Windows PowerShell MVP, 2015 powershell.org PowerShell hero and has numerous Microsoft IT pro certifications. He is a writer, trainer and presenter and authors IT pro course content for Pluralsight. He is also a regular contributor to numerous print and online publications and presents at various user groups and conferences. You can find Adam at adamtheautomator.com or on Twitter at @adbertram.