What takes longer to build, Windows or the Great Pyramid?


Skip to third sections for charts.

On the one hand, the Great Pyramid, one of the 7 Wonders of the world, built thousands of years ago.

On the other hand, Microsoft Windows, the operating system running computers around the world.

Let’s measure how much effort they took to build. The “effort” as a project management term is a unit measured in man*years. It’s self explanatory, it’s how many people worked on a project times how many years they worked.

For example if a project takes 2 years for 10 people, the project is said to take 20 man years.

The Great Pyramid

The construction of the Great Pyramid has been the subject of much interests. There are a few estimates available in books and research publications.

One estimate featured in the June 1999 Civil Engineering Magazine.

The total labor expended is 36.7 million days, or approximately 131,200 man-years. Thus the average labor force over the 10-year duration of the project is therefore 13,200 men.

A second estimate published in German, 1993, by Heribert Illig and Franz Löhner “Der Bau der Cheops-Pyramide“. With further information on a website, going into great details about the constructions of pyramids. Highly recommended if you have an afternoon to waste. How many workers are necessary to build Khufu’s pyramid?

Rough calculations give a total number of 6700 workers for the construction of Khufu’s pyramid. […] The calculations are based on the minimum of workers necessary to finish the pyramid in 20 years time.

Workers were not slaves contrary to a popular belief. Most of those were highly skilled craftsmen and artisans, not unlike the numerous people working on Windows.

Both estimates are comparable in total effort, except one aims for completion in 10 years and the other in 20 years.

We’ll note that a pyramid seems to be a relatively concurrence-friendly task, numerous workers can cut and transport stones in parallel, unlike developers trying to work on the same feature in the same codebase.

Microsoft Windows

How much effort did it take to build Windows? There is limited public information available on that, however we can find out how many lines of code it is made of and work from there.

There is a cost estimation model called CoCoMo to estimate the effort to complete a project (see wikipedia for an introduction). It can be used to estimate the duration of a project with the amount of people needed and the amount of lines of code created.

Given a completed project, it’s possible to use the model the other way around to estimate how much effort went into it. From a practical standpoint, that’s what it would take to redo the project from scratch.

Short version:

Effort [man*months] = 2.8 * ( KLOC ^ 1.2 )
Development Time (months) = 2.5 * ( Effort ^ 0.32 )
Average People Required = Effort / Development Time
KLOC = thousands of lines of code

The constants can be adjusted based on the type of project, we take the hardest constants here since Windows is a very large project with tight constraints. It might genuinely be one of the most complex software in existence, with Office and Visual Studio somewhere in the vicinity.

How many lines of code in Windows?

There is a helpful chart with lines of code and sizes of the teams working on Windows in the book “The Build Master (amazon)“. Extract of the numbers here.

Ship DateProductDev Team SizeTest Team SizeLines of Code
Jul-93 NT 1.0 (released as 3.1) 2001404-5 million
Sep-94 NT 2.0 (released as 3.5) 3002307-8 million
May-95 NT 3.0 (released as 3.51) 4503259-10 million
Jul-96 NT 4.0 (released as 4.0) 80070011-12 million
Dec-99 NT 5.0 (Windows 2000) 1400170029+ million
Oct-01 NT 5.1 (Windows XP) 1800220040 million
Apr-03 NT 5.2 (Windows Server 2003) 2000240050 million

For Vista (2007) and Windows 7 (2009), it’s 50M and 40M respectively as reported by multiple sources.

One minor issue, lines of code are going down from Vista onward. A straight comparison would show that Windows 7 took less effort to develop than Windows Vista, which is absurd. Let’s consider what the estimate means, it’s what the development could have been if the project started from scratch. Of course development didn’t start from scratch but continued from what already existed.

Removing lines of code in an ancient large codebase is similar work as adding new lines, possibly harder, so we will factor this as +10M lines instead of -10M for estimation purposes.

KLOC = 1000 lines of code

Charts

Here’s the numbers.

The Great Pyramid stands at 131200 and 13400 man years as per the two research papers.

Conclusion

Microsoft Windows took more work to build than the great pyramid. It reached parity somewhen around Windows 7 (2009) and has surpassed it since.

This should illustrate the incredible complexity that goes into software. Software are the largest and most complex constructions created by mankind so far.

This ought to put things in perspective. Companies and developers are notoriously struggling to plan projects and execute within some time and budget. No wonder. It takes hard work to build a pyramid software.

To conclude, next time you hear a developer saying one could have built this or that in a month, refer to this article and ask back if one could build a pyramid in a year? Not a chance.

Advertisements