Discussion about this post

User's avatar
Jon DeVaan's avatar

Welcome to OPU Steven!

There were a set of actions taken before Steven’s arrival to compete with Lotus SmartSuite. He has foreshadowed this with his choice of graphics in this first chunk.

PCs were evolving quickly into machines with enough RAM, disk space, and CPU power to run more than one program at a time. In parallel, companies were starting to put “a PC on every desk” and IT departments were scrambling to figure out how to contain the cost of training and supporting their users. These were the dynamics driving the move from “best of breed” applications to office suites.

Lotus deserves credit for seeing these dynamics first, even if their implementation was mostly a marketing show. BillG deserves credit for having the foresight to fund the development of a complete family of applications inside Microsoft early on. Both Lotus and Microsoft were dealing with the problem of turning multiple independent engineering and marketing teams into cohesive teams working on suites. Lotus saw the market first but Microsoft had more of the technical assets in house.

In DAD, there was a concept of an Office product, but it was mainly a pricing bundle. (Personal note, my most lovely wife Stephanie was the product manager responsible for Office for Macintosh, the first major product bundle to ship on CD-ROM.) In response to Lotus’ marketing we started to think through how to deliver on application integration. We saw two dimensions to this, integrating data through compound documents, and user experience.

The prime example of a compound document was a Word document containing Excel tables and charts. Another example was a PowerPoint presentation with Excel tables and charts. In the Windows 2.0 days a feature was created to show off data messaging between applications known as Dynamic Data Exchange (DDE). Many developer demonstrations were done showing Excel controlling a submarine hunting fish in a virtual aquarium (shoutout to Ed Fries aka Fast Eddy aka EdF), which later gave way to Excel controlling a t-shirt cannon. DDE was expanded to become Object Linking and Embedding (OLE) which allowed for the compound document (Word) to display a presentation of application data (a picture of an Excel table) and store the application’s private data (the XLS file) behind the scenes. This allowed the user to think they had one Word document with an Excel table in it. When they wanted to edit the table, they simply double clicked the picture of the table to start Excel. When Excel closed it returned the presentation and private data back to Word. Office was ahead of SmartSuite in this area.

Office was woefully behind in the user experience area. In the Office 4.0 timeframe, we attempted to fix that by creating shared specifications of user interface features that would be implemented by each application team. A small group of program managers led by ChrisGr was started to write the specifications. Andrew Kwatinetz (AndrewK) drew the job of specifying the top-level menus (File, Edit, View, Help) to create a veneer of user interface consistency. As a lesson in organizational dynamics, getting buy-in on each specification was a herculean effort and giant argument between the application teams. I remember many arguments over such substantive issues as, “Should toolbars be 13 pixels tall or 14 pixels tall?” In hindsight they were silly arguments and a huge waste of time. But waste time we did. Those arguments were then amplified as the process of writing code to match the spec created opportunity for application teams to create arbitrary differences. I wrote the code for the “Format Font” dialog in Excel according to the new shared Office specification. Then the PowerPoint team implemented theirs. Huh, it was really different, so I re-wrote the Excel dialog to match. Then Word implemented their dialog and it was completely different yet again. I really enjoyed my third implementation of the Format Font dialog!

As Office 4.x was wrapping up, we asked ourselves how we could make Office work better for end users, but also for ourselves. In one of my many visits to MikeMap to help install pre-release builds of Office on his PC, I was clear that if we wanted a feature to look identical and work identically between the applications, we would need to figure out how to write the code once.

Enter the Office Product Unit, the expansion of ChrisGr’s program management team.

Expand full comment
Kirk Glerum's avatar

On Borland C++ and /O: in one of the benchmark suites of compiled C/C++ code, there was a calculation that multiplied by 13. Borland wrote a hand-optimized 'times13' routine in x86 assembler, had the compiler parse for it, recognize it, plug it in. If your code multiplied by 14, well sucks to be you, you got the slow generic stuff, but 13 ooh that'd cook. This was both totally cheating and totally legit.

Expand full comment
18 more comments...

No posts