In 1984 Microsoft decided to port MacWord to Windows. They expected it would take about one year. It did not. It took five. In one of the many, many great documents unearthed by the Comes v. Microsoft antitrust lawsuit is this great postmortem of what went wrong.

The Opus Development Postmortem is 47 pages long, and should be mandatory reading for all project managers.

The timeline

  • WinWord dreamed up in August 1984
  • Prototype demoed in September 1985
  • Real work begins in November 1985
  • Windows 1.0 ships in November 1985
  • Windows 2.0 ships in November 1987
  • WinWord ships November 1989

Small Notes and Select Quotes

Management of the development team, from within and from above has been one of the major failures of this project.

  • There’s a difference between the design and the specification.
  • There was no formal schedule, just a list of tasks.
  • They used Excel Model, and then Block Model. I don’t know what those are.
  • Bug convergence didn’t start to happen until they started code reviews.

A schedule is a tool to predict a ship date, not a contract by development.

  • During the first few years, they always estimated they were 1 year away from shipping.
  • During the last 2 years, they always estimated they were 3 months away from shipping.

The idea that schedule is God leads to infinite defects.

  • Dependencies on other teams were a constant mess. Joel Spolsky once said that the Excel team were so intent at killing their dependencies that they had their own C++ compiler.
  • Finally, a point for the static type argument: The say that the compiler should be more stringent about implicit casts and other type problems. (But the dynamic type argument would say that these should be part of a unit test.)