Skip to third sections for charts.
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.
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.
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?
|Ship Date||Product||Dev Team Size||Test Team Size||Lines of Code|
|Jul-93||NT 1.0 (released as 3.1)||200||140||4-5 million|
|Sep-94||NT 2.0 (released as 3.5)||300||230||7-8 million|
|May-95||NT 3.0 (released as 3.51)||450||325||9-10 million|
|Jul-96||NT 4.0 (released as 4.0)||800||700||11-12 million|
|Dec-99||NT 5.0 (Windows 2000)||1400||1700||29+ million|
|Oct-01||NT 5.1 (Windows XP)||1800||2200||40 million|
|Apr-03||NT 5.2 (Windows Server 2003)||2000||2400||50 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.
Here’s the numbers.
The Great Pyramid stands at 131200 and 13400 man years as per the two research papers.
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.