Peter Wilson spoke at Ignite Seattle last night (How do I keep missing these?!?). Having been a senior dude at both Microsoft and Google, he has some true insider perspective on each. It is through the lens of what he cares about (cloud computing), it does have some good perspective. What is interesting to me as a former softie myself is that while he doesn’t say anything horrible about either place he definitely seems to still be a lot more supportive of his more recent employer than his previous one. While I love the concept of the Ignite talk being limited to 5 minutes, I would have really liked to hear more on this topic. Maybe he’ll do a longer version at some other local tech meet-up that I’ll completely miss as well 🙂
Joel Spolsky wrote a love letter to program management on his blog. For the most part, it is a pretty reasoned and reasonable description of what a “good” program manager at Microsoft (and Fog Creek) is like. In my career at Microsoft, about 25% of the program managers fit that bill. The problem was that they had too many conflicting roles and required skillsets to be effective. At Microsoft, Program Managers are not only responsible to be user advocates, they are also responsible for functional specifications, user interfaces and schedules. A single person can’t be a user representative, a UI designer/interaction specialist, and a project manager. Combining them into a single role worked for Microsoft initially, but in the modern world each of these roles are full disciplines of their own.
Joel claims that PMs are partners with development and that developers have the upper hand over PMs because they write the code. This might have been true of Microsoft in Joel’s (and my) time, but as MS switched from being an engineering-driven company since Ballmer took over to a program management-driven one, it isn’t true any more. PMs took the upper hand because they had far too much control over the final look and feel of the product and could essentially name themselves the final arbiters. Development and QE were isolated from the customers. PMs dictated the features; meaningless meetings and committees abounded and the products suffered (every MS product in the last 8 years for example).
Writing a functional specification is at the very heart of agile development, because it lets you iterate rapidly over many possible designs before you write code. Compared to code, a written spec is trivial to change. The very act of writing a specification forces you to think through the design you thought you had in your head, and helps you see the flaws in it quickly so that you can iterate and try more designs. Teams that use functional specifications have better designed products, because they had the opportunity to explore more possible solutions quickly. They also write code faster, because they have a clearer picture when they start of what’s going to be needed.
This claim is just wrong, or rather, doing this in the large scale is just wrong. I’ve worked under that system at Microsoft for years and I never saw it be very successful in practice. Maybe for a small part of a product, or a small iteration in a larger cycle it might work; but at the product level it is nearly always a bust. Why? Because you will not anticipate everything in your functional specs. Ever. A competing product will be released with better features. Flange A will not fit Bracket B. User testing will hand you your hat. Beta testers will tell you that it wasn’t really what they needed. And then you are back to the drawing board. Except you are two-thirds of the way through the cycle because you spent a huge amount of time iterating over the spec and then building to that spec. Now everything is screwed up, but QE needs to start testing to the spec RIGHT NOW. So what do you do? You hack. The spec goes out the window and development codes for dear life while program management throws out ideas and changes like pieces of spaghetti against the wall. At the end of the cycle you have a tarball mess of code with incongrous, hacked, features that came crashing onto the deck of the carrier and just caught the last wire. Watefall development is resistant to change, agile development embraces it. Change happens faster in our industry every year, why lock your developers into software methodologies from the 70s?
Is there a role for Program Management? Absolutely. Not for the Microsoft-style Program Manager, but certainly for the jobs that the Microsoft Program Manager has. UI design and look and feel is best managed by professional user interaction specialists working with a project manager and development. The project manager can also be the primary representative of the client, but not the sole conduit. One of the primary jobs of QE is to be a user representative. Isolating development from the users just means that they don’t understand why they are doing what they do. Isolating QE from the users mean that they can’t represent a user of a product in their testing. The Program Manager can also work with development and QE to manage the schedule.
My experience with great program mangers post-Microsoft are folks that coordinate across all the functional groups to make sure that development has what they need, QE understands the user, experience design is delivering on time and all the clients are feeling well represented. In this view, the program manager acts as a lynchpin connecting development, QE and XD to their customers. Do they set the schedule? no. Do they write the specs? Maybe (in a non-agile team, working with the other groups). Is that less fun for the program manager? Maybe, but it produces much better products in my experience.
I saw this article in the Seattle Post-Intelligencer about how Microsoft added another 11,200 employees this year and I was a bit dumbfounded. What are all those people doing? How could Microsoft expect to maintain quality hiring standards continuing to grow at that rate? Why on earth would someone want to join a company that was so large that you were guaranteed that your best hope would be to rise to middle-management. Companies with 90,000 employees don’t attract aggressive and creative folk who want to make a difference. They attract people who want a steady paycheck and job security, the risk-adverse. The risk-adverse don’t make good products, or push boundaries. They follow trends, they don’t create them (at least not on company time).
on a side note:
That article lead me to MSFTextrememakeover which had this awesome mega-post about everything that is wrong with Microsoft since 2000. Unfortunately, it was the last post
So it’s time for me to listen to the fat lady who has been singing for years now, and finally pull the plug. I can’t keep waiting another 11 years for MSFT’s leadership to deliver the returns that say AAPL’s have in just the past 12 months, despite struggling (and that’s on top of 2000+% this decade). I’m also increasingly concerned that under this leadership team the long-term flatline will eventually be resolved to the downside versus the up, with all the implications for additional shareholder value destruction that implies.
I’ll miss the insights from you MSFTem!
When I first heard about Live Mesh, I was underwhelmed. I kept hearing that this was a game-changer, but I really didn’t see why. Today, I decided to figure out what the fuss was about, so I went to TechMeme to track down some of the better resources to start from. I read Ray Ozzie’s memo, I read the LiveMesh blog, and about a dozen other articles. I’m still having a hard time seeing this as revolutionary. Other services exist which have most of the same pieces. Where Mesh is different is the possible reach that Microsoft could give it. It is that reach that which is required to make it successful where others have failed. However, that reach coming from Microsoft is the Achilles heel for the technology. The Forbes article covers this aspect:
In the past, Microsoft has “literally tried to own the platform and standard, and so forced the industry to adopt [its technologies],” says Alex Barnett, vice president of community at Web application-development platform host Bungee Labs. “Ray Ozzie’s been working with community in a non-commercial, open-standards way to solve this problem at the industry level.”
It will take weeks–maybe months–for developers to grasp all that Mesh is capable of, predicts Barnett. And for it to be successful, Microsoft has to continue to engage with the community. If the program morphs into a Microsoft standard–instead of a Web standard–support will fall away, he adds.
Mesh may have been developed in a clean room environment, safe from the Microsoft innovation anti-bodies, but now that it is in the open, those anti-bodies will be attacking this from every direction. How excited will the Windows Mobile team be when you can sync your iPhone from LiveMesh. What will the Windows team think about the Linux client? They will all come at this team and Ray Ozzie may not be able to protect the Mesh group from the revenue engines. Every group at Microsoft will want to make sure that their user’s experience with Mesh is better than their competitors at which point the users and 3rd party developers will run away in droves.
Mesh is a service. A Microsoft service. How eager will developers be to put their eggs in Microsoft’s basket? Microsoft has a long history on screwing over developers with its technologies. Through aggressive marketing (ie: paying developers off a la Silverlight) and active hand-holding, Microsoft may get some bigger fish to swim in their pond. The little fish will be scared for the day that MS decides to eat them and they’ll be harder to get on-board.
For Microsoft to be successful with Mesh, they’ll need to get the independent web developers in their camp. This group is one of the least supportive of Microsoft. Microsoft has never made inroads with web developers outside of corporate IT departments. I’m sure that there are some great web start-ups based on Microsoft technologies, but I’m having a hard time thinking of one.
Live Mesh’s success requires Microsoft to be really good at a lot of things it has always been bad at: open standards, engaging the larger community, giving up control, having user trust, and enriching competitive platforms.
I believe that Ray Ozzie and the Mesh team may really want to do the right things for the right reason. The question will be if they can get escape velocity from a corporate culture which is against all those things. It will be a good test for us on the outside for judging Microsoft in the future. In the post-Bill era, is Microsoft Ray Ozzie’s company or is it Steve Ballmer’s company?
I find it hilarious to read some of the comments in news stories on technology companies, especially from folks who don’t write software for a living.
A lot of the evil that people accuse Microsoft of is really incompetence, short sightedness, tunnel vision or good intentions misinterpreted. People hate Microsoft, so they choose to see evil in it’s every decision. Most of the folks at Microsoft are smart, hard-working, honest people that want to make really cool software. Of course, I’ve met many MS folks who are testosterone-driven idiots without a creative bone in their body that just want to kill every other software company in existence. Too often, people mistake a move by the former folks as a scheme by the latter. This is horrible for the good folks at MS, but if that company wanted to fix its image, it wouldn’t have made a chair-throwing, hyper-aggressive salesman to be the CEO.
When John Nack posted about Adobe’s decision not to do 64-bit Photoshop for OS X in the next release, he knew he was going to get attacked for it. I thought he did an awesome job going through the reasons behind the decision without throwing blame around. I thought he gave real insight into what happened. He was open and up-front about everything and completely clear. Yet, you read the comments on the various sites and you can see that people read what they want to read and will interpret any decision within the context of what they want to believe. I’ve had more visibility into the decision-making hierarchies at Adobe than any other company I’ve ever worked for, and I can tell you that the people I work with always want to do the right thing for the people that use our software. No one is playing political games with Apple. Just because Steve Jobs says something is easy doesn’t actually make it easy. If it was always that easy, Final Cut Pro would be a 64-bit cocoa app already.
People who don’t write desktop software don’t understand why it might be harder than checking a checkbox to port from the PowerPC to Intel. People who don’t write desktop software don’t understand why it might be hard to write a new operating system from scratch or why having 100s of engineers doesn’t make it go faster. People also don’t understand that in an application where performance is paramount (like a media editing application), porting to a new operating system, hardware platform or compiler is a lot trickier than it seems because a lot of code is there doing tricky platform-specific stuff that has been hand tuned over years. People who don’t write software don’t understand what kind of effort it is to port millions of lines of code built in C++ against Carbon into Objective-C using Cocoa.
Maybe people shouldn’t care. It’s probably a bad idea to see how the sausage is made, right? This is probably true up to the point that people claim something is easy when they have no idea of the actual effort involved.
Apple isn’t evil. Apple is secretive. This is fun as a customer. This is evil as a developer. Microsoft will promise something for years, deliver betas and then pull the plug. Apple will be silent and then spring a huge change on its developers and then chastise them for not rewriting their apps from scratch again.
I don’t know if there is much of a point here except to say that before you accuse a company of screwing over their users for some political end, you might want to try and understand the real issues.
Just got my first auto-reboot-update. I knew this was possible. A friend of mine worked on the team that decided to implement this at MSFT. However, this is the first time that MS decided that it knew what was right for me and rebooted my machine automatically. RIGHT IN THE MIDDLE OF AN AUTOMATION RUN, CAUSING A HUGE FAIL. MS chose to do this because not enough people actually use windows update to guard against viruses. So rather than, you know, improving Windows to get rid of the security holes or making Windows Update better, MS decided instead to cram their updates down your throat, which is fine, in theory. That is until they f*ck up an update an it screws up millions of machines. Then it will be happy lawsuit time.
Anyway, if you don’t want MS deciding when it is time to reboot your machine, here is how to turn it off:
$6 Billion for aQuantive – a company I’ve never heard of with $442M in revenue. Umm… ok. Seems high.
$500M for Danger, a competitor for Windows Mobile written in Java. $56M in revenue last year and has never turned a profit. Uh, who is doing MS’ accounting?
$44.6 Billion for Yahoo! This isn’t a crazy valuation for Yahoo! however, I just found out that MS was going to have to borrow money for the first time in its history to purchase this fading internet darling. Yahoo! hates the idea so much that it is looking to be purchased by AOL or selling off it’s search to Google in order to stave off Microsoft. Way to read the valley culture morons.
Who is the genius behind Microsoft’s acquisition strategy and how the hell are they still employed?
Both Mini-MSFT and Joe Wilcox pointed this out. Microsoft isn’t replacing their high-level executives with internals. Bill Gates leaves, Ray Ozzie is hired to replace him. Jeff Raikes leaves, Stephen Elop replaces him. I’m not sure about some of the other executive departures yet, their replacements haven’t been announced as far as I can tell.
Why would Microsoft do this? Are they looking for folks without a lot of MS baggage who can shake things up? Are they looking for specific skills and experience they can use to compete? Or do they just feel like there isn’t anyone internal up to the task?
No matter what the reasons, this has got to be a major morale killer inside the company. If I was a director or VP or wanna-be executive, the message would be that my best chance of advancement was to leave because it seems like experience inside of MS isn’t valued inside of MS.
from a comment
The recent WSJ electronics buying poll got even better after this article appeared. In one of the most extraordinary developments in the history of retailing the zune managed to zoom at the last minute from 0% to 24%. More than 144,000 enthusiastic Zune givers magically appeared in less than 24 hours.
The above is a pretty interesting read. It seems like it isn’t 100% true, but no one has been arguing the radical surge in popularity of the Zune in a WSJ poll, nor is anyone challenging the numbers that Microsoft seems to be fudging to make the Zune look more popular than it actually is. If it is true, it is actually kind of sad, because I’ve heard that the new Zunes don’t suck as much as the old ones, but pulling this kind of stuff is going to seriously make people mistrust the Soft.
Microsoft should haven’t learned better by now, every time they try to pull one of these PR slights of hand, they get caught and look like idiots.
I was reading this great post from Scoble: Why doesn’t Microsoft get the love? « Scobleizer which was spot-on, but for some reason it got me thinking about Apple instead of Microsoft.
I think Apple is in serious trouble.
- The Amazon digital download store is much better than the iTunes store. Not the design or that dumb downloader, but the fact that they are selling high bitrate MP3s for the same price or less than iTunes sells the DRM’d files. Apple might be paying the price for being the ones who made legal downloading of music a reality. Losing the store isn’t a huge issue for Apple’s profit. The store exists to sell iPods, Apple doesn’t make much money on it. However, once you don’t need the store, you don’t need iTunes or an iPod. Apple’s innovation on the iPods will keep this business strong for them, but without the whole ecosystem, they become vulnerable.
- The desktop line is stagnating. I’m assuming that there is a reason that Apple hasn’t really bumped their desktop line in a while and I’m also assuming that we will get news soon. However, the GPUs on their highest-end machines are years old, and due to Apple’s locked-in nature, it isn’t a user-serviceable part. Letting this go so long is a problem. I and at least one friend of mine are waiting on new desktops before we upgrade our PPC-based machines. The GPUs in the laptops are better than what we have at the moment.
- The iPhone debacle: I think Apple is handling the iPhone all wrong. The phone is a triumph of technology, but even $400 for a phone is a lot of money for the average consumer. The phone doesn’t have enough features or speed on the network to replace serious smart phone competitors and it is still lacking some fundamental features that free-phone-with-subscription-phones lack like MMS and MP3 ring tones.
I don’t think Apple is dead or anything like that. I’m still an Apple fan-boy (as a user, not as a developer), but I think these signs are troubling and Apple can still snatch defeat from the jaws of victory.
What do you think?