At my previous job, the ancient version of Firefox we used had become sort of a joke. It would constantly render incorrectly such that I was always chasing down formatting/styling bugs that had long since been fixed. Or, it would incur miserable slowdowns on Javascript-heavy client applications (of which we had many). Add to that, almost every site we visited claimed that we needed to "upgrade our browser to a more secure version," and some would even refuse to function based on that alone. I would have to get a plugin to falsely report my version in order to gain access to some sites.

At one point, I tried to take it upon my self to upgrade my workstation's Firefox. I downloaded the source code, and did the usual ritual to get it configured and compiled. However, about halfway through the compilation, it would come back with memory errors, claiming the compiler (a relatively small, concise program) had ran out of memory in trying to compile the pieces of Firefox together.

Turns out, even though Firefox itself will run on a machine with less than 4GB of RAM, you will still need at least 4GB of RAM (developer.mozilla.org) in order for it to compile correctly. Add to that the fact that Firefox eventually outgrew being able to compile on 32-bit Windows systems (developers.slashdot.org), such that you would need a 64-bit machine with 4GB+ memory in order to even build a 32-bit Firefox. That is to say: Firefox, though perhaps only a "simple" web browser, is a large project, both in scope, breadth, and the number of people involved with its development.

That said, Firefox releases are estimated to weigh in at ~2.9 million lines of source code.

Which is why I laugh when I hear size estimates of HealthCare.Gov to be in the 500 million lines of source code. (www.alexmarchant.com)

This implies to me that that number is one or more of the following:

  • Wrong, or estimated not on the actual lines of code, but underlying system functions not developed by CGI Federal or their subsidiaries.
  • Off by a factor of 10. Or 100.
  • Correct, making HealthCare.Gov one of the largest single-purpose bodies of code in existence.

First I laugh, then I get a little sad. I used to work at a place like CGI Federal doing government contracting. How the government wants to build software is a bad way to build software. Having one big thing that solves all problems is a near-impossible task. Having dozens of different contractors working on one big thing without clear leadership makes it worse. Having a "tech surge" at the end of a project is, in the software engineering world, a well-documented way to kill a project and/or prolong its maintenance in perpetuity.

Much as I like to have software engineering in the news, I'd prefer it to not be like this.

#5533, posted at 2013-10-24 13:07:31 in Indiscernible from Magic