I started posting this as a blog response elsewhere, and then I decided that I was having way too much fun composing it to leave it stranded as a mere comment... so here is my take on Product Team Roles at Microsoft.
Yes, read it with a grain of salt, good humor, and enjoy the self-deprecating satire... ;-)
For those of you who aren't aware of the typical Product Team Roles at Microsoft, they are (in no particular order of preference):
Now, the first role, Development, is pretty obvious - you don't have a software product without code. Developers deal with writing code; lots of code. They prefer to not deal with Testers who keep filing bugs against their code, Program Managers who keep changing the code's supposedly intended behavior, and Management who keep changing the schedule... because they all prevent him from writing lots and lots of code. Hmm, I guess that's what makes Open Source appealing - no Testing, no Customer design, and no Schedules... and lots of code of dubious value. ;-)
But what the heck about the remaining roles?
Well, you want to make sure that software does not crash and format your hard drive all the time, right?
Testers deal with validating Developer's code against Program Manager's ideas that have never been written down and in the insanely short amount of time that Management schedules.
They prefer to not deal with Program Managers that keep changing their ideas (and hence require tests to be updated), Developers that do not want to fix anything and pile up bugs, or Management who want the testing completed yesterday... because they all prevent him from having a work/life balance.
Well, you want that software to actually do what you want and not what the developer THINKS you want, right?
Program Managers deal with ideas and never writes it down because it immediately changes and is out-of-date.
They prefer to come up with ideas and want to just get their way, so they prefer to not deal with Developers and Testers who do not cooperate and want a life. Some of them are actually smart and interact with customers to get ideas via mediums like blogs... instead of just dreaming up features in a vacuum and arguing about customers in the abstract...
Ok, they perform a necessary but thankless job. They like:
Ok, they also perform another necessary but thankless job. They like:
I find amazing similarities between Management and Documentation, where one is a project of code and the other is a project of words that accompany the code. But if you think about it, both are really just "overhead". ;-)
If I had my way, I would simply pay the Developer/Tester/Program Manager to write Documentation as a Wiki or Blog entries. Do you want more things like my blog entries or more things like "sanitized" KB articles or MSDN/Technet articles? Can you imagine the changes when we can actually write Documentation which does not get filtered by someone else?
Hehe... sometimes, I am amazed that in the middle of all this, we actually find time and energy to ship useful software. But, we all definitely try our best to navigate through the madness and red-tape.
Now that I've done my bit of satirical insight into the organization that is Microsoft... I would love to hear about your favorite job euphemisms. :-)