Back in the days when our hair was on fire with security issues, we brought in a number of industry experts to educate us on developing secure software. This resulted in the Security Development Lifecycle which all our products now use. One of the best talks was a from a guy from the NSA who had a talk that was something along the lines of, “The zen of secure software”. In this talk he argued against the all-or-nothing mindset in favor of a model of constantly expanding the envelope. Any given moment, you evaluate what you need to do (in this case – to address security issues), you do it and then … you do a bit more. Then do it again. And again. And again. And with constant vigilance and time, you would achieve excellence.
And so it is with using PowerShell. I’ve recently had a number of engagements with people just getting started with PowerShell and getting frustrated with the syntax or some of the semantics and then they look at these thick PowerShell books and feel a bit overwhelmed.
Don’t be overwhelmed.
PowerShell is meant to be an fun environment to experiment with what is possible. That means you’ll try some things and they’ll fail – don’t let that freak you out (it is one of the reasons we added –WHATIF to everything!). I’ve been trying to learn to do yoga for a while now. In yoga there are lots of positions that require balance and I’m not particularly good at that. I used to get super frustrated with these poses until one day my teacher quoted someone saying, “falling is learning – just focus on having fun”. That phrase transformed my experience and while I wish I didn’t fall, now when I do, I smile, laugh and get up and try it again.
All you need to do is to learn what you need to do to accomplish the task at hand … and a bit more. Then do it again. And again. And again. Have fun with it and push the envelope.
Now I’m late for yoga – gotta run. Experiment! Enjoy! Engage!
Jeffrey Snover [MSFT]
Visit the Windows PowerShell Team blog at: http://blogs.msdn.com/PowerShell
Visit the Windows PowerShell ScriptCenter at: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx