How Microsoft Works

People often look at Microsoft and scratch their heads. One of the things I want do with this blog is to give people a peek behind the curtains so you understand how things really work. My hope is that once you understand some of this, our actions and attitudes will be a little less befuddling.

One of the things you need to understand about Microsoft is that we spend > $7 Billion a year in R&D. Now couple that with the fact that everyone here works super hard on their stuff and you see why teams find it virtually impossible to keep up with with what is going on with various technologies.

Many of those investments are platform investments which means that teams have a steady stream of people knocking on their doors telling them that they should/must support this or that technology. What is a team to do? There are too many people knocking on their doors and people got hurt when some of those big bets didn’t pan out (think Hailstorm and WinFS). It is natural and healthy for teams to take a "wait and see" approach to supporting new technology. This is one of the reasons why you didn’t get universal command line coverage simultaneous with the release of PowerShell V1.0. Sure PowerShell SOUNDS good but so did WinFS!

So now when I knock on people’s doors to talk to them about supporting PowerShell, I’ll often try to hold the meeting in my office. At some point in the conversation, they notice the Tower of Power and the conversation usually goes pretty well after that. People still have schedules and timing issues but they are all interested.

Now that said, there is hype and there is value. You could have a mountain of books but if the technology doesn’t deliver the goods – it isn’t going to get off the ground. (I like to tell the team, "Focus on delivering the right value because if you get that right, even your worst enemy will use your technology. Get that wrong and even your best friend will abandon you.")

I was super pleased a while back when a team whose door I had been knocking on for a couple of years finally put a dev on the task of prototyping some cmdlets. It was a short while afterwards that I was forwarded an excited email articulating all the things that customers could do with their technology using PowerShell. There were examples after examples and the note ended with the key point: Here is how much code I had to write to get this (and there was a small section of code).

It was at that point that they were able to see the "real deal" of the PowerShell value proposition: small amount of code yields huge customer advantage. I had been telling them that for years but the reality is that everyone that knocks on their door tells a variation of that story. When they understood it for themselves they were hooked.

As a side note, that team then went on to do one of the best jobs I’ve seen a team do in terms of understanding how customers use their technology and how to model it in PowerShell. I can’t give you the details because it is their news to tell but it’s awesome.

I think you’ll like the V2 ISE (you should get it soon). That said, I think that 3rd parties are going to be the best providers of hosts for the forseeable future. If you haven’t checked them out you should – they are wonderful!

I will have to say, it was disappointing that you released such a great v1 with a host window that is no better than cmd.exe:

– width is not resizable except via annoying dialog

– copying an invocation that goes onto multiple lines is tedious, because you can only block-copy

– no clipboard cmdlets (the PS community extensions have them, but this is kind of core functionality, I would think)

– no Unicode support in the shell window

I get that PS can be hosted in different places, but I still think it would have behooved you to include a host at least slightly better than the cmd.exe shell. Could you provide some enlightenment here? Would it really have required that much developer time to do this? (Compared to the impact upon the community.)

I know you have the ISE for v2 and I hope it kicks ass so that I and others can forget the host for v1.

10 years ago

Stephen

Maybe everyone at Microsoft should work slightly less hard and think more. Or maybe Microsoft should spend a lot less on R&D – Apple’s doing fine on a lot less.

While I truly like the tight integration with the CLR, I still feel this is more like a programmer’s shell (i.e.: python’s shell, ipython, boo, or irb). For me, it’s just not suitable for day-to-day use.

If that’s intentional, OK, but when can I have a usable (vis-a-vis UNIX/Linux’s zsh) day-to-day shell in Windows? Will Powershell move in this direction or will cmd be enhanced? Or nothing?

Don’t get me wrong, I like Powershell, I just can’t be as efficient without a shell that feels more like zsh, bash, fish, or any of the other excellent UNIX shells, with full job control, etc.

10 years ago

Greg

Having formerly been into heavy command interpreter scripting on Unix and DEC VAX, can we get a decent bare bones IDE for PowerShell in Visual Studio? Visual Studio is preferred over a third party tool because Microsoft’s support is much better.