Evolution vs. Intelligent Design

I’m watching a cool talk by Greg Kroah Hartman about the Linux Kernel.  He just said something that I absolutely LOVE and feel great kinship towards.  He said that the joke in the Linux community is that “Linux is not ‘Intelligent Design’, it’s ‘Evolution’.  Which means we react to stimuli that’s happening in the world … we don’t over-plan things”.   I think that is a great mindset. 

This is one of the things we wanted to achieve with PowerShell, to give you the tools that allowed you to respond to the world as it changed instead of us trying to deliver a fixed scenario and then if the world changed, you tell us and hang in their for 3 years until the next version of the software comes out.  In other words, provide you the tools that allow you to evolve your solution as your environment changes.

This approach has always caused quite a bit of heartburn with a number of people at Microsoft – the “Intelligent Designer” if you will.  Their heads and hearts are in the right place and they feel like we should spend enough time with customer’s to really nail the scenario and then ship that.  What they don’t realize is that 30 minutes after you leave a customer’s building, their scenario changed.  The boss changed his mind, there are new things (HW, SW, networking, apps, etc) that you need to work with,  there are new regulation you need to comply with, etc etc etc.

I like to tease people with the Intelligent Designer mindset, saying that we are going to fix that in the next version of PowerShell when we ship the cmdlet:

> Do-MyJob  -OrderPizza Pepperoni,Onions  -MailCheckTo  $HomeAddress  -WakeMeUp  5:00pm


After all, anything other than that isn’t really meeting my true scenario.  :-)


Jeffrey Snover [MSFT]
Distinguished Engineer
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