I've just read the new post by Mark Jen about his migration from Microsoft to Google and how, accordingly to his ideas, are the differences from Microsoft to Google from an inside perspective. In summary...
- ability to get features out the door extremely quickly
- knows how to turn the crank
- innovative and ready to change
- knows how to ship software
- is stubborn in its ways. They know one way to ship software and it doesn't work as well as it used to
- Not able to change its way of work
In particular, I want to put in evidence a piece of post that has attracted my attention:
Mark wrotes: "I remember when I was at Microsoft, I'd propose trying new engineering practices: pair programming, unit-test driven development, iterative development. these ideas were shot down quickly and the response was always, "we've been developing software like this for 20 years and look at where we are. $50 billion in the bank, dominance in multiple markets... we're one of the most successful businesses in all of history. why would we change the way we make our bread and butter?"
contrast that to Google, where reinvention is almost in its blood. There's no remorse about throwing away dead code; people work however they feel makes them most productive..."
Is it really so? The Microsoft way of work is really something like that?
I'm not so sure... if Microsoft now will produce software exactly like 20 years ago, with the same tecniques and methods of work, do you think that its success will continue to increase? Do you think that Microsoft's software quality will be at these levels with oldest software methodologies?
Ok, someone could laugh after these sentences, but it's always the same story (a flaw on a Microsoft product is a scandal, a flaw on another platform no). I'm not on Microsoft defence, but Mark's ideas seems a little bit critical (oh yes, now he's on the other side)!