Fog Creek Software
Discussion Board




Microsoft Office Developer Teams

Hatfull of questions about office:

How are the product teams for the office products structured at Microsoft?  Roughly how many developers produce Word, XL and PPT?  Does each feature (tables, Styles, etc,. have its own team?  Or does each developer work throughout the product?  How are cross-application features like OLE organized from a team perspective?  Which languages/tools are used?  How do they ensure that the code is well-written?  How is it reviewed? 

When a service pack or hot fix is issued, do the 'Office 12' developers take time out to do it, or does a team of more junior, maintenance programmers issue the fix?  Which team member bears ultimate responsibility for the success of Word or Excel?  Is that person technical or business-oriented?

I realize that this is quite a lot of questions for this forum.  Perhaps it could be a subject for a future article.  Still, most of my programming career has been spent automating these products and I can only guess at how they are built.

Are there any resources besides this one that discuss this?

Ran Whittle
Monday, April 05, 2004

I'm not the person to ask ... I left the office team in 1993, more than ten years ago.

Joel Spolsky
Fog Creek Software
Monday, April 05, 2004

Well, I have spent so many painful hours trying to use the features that Word claims to offer that I can make a good guess at how it is coded.

Word has misbehaved so much, and done so many random, buggy, unpredictable things to my documents that I can only deduce it is a mess of spaghetti code underneath.

Not only my experience. Many colleagues I have mentioned this to have responded "Oh yes, definitely, what a #@($&! awful piece of software!" I find it highly amusing that magazine journalists when they review word processing apps always manage to put Word top of the list, and never mention how it tends to eat documents for breakfast and spit them out all chewed up.

You can probably make a general observation here: If a piece of software is clean, logical and predictable in its user interface and behavior, then it is probably well designed and coded underneath. On the other hand, if software is awkard, unpredictable and buggy in use, it is probably badly designed and coded.

[Disclaimer: My bad experiences relate to Word 97 and earlier versions. I have not dared to use Word 2000 or later for other than small, simple, safe documents like letters, so I don't know if it has improved.]

Ian
Monday, April 05, 2004

"[Disclaimer: My bad experiences relate to Word 97 and earlier versions. I have not dared to use Word 2000 or later for other than small, simple, safe documents like letters, so I don't know if it has improved.]"

IOW, I have an 8 year old opinion and am unwilling to change it ;-)

Motown (AU)
Monday, April 05, 2004

"IOW, I have an 8 year old opinion and am unwilling to change it ;-) "

Perhaps, perhaps. But do you really think Microsoft have spent the time since Word 97 refactoring, simplifying and cleaning up the underlying code, or do you think they have spent the time adding more and more features to satisfy the marketing department?

Call me a cynic, but I know what I suspect is the case.

When I use Word today I can see it still has the same kind of failings that it always had. It still has embedded but invisible format codes inserted in the document that tend to get lost or badly placed when you delete or move text around, and which cause bizarre things to happen when they suddenly get processed in a location where they don't have the proper context.

Ian
Monday, April 05, 2004

Hat full of answers:

* It changes with every reorg.
* Hundreds.
* Usually, yes.
* Sometimes, but mostly not.
* With great difficulty, historically.
* C and C++.  Some C# for new features. Lots of internal tools.
* Careful reviews.
* Carefully!
* QFE is usually its own sub-team, but it would be a mistake to characterize them as "juniors".
* Program management.
* Both.  Being a PM is hard.

Eric Lippert
Monday, April 05, 2004

I always wondered why Word wasted it's time with features that nobody uses like that web page design mode that you can enter. I bet *nobody* has ever built a web page in Word except my Dad! And what a nightmare that was to debug.

Matthew Lock
Monday, April 05, 2004

Eric, you said "Some C# for new features", does this mean that new versions of Office will require (and likely install) the .NET Framework? That would almost be as good as putting it into the OS.

  --Josh

JWA
Tuesday, April 06, 2004

I think Eric is wrong but Office will move to .NET eventually.

John Topley (www.johntopley.com)
Tuesday, April 06, 2004

Inevitable, and it is one of the ways they will puch the CLR onto Windows PCs.


Tuesday, April 06, 2004

That will be a first release to avoid then :)

