For all intents and purposes, Microsoft has infinite financial resources. But they create almost no new applications, and they had to seriously cut back on the features of Vista to get it out.
I'm not interested in Microsoft-bashing here. Instead, let's look at it scientifically. Here's an experiment where financial limitations are not (or at least, should not be) a limitation. If all it took was money, then Microsoft should have been pumping applications and OS improvements into the marketplace for years now.
Instead, the flow seems to be significantly reducing over time.
This means that money isn't the limiting factor to software development. Even if you can hire scads of the best programmers around, it doesn't seem to help. I would argue that this is a conclusive experiment, because it's hard to imagine having more financial resources than Microsoft has.
And they have undoubtedly used those resources to try to figure out how to be more productive, to no avail.
There are clearly many factors influencing productivity. One possible influence that I have seen in numerous organizations is the effect of the charismatic leader. In the early days of the company, the charismatic leader establishes the style and culture of the company, and no matter how the company tries to change later, it can never shake off that early learning.
Microsoft's early days involved "sleeping under the desks." To solve a problem, you throw yourself against it incessantly, working longer and harder hours, until you solve it.
Studies show again and again that working harder doesn't lead to smarter results. But in most companies, "working harder" is all we know how to do in response to greater challenges. If there exists a field where "working smarter" is what it's all about, it's software. But "harder" is our knee-jerk response to pressure, and it's really difficult to overcome your limbic system.
But that's just one possible explanation. In the end, it could have an influence but not be the dominant factor. The true bottleneck could turn out to be the communication problem as the company gets larger. Or the loss of control that the individual feels as the company assumes more control. Or the fact that as a company becomes "big" (and I think "big" means something different -- and smaller -- in software than it has traditionally meant in other industries), the people it can hire are probably not the movers and shakers, who don't want to waste their energies fighting corporate infrastructure to get something done.
Maybe it's about experimentation. Individuals and small groups feel safe, and may even be compelled to experiment. A larger company tends to be more risk-averse and puts dampers on experimentation.
I'm just brainstorming here and probably none of my guesses are where the true bottleneck is. What do you think?
I've been involved with FoxPro since December, 1990, before they were bought by Microsoft. I've been on betas, before and after the acquisition, in 1993. I've seen incredible creativity at work (VFP had full object capabilities in 1994), and I've seen a capable product pushed into obscurity by suck-up managers with little knowledge of products, with their eyes on promotions and power.
When Dr. Dave was involved while at Fox, there was at most one layer between developers and the person (Dr. Dave) who had the authority to make all the decisions (and sometimes no layers: he would come onto the forum when sticky issues could not be worked out through Janet Walker or the other fox folks). During one beta, we had a crisis over how events were to work within FoxPro. The developer with the most experience (Tommy Rettig) made his case. That afternoon, Janet Walker and Dr. Dave sat down in his office, and READ EVENTS (The Mother of All Reads: this was right after the first Iraq war) was created. The next morning it was in our Beta drop. It was and is an elegant concept, still in use in every VFP application.
Large organizations can't have many "chiefs" (read "Management and Machiavelli" by Antony Jay on why) and so decisions get made through political struggle. Terrible failures are most always avoided; and brilliant successes rarely withstand the onslaught of political considerations. What is new presents risk; and risk is rarely chosen by committee.
What Microsoft just announced with Bungie -- letting them become independent -- is what should be done for every product in the Microsoft stable. Otherwise "politics as usual" will continue to determine the quality of Microsoft products. That said, there are few organizations that operate any differently, including open source organizations.
I'm not clear on what you mean by "new applications". Do you mean radically new, category defining applications like the first word processor, spreadsheet, database, and so on, applications that are new to Microsoft, new versions of existing applications, or something else?
Hmmm... The more software Microsoft ships the more successful it is? That notion makes the "bottleneck" analogy fit. But is delivering more software success? I doubt it.
Microsoft finds itself surrounded by world class problems. Lawsuits brought not just by a single nation but a consortium of nations; a shift of the primary revenue stream from private citizens to big companies and governments; ever increasing demands from big companies and government for functionality, such as security, that the old customers don't value as much; and the requirement to remain compatible with the past (old code base), which exacerbates their problems.
I think the measure of success for Microsoft is whether they ship software that their customers care about.
Microsoft will never satisfy all their customers. If the original Microsoft team was reconstituted, they would be drowning in the same sea of problems.
If you buy my belief that Microsoft's most important customer is big companies and governments, then perhaps the measure of its success is how pleased the most influential people in those organization are with its products.
Bruce, I'd need to see more evidence to really believe that programmer productivity has gone down over time at Microsoft. They ship a lot of products and technologies in the course of a year. Enough that it's hard for anyone outside the company to keep track of it all. Heck, it's hard for people inside the company to keep track of it all.
I'm no business guru, but I suspect things like market saturation, PR hang-overs from past misbehaviors, a long tail of compatibility with previous products, and on-going litigation from governments and competitors are bigger limiting factors on Microsoft than programmer productivity.
I may be misinterpreting what you're saying, but wouldn't you expect to see multiple factors that limit productivity in any given organization rather than just one? While the list of potential limiting factors for any organization is probably finite, I don't think it's short. I would think the mix of factors that have the most impact will vary alot from one organization to the next. I would also expect it to change over time within each organization.
I think this has been studied at great length by sociologists and historians with respect to the decline of empires, most commonly and popularly that of Rome.
The same kind of story seems to pop-up. The bureaucracy takes hold and slowly strangles the the kinds of people that made the organization great like kudzu choking out mighty trees. A powerful and charismatic leader might appear and prop it up for a while, knocking the bureaucrats back for a while but eventually, it will succumb.
More concretely, what I see is that as technical organizations grow larger, those that sound good and are know the latest buzzwords and Gartner recommendations are promoted ahead of the people that actually know how to get stuff done. Process and theory trump results and eventually any actual innovators that are left in the organization are demoralized and isolated.
It seems to me that Microsoft has focused lately on getting a lot of people with advanced degrees from the 'best' schools but that was never really the key to their success. Bill Gates is a college drop-out. I'm not saying that this can't be the key to a great company, it's just a different organization than the one that basically won all the marbles.
I don't think there's any doubt that Microsoft is large enough to suffer from this sort of thing. I certainly experienced some of that during my 10 years there. On the other hand, to their credit, I saw this kind of behavior less often than I had at many other, much smaller companies.
I also think this is a more general issue than the one that Bruce raised about programmer productivity. Pournelle's "Iron Law of Bureaucracy" affects all kinds of companies, organizations, and governments as they grow larger and older.
To its credit, Microsoft does produces operating systems these days that don't blue screen anymore. Having been through MS-DOS and various versions of Windows, I now have a laptop with XP that's actually quite stable and usable. I'd prefer that kind of progress any day. So I don't see lack of innovation as a bad thing.
I'd go with James's empire theory. I think it's natural for any organization to prefer to consolodate its past successes. And I can't for one moment imagine that sitting in a Microsoft office somewhere is anywhere near as inspiring or fun as working in a garage with a few friends on a project that you're convinced will change the future. Money can't buy spirit or tap you into the zeitgeist.
I think Vista isn't a very fair example. One could argue that creating a new version of Windows that attempts to remain compatible with over 20 years of legacy applications including those first written for the 8088 is a bad idea, but there really isn't any other OS that has had to face that kind of challenge.
While it's true that UNIX and its derivatives can still run old applications, it was created in a more genteel environment than the "wild west" of early personal computing. Even Linux could never run in that wilderness because the 8088 doesn't support privilege levels.
Look at Google. T he various Google APIs support multiple technologies (Java, LAMP an .NET). It appears as though Google has a lot of the secret sauce for innovation such as diversity of thought. Google may focus on innovation instead of domination. Every decision doesn't have to support a marketing scheme and continuously push one vision forward. If we think about it, a lot of original ideas have come from people's garages and very small groups. The ability to operate independently and freely must have something to do with it. Microsoft typically does not innovate but embraces and extends innovation. I hate to Microsoft bash too much. They have done wonderful things for our industry. But they never have been the creators of the future. They have been the polishers and maybe the ones who could bring capabilities to the masses.
Innovations thrives under freedom. Freedom is not easy. It will be interesting to see where Google ends up.
I have no objection to the empire theory. I think it applies to any large, successful business.
I also agree that money can't buy spirit but I don't think that's a problem at Microsoft. My experience sitting in a Microsoft office working with a small team on a project that I was convinced would change the future was every bit as inspiring as my many experiences with the same scenario in small start-ups. Most people I know who work or worked in product development at Microsoft didn't go there for the money. A large percentage of the people I worked with who weren't hired out of college took a significant pay cut to work there.
Making a decent living is a great thing, but I'd be surprised if a significant percentage of really good developers would work anywhere just for the money. I've never seen any amount of money make up for a lack of interesting things to work on for very long.
Finding interesting things to work on at Microsoft only becomes difficult if you've worked there for at least five years at a senior level and either aren't good at or don't care about developing the network of relationships you need to compete for the relatively few senior level technical positions that are open on interesting projects.
Flat View: This topic has 33 replies
on 3 pages