The core of Microsoft’s problems
September 20, 2013 § Leave a comment
From The Verge:
“The Nokia deal is a lot of things,” said Ballmer. “One of the things it is, is a way to make sure we can capture the gross margin upside because we’re making most of the investment today, that we need to make even owning Nokia.” It’s clear Microsoft wants to take some of the smartphone profits away from giants like Apple and Samsung, and Nokia is a key part of that plan.
That, right there, is the difference between Microsoft and Apple and, I believe, the core of Microsoft’s problems. I appreciate that this is a conversation with investors, but Balmer is laying out his goal purely in financial terms; a goal that is simply to take profits away from the other players. Even on investment calls Steve Jobs always talked about the passion to create great products that people want to use. He knew that the profits are a side-effect of that goal. It’s not always what the investors wanted to hear, but he didn’t change his message depending on who he was speaking to.
When your goal is simply to make money, to take profits from others in the market, then you can’t focus on making great products. If you always have one eye on the bottom line you can’t keep both eyes on the ball. You are prone to panicking, and doing things like buying Nokia, a company that has already been ruined by pursuing the same strategy.
Balmer also said:
“We know that we’ve gotta do a great job”
There’s no doubt that’s true. The question is, do they know how?
A word about software quality
December 7, 2012 § Leave a comment
This is an extract from a rather long comment I left on this blog post and thought was worth posting separately:
Something that has become apparent to me in the past decade is that software quality is something that can only be measured in hindsight. Most good programmers can write a program that achieves an immediate goal in a reasonable number of lines of code, with a reasonable performance profile. But any significant body of software itself does not exist in a static environment. Really good software is easy to change when the environment it runs in changes. The software might be running inside a company that frequently, or even continually, is evolving its operating practices. Low-quality software impedes that evolution by being rigid and difficult to update. High-quality software can be easily updated to cope with that change. The updates are isolated into well-defined modules with high cohesion and low coupling to other parts of the system. High-quality software is software that the other parts of the business to not end up coming to despise because of its lack of ability to support what they want to do next.
Truly great software goes one step further: it sparks the imagination of its users to think of doing things that they would not have though of otherwise, and is easily changed to support those new ideas. This creates a feedback loop that results in both better software and better use of that software than anyone ever anticipated.