DomF
Tuesday, April 06, 2004

There is excellent market oppurtunity for a "light" word processor, since most people don't want (or need) most of the new features in Word.  A light version would no doubt be more stable as well.

Professional Write on my old IBM XT 8088 loaded faster than MS Word does on my P4.  Thats progress?

hightequity
Tuesday, April 06, 2004

Word 2000 adds bugs of its own. I spent some time a couple of days ago cutting and pasting between tables. If  Word decided it didn't like what I was trying to cut and paste it closed down on the spot. Did it a dozen times in an hour.

Then we have the fact that if you are formatting with bullets or numbers and use justified mode it works fine until you want to leave a line between each item.You hit shift and enter and the last line becomes justified even if there are only two words on it. Select the line and change to left justify and the whole paragraph changes.

The guy who hasn't changed his opinion in eight years has simply saved himself another eight years of new bugs.

Stephen Jones
Tuesday, April 06, 2004

<<
There is excellent market oppurtunity for a "light" word processor, since most people don't want (or need) most of the new features in Word.  A light version would no doubt be more stable as well.
>>

Wordpad.exe

GiorgioG
Tuesday, April 06, 2004

Stephen,

What you want for spacing between bullet items is to change the space following a paragraph. You can do it with styles or simply right-click on some text in a list item and choose Paragraph. Then increase the "spacing after" value. Using shift-enter is simply the wrong way to do it.

Of course, Word shoud be conforming to the user model and interpretting two back-to-back newlines as "increase the spacing after value for this style" using their auto-formatting engine.

And to those who have been hit by bugs, I feel your pain. There was a custom property/document map bug that was eating my Word 2000 documents for a while until I found the KB article which just said "don't do that". Great. However, if you haven't touched Word since 97 then you should check out the 2003 version. The Office team used Watson-style crash reporting during Beta which eliminated tons of common crash bugs.

dmooney
Tuesday, April 06, 2004

For a word processor that works reliably, there's always good old FrameMaker... at least until Adobe shuts down the remaining versions (Windows and Solaris).

Chris Nahr
Tuesday, April 06, 2004

hightequity: Joel wrote a whole strategy letter about that topic: http://joelonsoftware.com/articles/fog0000000020.html

While there are definitely niches in which a "lite" word processor would thrive, each niche is just too different for it to be considered a good "market opportunity".

Pierce Hanley
Tuesday, April 06, 2004

Matthew Lock wrote, "I always wondered why Word wasted it's time with features that nobody uses like that web page design mode that you can enter. I bet *nobody* has ever built a web page in Word except my Dad!"

Actually, a lot of people use that feature.  There are whole websites about it.  Google for "creating web pages in word" for examples.

Remember, folks, just because you don't use a feature, and everyone you know doesn't use a feature, doesn't mean that nobody uses that feature.

Brent P. Newhall
Tuesday, April 06, 2004

"There is excellent market oppurtunity for a "light" word processor, since most people don't want (or need) most of the new features in Word.  A light version would no doubt be more stable as well."

I think it's been proven over and over that there is NO market for a product like this.  Everyone's idea of "light" is different.

chris
Tuesday, April 06, 2004

Dear dmooney,
                        Thanks for telling me how to do it. I'll try it out. I still maintain that there is no reason why shift + enter should change the spacing ror the last line apart from a bug.

                        Then there is the bug with outline numbering. If you want to change the level of outline numbering you click on the increase tab icon which you may have on the toolbar. Hitting tab however does nothing.

                          I can go on. I still find however that  many of Word's autoformatting features take ten times as long as doing things manually. And of course whenever you get a document from somebody else you find yourself struggling with all the quirks of his particular normal dot template and style settings! Aarrgg!

