by Michael S. Kaplan, published on 2006/11/26 16:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2006/11/26/1154836.aspx
First I read Joel's Choices = Headaches. And then I read his follow-up (How many Microsofties does it take to implement the Off menu?) and of course the link to Moishe Lettvin's The Windows Shutdown CrapFest.
And I think about a project I am involved with that has as many strange interconnected pieces -- keyboards. And most especially the new "Text based TIPs" that I owe a whole bunch o posts on which are almost done.
I sang a bit about the underlying organizational complexity I am referring to in my Who runs the keyboards? post, and I can assure that the actual chain of organizational connections is even worse than the one Moishe laid out, involving the hardware team that is an entirely different division, folks in Shell, USER, Cicero, Setup, and NLS (plus the MUI dev lead who got involved due to his prior work). Things had the potential to be even worse, especially when you factor in the IME team that we also had to interact with, which means we were crossing continents, not just divisions.
We were definitely in different trees, and it could take months to see changes make it from one team's tree to all the others, especially in the earlier days of the project.
Thankfully, we took it in a different direction that stayed away from many of the problems that plagued the "Off menu"....
In our case, we provided the setup team with a library that did all the work and asked them to call it (this approach is used for all of the NLS/MUI functionality setup uses, and solves the almost-as-good old solution where the setup team would just use intl.cpl).
We still aren't meeting with the hardware folks, even though we promised to do it more often. Darn, we should work on that!
The "Cicero" (Text Services Framework) team and the USER team thankfully were put in the same org, so I could talk to someone on Hiro's team as easily as I could talk to someone one Yutaka's (like Kazuhiko), and although our source trees are in vastly different places in the hierarchy, we would regularly work with each other's private drops to verify that changes worked properly. And all of us hated process, and all of us wanted to minimize change and minimize the impact to test. So on each side me providing copies of the text file I was developing and them providing me with updated versions of TableTextService.dll, sometimes input.dll, and occasionally msctf.dll made everyone's life easier. And the same applied to the shared pieces that were used by setup that we were providing a library for that used their library as well.
We did not schedule standing meetings ever -- mainly we just sent mail when we needed something, just like they did. There was a brief panic on the setup piece of this due to a PM liaison getting kind of random and messing up what all of us thought was going on, but that PM left and everyone on both sides worked to fix up this problem.
In the end we shipped. :-)
I still owe a blog post on the story about the Amharic input method. I promise I'll try to get to it this upcoming week. It is part of a "Vista non-hero" story I have actually been working on....
So, back to the non-nightmare for a moment. How did we avoid the same kinds of problems that plagued the "Off Menu" ?
Well, I think we avoided the layer of process involving:
Which is not to say that all of this is what happened in the "Off Menu" case, I guess I am thinking more of the problems that would have led us into similar troubles.
The moral of the story? There were teams in Vista that also worked hard to stay focused and get the job done, in addition to some reportedly pathological cases. None of the teams involved were any better or worse than any other team, and we were not alone
This post brought to you by ፑ (U+1351, a.k.a. ETHIOPIC SYLLABLE PU)
# Dean Harding on 26 Nov 2006 6:14 PM:
I used to work for a fairly large company (nothing like Microsoft, of course) and I'd have to say that my experience is the same as yours.
There were always people who would have to do it all "by the book" and have meetings with as many "stakeholders" as possible. Six months later, they MIGHT have started coding, and twelve months later (after several restarts/rewrites) they might have something that worked.
Then there were people who did the best they could to get the job done. These people could get the same functionality out in about 6 DAYS, not 6 months, and everybody was just as happy with the final result.
The point is that I'm quite sure most of the people who went to the "Off-menu" meetings probably didn't want to be there -- just as Lettvin didn't want them to be there, either. If you know what I mean...
referenced by