From what I hear, the roles are quickly collapsing at Microsoft. In the service orgs especially, the role that was previous done by a Test team is now handled by the Dev team. They are also increasing the ratio between PM and Dev (less PMs and more Devs) and many PMs are being asked to code in some fashion (prototypes and tooling). Be interesting to see how long the unique role of PM remains at Microsoft.
I work on Bing at Microsoft. What you have stated is correct. We have already done away with our test and operation teams. Moreover, a number of PMs were let go last week. Developers are now expected to wear many more hats. We are also reducing the number of middle managers in the name of agility. All good things in my eyes.
Another interesting thing to note is that we are trying to reduce the size of projects and break apart the notion of "cores" within an org. The idea is to allow features that span several different areas to be implemented with greater ease. I like the idea but I am concerned with how these features will be maintained after they are completed.
FWIW - I spent about 7 years in MS and now >5 in Amazon - I overall like the MS model, at least from a developer perspective.
It gave you a lot of time to focus on getting your complicated piece right with unit tests - and you could leave the integration tests / PM'ing to the respective folks. Amazon is like where Bing is going - but the end result is that it ends up favoring breadth oriented folks more than depth folks. That's ok if you are building a business logic / app tier, system teams are a different story.
For the same reason, the latest MS path doesn't seem right to me. It feels like they are taking the wrong lessons from startups / AWS.
But again, it has been 5 years since and I don't have the big picture - so I guess I will wait and watch.
Although I have a couple friends at Amazon, I was unaware that their development model is what Microsoft is aiming for. The points you make don't bother me right now since I am so young in my career. I haven't developed deep expertise in any particular area yet. In fact, one of my strongest assets is the ability to quickly pick up technologies. Hopefully this will serve me well when I eventually have to jump from system to system with the new development model.
My impression is that most all developers have their own office at MS, or at least share an office with 1-2 other devs (not sure if this is different inside bing teams or not either)
Has this 'more-hats' change you describe (specifically ops) changed that at all? Where I work, I hear an argument against offices: that they promote and encourage isolation in what can be an ops-heavy role at times (I see the merits but think there are better ways to combat that)
My company is at orders-of-magnitude different size than MS, wondering if something similar occurs there.
Most people are in offices or in an area with a few people, but (at least for me) our team is scattered around, so we're not nearby each other at all. It's not easy to stop by or ask a quick question without going for a short walk.
Personally I like the office arrangement - you can make it silent, control the temperature, etc. I do wish that teams were grouped more closely together but that doesn't seem to be a concern for anyone higher up.
It depends where you work in Microsoft. Most everybody I work with has their own office. I have several friends at Microsoft who work in open office spaces. As with most things in life, there are benefits and downsides. Personally I like my own office, but I have yet to work in an open environment.
I'm not sure the folks in Visual Studio are representative of all of MS though. Being a business unit where our customers are developers, the PMs have to also be developers. I'd be surprised to find PMs in WP or Xbox writing as much code as the VS PMs do.
That would never have flown in a Sinofsky organization. The marching orders were PM's define the what and dev's define the how (and test makes sure it works), and it was driven down to everyone in the trenches constantly.
This was written almost 10 years ago by someone who was pretty polarizing inside the company (and ultimately left after spearheading the original vision for Windows 8), so take it with a grain of salt. Many of the recent MS layoffs have been in the PM organizations because the company is redefining the role.
Sinofsky was brought in as President of the Windows division after the failure of Vista, during which he spearheaded (among other things) Windows 7 and IE8, both to extraordinarily great praise.
Yes. He was divisive. Yes. He had failures. But really what you should do is take this for what it is: a successful person talking about success. The real trap is not that he is divisive or wrong about the future, it's that he almost certainly suffers survivor's bias.
Windows 7 was a quick iterative release. He did a decent job, but there was little where things could go wrong. I firmly believe that IE8 was the worst IE release- no tabbed browsing, horrible accelerators feature and a bogus 'perceived performance' mantra.
Sinofsky's triad model is the epitome of Microsoft beauracracy- I left the company to escape it (I'd have put money on Sinofsky becoming CEO)
Having used Win8 just long enough to blank the machine and install Linux, I found the beast just horrifying.
I think there was a point where win8 actually cut into MS' sales - and MS has a pretty tight monopoly on the low-end PC market.
And Win8 is where the things Sinofsky talks about - being aware of how ordinary users actually get thing done - were palpably tossed out the window.
In the discussion of what lead to Win8, the perceived virtues of the Mac were monomaniacally pursued. Static design - having an impressive, beautiful look - was everything. Doing tasks was nothing.
And I think earlier MS for all its other evil, had a pretty good record of producing good, usable programs (buggy too but they were careful at finding the features people needed and wanted).
Windows 7 took an unusable performance monster and morphed it into something decently useable. That was no small feat, and many thing could've gone wrong with the wrong focus.
I never had a great impression of PMs when I was at Microsoft. The enduring image is, after asking a pointed question or raising an objection, watching some PM respond with a bunch of meaningless verbiage while nodding their head as if they're agreeing, when in fact they're disregarding every dissenting view.
That said, PMs at MS have a very challenging job, at least in the parts of Windows where I worked. The joke about MS being a bunch of separate orgs at war with each other was very real, and PMs were the ones who had to cajole, convince, and sell other teams on why they should spend their time doing something that would enable the PM's team to do something they wanted to do. They were the ones who chased people down and got them to agree to do something necessary.
Well, you can never get rid of politics, they're like death and taxes. You can only make the politics more equitable by setting up a system that distributes power more evenly and resists its concentration in the hands of the greedy.
I agree, politics will never disappear completely. In a democracy, we vote, we elect representatives, etc. But the amount of people in society that dedicate their lives completely to politics is low. Maybe 1% of the population works in politics at most? Anything higher than that in a corporation, is probably a sign of inefficiency.
Agree, many workers having to spend a large portion of their time politicking is highly inefficient. Someone has to put their head down and do the actual work at some point.
But at the same time I think understanding politics and power, and having a little political skill, is important for everyone because it's how you convince others to help you get things done. People who see office politics as an inscrutable evil just get frustrated when they can't convince anyone to listen to their opinions. And they're easier to exploit and manipulate.
Knowing how the political game works is the best way to protect yourself from those who would play it against you. And if you're too busy doing actual work to play the game, then you need a good PM who you really trust to play it on your behalf.
Who "exploits and manipulates" developers? If the answer is their dev manager/lead, good, that's their "job" (being sarcastic here); but yeah, I expect from my boss to give me some direction when needed.
However, I think you are pointing out that devs get "exploited and manipulated" by, surprise, other PMs. I really can't think of someone else that is good at this. So yeah, just remove PMs that are specialized in "politics".
Now, if you remove "politics" PMs then you could argue that customer support, cross-team requests, etc. will impact developers. In this case, dev managers/leads should prioritize those requests and it should be painful to take away dev time to serve other tasks. If it's painful you will probably invest time in fixing the customer support issue rather than managing your customers. If you are spending too much time serving marketing requests, maybe you just have a bad product that needs improvements before it gets shipped, etc.
I really don't believe easing politics is the way to go.
My personal point of view: The Program Manager role should be replaced by more specialized roles, or no role at all.
I see PMs having 3 main responsibilities: Project management, user experience and defining requirements.
The problem with this role is that it's REALLY hard to find PMs who are GREAT at all these different skills.
I would rather have a project manager role, user experience researcher role, designer role, business analyst role, etc.
If the project is too small to define each position, then I wouldn't define a role but rather get people to wear multiple hats. There are devs that are very capable at project management, designers that are also good frontend devs, etc. Or bring external help to support the specific needs of your project.
I think a problem with splitting the roles up is that you can sometimes end up with a leadership void, where lots of different people are responsible for individual pieces but nobody is responsible for the product as a whole.
There are a lot of project managers who can craft a beautiful Gantt chart but know very little about technology. There are a lot of business analysts who are very good at going to a user, asking "What are your requirements?" and then diligently writing down everything the users says and creating a beautifully-formatted requirements document, but who don't have an in-depth grasp/understanding of what the user really needs the product to do. That can bethe difference between a product that meets users' requirements and a product that delights the user.
I think you need to have a single person who is responsible for ensuring that the product should delight the user.
Yes, I agree, there should be a "single person who is responsible for ensuring that the product should delight the user". But that person is the product leader, a single GM or whatever you want to call it, and the task should not be delegated to a team of PMs. Someone needs to oversee designers, user experience researchers, business analysts, developers, operation engineers, testers, etc. Thats the role of the person in charge and thats why they get paid so much. This person should also be accountable for "the product delights customers" piece, and if this doesn't happen, is also the person who gets replaced.
I don't know why this would be downvoted; I've been appalled to see things from 2012 on Hacker News arbitrarily edited to include the date, as if blog posts from 2012 were some kind of ancient lore of yesteryear.. whereas this article is from 2005 and doesn't include the date at all!