Slashdot Mirror


How Intuit Manages 10 Million Lines of Code

CowboyRobot writes "Intuit launched QuickBooks in 1992, and it has grown into the best-selling retail software for small-business accounting worldwide. QuickBooks is available on multiple platforms with different feature sets (Pro, Premier, Enterprise), in specialized editions (accounting, contracting, etc.), is available on CD or via subscription, and is offered in localized versions for the U.S., Canada, and the U.K. How they manage so many builds is a case-study for large scale programming. 'The Windows version is about 80,000 source files, 10+ million lines of C++ code plus a little C# for the .NET parts. Plus help files, tax tables, files defining local accounting rules, tax and other government reporting forms, upgrade offers — a lot of files. Every customer gets the full version. Specific feature sets are turned on and off with the license key.' And the lessons are not just technical. 'One surprising lesson is that small teams work, even for very large codebases — especially, Burt says, in sustaining an entrepreneurial, creative culture.'"

6 of 304 comments (clear)

  1. -2000 Lines Of Code by Osgeld · · Score: 5, Insightful

    n early 1982, the Lisa software team was trying to buckle down for the big push to ship the software within the next six months. Some of the managers decided that it would be a good idea to track the progress of each individual engineer in terms of the amount of code that they wrote from week to week. They devised a form that each engineer was required to submit every Friday, which included a field for the number of lines of code that were written that week.

    Bill Atkinson, the author of Quickdraw and the main user interface designer, who was by far the most important Lisa implementor, thought that lines of code was a silly measure of software productivity. He thought his goal was to write as small and fast a program as possible, and that the lines of code metric only encouraged writing sloppy, bloated, broken code.

    He recently was working on optimizing Quickdraw's region calculation machinery, and had completely rewritten the region engine using a simpler, more general algorithm which, after some tweaking, made region operations almost six times faster. As a by-product, the rewrite also saved around 2,000 lines of code.

    He was just putting the finishing touches on the optimization when it was time to fill out the management form for the first time. When he got to the lines of code part, he thought about it for a second, and then wrote in the number: -2000.

    I'm not sure how the managers reacted to that, but I do know that after a couple more weeks, they stopped asking Bill to fill out the form, and he gladly complied.

    http://folklore.org/StoryView.py?story=Negative_2000_Lines_Of_Code.txt

    point is, just cause you can manage it, doesnt mean 10,000,000 lines of code is really something to brag about, especially for something that feels as cheap as quickbooks (though it does a ok job if your accountant cant use excel and must have things that visually represent checks)

    1. Re:-2000 Lines Of Code by Lev13than · · Score: 5, Insightful

      point is, just cause you can manage it, doesnt mean 10,000,000 lines of code is really something to brag about, especially for something that feels as cheap as quickbooks (though it does a ok job if your accountant cant use excel and must have things that visually represent checks)

      If your accountant is using Excel to run your books that means it's time to get a new accountant.

      --
      When you have nothing left to burn you must set yourself on fire
    2. Re:-2000 Lines Of Code by Osgeld · · Score: 5, Insightful

      excel is a tool not a solution

      quickbooks is more of a solution, but like the the 150 piece toolkit for 19.95 at harbor freight, it may do the job just fine, it may snap under the load

    3. Re:-2000 Lines Of Code by Sir_Sri · · Score: 5, Insightful

      doesnt mean 10,000,000 lines of code is really something to brag about

      No, but managing 10 million lines of code successfully is something to brag about.

      However it got there, it's there now, and trying to figure out what to do with it, in a way that gets customers their product, teams their appropriate access, doesn't break every time a new intern looks at it, and can track changes back to individual employees so you can evaluate them somehow.

      I'm not saying this isn't a problem other people haven't solved - certainly they have, but different solutions may offer some pieces of unique insights.

  2. If it takes 20 million lines of code by codepunk · · Score: 5, Insightful

    If it takes 20 million lines of code to do ones taxes there is simply something very wrong with the process.

    --


    Got Code?
    1. Re:If it takes 20 million lines of code by oatworm · · Score: 5, Insightful

      It's not terribly difficult from a technical perspective, but there are a few caveats to keep in mind:
      - Everybody and their mother (at least in accounting-related clerical work) knows Quickbooks. Whatever you come up with would have to be similar enough to justify the training expense.
      - Intuit really does spend a lot of effort keeping track of various local, state, and federal regulations, at least in the US, and applying them to their software. That's not cheap or easy.
      - Since Quickbooks is something of an "industry standard", it's possible to share Quickbooks files among necessary individuals (outsourced accountants and the like) and know that the books are getting from point A to point B. Not everyone has a copy of, say, Peachtree lying around, to say nothing about GnuCash or anything else.
      - Accounting is generally not something that businesses start "experimenting" with. Predictable and supported are what they're looking for. Given a choice between a technically superior product from a company that just received angel capital last week and a predictably wrong product supported by a company that's been selling and supporting accounting software for 30 years, most businesses will go the safe route and buy the technically weaker package. It's actually pretty rational if you think about it; switching accounting packages is not trivial by any stretch of the imagination, so picking the product from the company with proven staying power makes a lot of sense.

      Personally, I think Quickbooks is kind of the Microsoft Access of the accounting world - oh yes, there are better, far more stable tools out there, but too many people know Access and its quirks for all but one or two of them to catch on in any meaningful sense. That's inertia for you.