Stephen Jones
Tuesday, April 06, 2004

>>There is excellent market oppurtunity for a "light" word processor, since most people don't want (or need) most of the new features in Word.  A light version would no doubt be more stable as well.

>I think it's been proven over and over that there is NO market for a product like this.  Everyone's idea of "light" is different.

But I bet there's a market for a really simple word processor with some sort of plugins/late loaded components that do all the other stuff. If I could have Wordpad with a spell checker and tables I'd be happy.

Dan
Wednesday, April 07, 2004

Actually, the comment about the underlying model being messed up was true in versions of Word all the way back to DOS. Unlike the simple document format for WordPerfect Words was almost incomprehensible even to Microsoft programmers.  I worked on a Grammer checker which had to deal with these formats and Word was a pain in the butt. But now in the 2003 version they are using XML so I'm hoping that has cleaned up the underlying problem.

jking
Wednesday, April 07, 2004

> I think Eric is wrong but Office will move
> to .NET eventually.

Any particular reason why you think I'm wrong, John?  I'd be interested to know!

I mean, it's _possible_ that you -- who are, according to your blog, a computer programmer for the British Civil Service -- know more about Office's development strategy than I do.  You seem like a pretty knowledgable guy from your blog.

But I have a _sneaking_ suspicion that I might have _slightly_ more of the Office source code on my machine than you do, given that I spent this morning rewriting the C# code that integrates Office structured storage documents into Visual Studio Whidbey...

:-)

But don't take my word for it.  I'm not actually on the Office team.  Here's a blog entry from a dev on the Outlook team.

http://weblogs.asp.net/jobsblog/archive/2004/04/05/108012.aspx

The relevant portion is about halfway through:

"Outlook is written primarily in C/C++, although we’re including some C# in the next version, but only in new features.  IMO, most large apps at Microsoft are written in C/C++ as C# is a new language in the grand scheme of things."

Do let me know if you have any more questions.

Eric Lippert
Wednesday, April 07, 2004

Eric, is there any chance that those "structured storage documents" might lead to real round-trip support for DocBook XML in a future Word release, as in Structured FrameMaker?

Chris Nahr
Thursday, April 08, 2004

You've got me there Eric! :-)

(Removes foot from mouth) ahem, what I was trying to say--and I could have been more eloquent--was that I didn't believe there was any .NET code in the shipping versions of Office.

John Topley (www.johntopley.com)
Thursday, April 08, 2004

John: Correct, the current shipping Office is written in unmanaged code, though it does support managed customizations via VSTO version 1.  See blogs.msdn.com/vsto for details.

Chris: I haven't the faintest idea, sorry.  That's totally not the part of Office that I work on -- I work on the programmability tools.

Eric Lippert
Thursday, April 08, 2004

This is the kind of question you might want to ask on Channel 9:

http://channel9.msdn.com

Pablo
Thursday, April 08, 2004

Recentely one of my friends persuaded me into trying the Unix tool Latex. Now I'm hooked, beautiful *predictable* renderings. Can't live without it. Word is great for writing a one page letter, but when it comes to long articles, reports,  my thesis.... latex just kicks ass. Their approach is WYGISWYW (=What you get is what you want)

Windows lover but Latex fan
Sunday, April 11, 2004

LaTeX is not just a Unix tool, there are plenty of implementations for Windows. I've used it for years but frankly, it's 1960s technology.

Changing the predefined layouts involves _programming_ in a completely harebrained language, and using any non-default fonts involves implementation-dependent trickery. Thanks, but I'll stick with FrameMaker and Word for now...

Chris Nahr
Sunday, April 11, 2004

If you liked Latex, then you may want to look at DocBook. Similar in theory, but "compiles" to a wider range of formats.

Oh, and you get the joy of buzz-word compliance with XML =)

Geoff Wilson
Wednesday, April 14, 2004

*  Recent Topics

*  Fog Creek Home