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.'"

72 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.

    4. Re:-2000 Lines Of Code by sapgau · · Score: 2

      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)

      I don't think this is your typical criticism for bloat. Just managing an annual mountain of tax laws and applying them correctly would easily go over thousands of lines. Fine lets use Excel to do that, what is the limit for tabs in a workbook? I bet VB will be a tiny bit slower calculating your tax refund and lets hope it doesn't blow the stack.

    5. Re:-2000 Lines Of Code by ciderbrew · · Score: 4, Interesting

      because tax laws are mental and getting a database to do that would drive it insane. I had to spec out a tiny bit of function with an accountant and the amount of exceptions to the rule made it pointless to have a rule.

    6. Re:-2000 Lines Of Code by slartibartfastatp · · Score: 2

      For instance of a "hardcoded" rule, thinking of web software, I would mention evaluating taxes in the middle of your controller like this

      ... if ( $country=='usa' ) $taxes = $total * 0.17; elseif ( $country == 'uk' ) $taxes = $total * 0.15 + 0.1; ...

      Tax evaluation is probably something that is going to be used in several places in a software, so the example above ensures doom in the future.

      The non-hardcoding solution here, as I see, is something like

      $TaxFactory = new TaxFactory( $country ); $taxes = $TaxFactory->evaluate( $total, ... );

      --
      -- --
    7. Re:-2000 Lines Of Code by MacGyver2210 · · Score: 2

      Excel is a perfectly good spreadsheet program. I don't know what you think they're using it for, exactly, but for storing grids of numbers and applying simple calculations to them repeatedly, it can't be beat. I know it's the 'cool' thing to hate on Microsoft, but they actually have some good accomplishments if you look beyond their modern ventures and current vomiting-up of Windows.

      The sad thing is Excel can probably do every last thing QuickBooks can, likely in about 5% of the code.

      --
      If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
  2. Re:Bah. by russotto · · Score: 4, Funny

    Given that they haven't managed to come out with a native version of Quicken for Mac in over 6 years, I suspect that they kept that code on a napkin... then lost the napkin.

  3. Re:Bah. by JoeMerchant · · Score: 4, Funny

    Real programmers kept their code on punch cards.

    Or toggle patterns written on a napkin.

    FTFY

    My college took out the card punching stations the semester before I took Fortran, though they still had the vacuum drum reader and used it occasionally. And, of course, the CRT terminals were inputting card format - first six characters for line number, 78 characters per line max.

    The fossilized prof told stories of entering assembly op codes, in octal, with rotary dial interfaces.

    Now, get off my... um, I forget, but get off it, NOW!

  4. I thought I disabled ads. by WiiVault · · Score: 3, Insightful

    Oh and as most anybody who uses QB often knows- it does suck quite mighty and gets slower even as PCs get faster. Piles of code isn't always a good thing, sometimes it just means you have a bloated heifer with lazy programming and no real improvements in half a decade or more.

    1. Re:I thought I disabled ads. by PhunkySchtuff · · Score: 3, Interesting

      As a QuickBooks user, who prefers it to MYOB at least, I ask this question in all honesty:

      What else is out there for small businesses that's better than QuickBooks and isn't a cloud-based service?

    2. Re:I thought I disabled ads. by c0lo · · Score: 4, Insightful

      Piles of code is never a good thing

      FTFY.

      for anyone that may need an explanation - does anyone? - either the code is necessary (and, thus, won't be thrown into a pile, but carefully and continuously polished and made as small as possible) or it's not - in this case, it's truly a liability.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    3. Re:I thought I disabled ads. by rueger · · Score: 4, Interesting

      Gnucash is most assuredly not a replacement for Quickbooks, if for no other reason that ta some point you need to interface with a real accountant, and Handing over your files from Quickbooks or Simply Accounting makes that MUCH easier.

    4. Re:I thought I disabled ads. by DogDude · · Score: 2

      Gnucash is to Quickbooks like Notepad is to MS Office. Gnucash has no functionality for any kind of business accounting.

      --
      I don't respond to AC's.
    5. Re:I thought I disabled ads. by afidel · · Score: 5, Informative

      Sage Peachtree is the main competitor in the self hosted small business accounting realm. To be honest if my dad wasn't so opposed to a hosted solution I would have had him go that way as even with 5 users the cost difference once you add up the server and licenses wasn't that great over five years.

      As far as QB goes, it seems to finally be ok. Up until 2007 it still couldn't run as a limited rights user and required short printer names both of which caused me serious pain as I was the IT department for a midsized accounting firm and getting QB running in Citrix was NOT fun. We had premier enterprise support and their answer to the LRU issue was to grant Everyone full rights to HK_Classes_Root (NOT a good idea). I eventually figured out what keys the user needed access to and published the solution online to help others but their spaghetti code was so bad even then that nobody could actually tell what it was doing to give me the right answer.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    6. Re:I thought I disabled ads. by ekimd · · Score: 3, Informative

      Bologna. I've been using Gnucash for years on a sizable business with no problem. I'm also very familiar with QuickBooks (I worked as a staff accountant for several years). Sure, there's a lot that quickbooks can do that Gnucash can't, but there's nothing fundamentally missing from Gnucash to prevent someone from using it for business purposes. If FOSS means anything to you, Gnucash is the only way to go.

      --
      'Impossible' is a word that humans use far too often. -- Seven of Nine
    7. Re:I thought I disabled ads. by TemporalBeing · · Score: 3, Informative

      I disagree. As long as your books are kept correctly, the accountant only needs three things:

      1) Profit and Loss 2) Balance Sheet 3) Depreciation Schedule

      Gnucash does all of those. Print them out. Hand it to your account. And you're done.

      As a small business owner using GnuCash, it's not quite that simple. Accountants like using tools like QuickBooks that they are very familiar with, and they don't want to have to re-enter all the data. So printing out the information is useless for them. You really need to export it to a format that both support.

      Sadly, GnuCash does not support exporting Quicken/QuickBooks formats. It will important them with some extra file filters, but no export capability. My solution is to export to CVS which QuickBooks can import as well. Haven't tried it yet, but my accountant & I will be working through it when the time comes.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    8. Re:I thought I disabled ads. by GNULinuxGuy · · Score: 2

      A quick search reveals payroll can be handled with a 4 step process. Seems pretty simple to me. If it's actually a problem for you it really shouldn't require much additional code to implement something.

      --
      Earn Cash and Prizes, and get free stuff!
  5. Re:Bah. by SuluSulu · · Score: 2

    Real programmers keep their code on punch cards.

    No, real programmers do it by hand.

  6. You mean... by stanlyb · · Score: 4, Insightful

    That paying well to a small team, and treating them like a people, not commodity, is actually worth the money!!!!
    Oh, noooo, no, what about all the HR screams that this is not a sound business???

    1. Re:You mean... by JaredOfEuropa · · Score: 2

      It’s not only about the money; I recently had an interesting discussion on this topic with a few “management by the numbers” suits of a large company. They do see the downside of increased specialization, compartmentalization and commoditization in IT jobs, combined with an overload of process and management. They understand this has a profound impact on speed, quality, job satisfaction and especially agility and the capability to innovate, but besides a cost reduction it brings something else to the table: predictability. In other words: a standard team of corporate IT drones may deliver “X” with good-enough quality, in 8-10 weeks, for $150k. A small, agile team of motivated coders can deliver “X” with great quality, in 5-12 weeks, for $140-170k (depending). The small team might seem the better pick but the suits prefer the more predictable standard team. Easier to plan, to budget for, to outsource, and it is a hell of a lot easier to manage resources than it is to manage (highly individual) people.

      In fact, these managers understood that their approach is likely more expensive in the long run; there are lots of hidden costs in the reduced quality of the work, in talent management (staff turnover and getting the replacement hires up to speed, something I see a lot of in outsourcing partners), loss of agility and the ability to react to changing circumstances... but despite all that, they still prefer the predictable way of doing things.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  7. 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 DogDude · · Score: 2

      I'd be willing to bet a few billion dollars that a competent group of people could implement QB in under a quarter of the lines of code while both improving the quality and making it significantly faster in every regard.

      So then why has nobody come up with a better product, then, Mr. Billionaire?

      --
      I don't respond to AC's.
    2. Re:If it takes 20 million lines of code by Capt.+Skinny · · Score: 4, Insightful

      I'd be willing to bet... that a competent group of people could implement QB in under a quarter of the lines of code

      Agreed. But then the business aspect comes into play: can they market it well enough to displace the market leader? There's plenty of crap out there that makes money despite the fact that better options exist. If it was as easy as just competent programming, someone would have done it already.

    3. Re:If it takes 20 million lines of code by kalpaha · · Score: 3, Insightful

      That may be true of most any software, but in almost no case is it wise to do so. Read: http://www.joelonsoftware.com/articles/fog0000000069.html

    4. 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.

    5. Re:If it takes 20 million lines of code by gmhowell · · Score: 4, Insightful

      I'd be willing to bet a few billion dollars that a competent group of people could implement QB in under a quarter of the lines of code while both improving the quality and making it significantly faster in every regard.

      So then why has nobody come up with a better product, then, Mr. Billionaire?

      He said 'willing', not 'able'.

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
    6. Re:If it takes 20 million lines of code by jmerlin · · Score: 2

      This is more in the spirit of my response. That's the point I meant to make; by today's standards, what they have might be "the wrong thing to do." With the significant advances in in almost area of software engineering platforms, frameworks, libraries, and engineering principles we've had since a majority of the product was designed, my expectation is that it will be significantly smaller, significantly faster, much easier to maintain, and naturally much more stable a product. If I owned QB, I would be spending a few tens of millions refactoring my product with the latest technologies.

      Look at Chrome. It's constantly inundated with the latest and greatest in many areas. It's arguably the best browser that has ever existed. And it pushed Firefox to behave in the same way, which has made it a better browser too, and Google pushes those changes up to V8 and WebKit, which in turn make Safari and anything else that uses WebKit better (like Netflix on non-PC platforms) or anything that uses V8 better (Chrome OS, Node.JS, etc). This modularization and projects sharing dependencies is important and fundamental to this rapid progress and high quality. These are lessons that could be used to make QB significantly better than it is today.

    7. Re:If it takes 20 million lines of code by zippthorne · · Score: 2

      The statement is still correct. If it's not a problem with the computer program, there is something wrong with with the tax code portion of the process if it requires 20 million lines of computer code to calculate. How can you ever be sure you have done them correctly? Even without using a computer.

      Perhaps especially without.. 20 million computer-lines worth of tax code doesn't seem like something that a person would even be able to calculate without a computer.

      Maybe computers are the worst thing to happen to accounting and taxation, because they allow the code to accumulate to preposterous levels without collapsing under its own sheer weight.

      --
      Can you be Even More Awesome?!
    8. Re:If it takes 20 million lines of code by datavirtue · · Score: 2

      I love writing business and tax software. It is the reason I do this shit. Although, my dream is to one day retire and write video games.

      --
      I object to power without constructive purpose. --Spock
    9. Re:If it takes 20 million lines of code by clintp · · Score: 4, Insightful

      disclaimer: I work in the financial software field in a business very similar to Intuit.

      Every time this comes up Slashdot is inundated with lots of comments about how easy this should be. It's not. Get over it.

      The problem with financial software is that because of regulatory constraints and tax laws it's nearly impossible to start from scratch. Tax laws are vast. You just won't believe how vastly, hugely, mind- bogglingly vast they are. I mean, you may think it's complicated to write an operating system, but that's just peanuts to tax law.

      The secondary problems for payroll compliance and tax law is that they change (with alarming frequency). You probably don't know this because you're a single case, but on the federal and state level hundreds of changes happen each quarter for something like payroll taxes. Almost none of them apply to you. But every one of them applies to someone, and it's something you've got to get right. Oh yes, and let's not forget the thousands of cities, counties, and school districts that all have their own compliance.

      In software development, you're left with a few choices in this matter. Pare down the problem, scale up the development, or adopt a progressive model and hope you don't go bankrupt waiting to ship while keeping up with the changes along the way.

      If you pare down the problem you've limited your market share. Deciding that you'll only handle, say, Federal filings means that your customers are left on their own for state compliance. It's a niche, sure, but a really small one. That's how every one of the companies you've heard of doing tax filing or payroll software started. And then you work really hard to make your company more and more relevant and scaling up quickly.

      For option two, development can't scale this large from scratch. Brooks's Law (in this case) means the entire thing will collapse into a black hole of non-shipping code long before you've made it out of Year 1. And it's got to be nearly perfect -- people will tolerate a certain number of bugs in their games, but getting penalties from the IRS will keep your customers from coming back.

      So you want to tackle federal and state taxes (no local) with your launch product? Expect to take at least a couple of years for this, and line up the appropriate capital to keep you in business meanwhile. Plan on using the last 25% of your development and test cycle bringing the code up to compliance with the regulations that have shifted while you were mucking around building the product. (i.e. if you can write and test it in 18 months, expect to ship in 2 years because you'll need the last 6 months just to catch up). That number is from experience, folks. Just try to find a venture capitalist that'll fund this kind of effort into a market that already has a few large players (Microsoft Dynamics, Intuit, Solomon) and dozens of small ones for a product that's just marginally better. Just try.

      "I'm a web developer! I deal with shifting standards all the time!" No, not like this. There are thousands of standards and they move as often as quarterly and they're all published separately by different entities that don't interact at all. Screwing up browser standards in a web application usually means something doesn't display right and you find out right away; doing the same in payroll taxes means large penalties vastly disproportionate to the size of your mistake which you don't hear about until the letter arrives months later.

      "I'll build clever databases!" "Properly designed rule sets will be my silver bullet!". Nope, think again. You're working against an adversarial opponent: politicians. Politicians need to raise taxes without looking like their raising taxes. Their rule sets can have unlimited complexity in their efforts to tax you while not looking like they're taxing you. They do just make shit up. If Congress wants to have an employer payroll tax for companies over 20 employees that have more than

      --
      Get off my lawn.
  8. there's no good competitor by Skynyrd · · Score: 4, Insightful

    My last job involved many, many frustrating hours with QuickBooks - every week. It's a steaming pile of crap. There were so many basic things missing, like decent reporting, that it was a total joke. I could go on for many long rants about how much I hate the software. We wanted to integrate Fishbowl, so we could do some trick inventory manipulation, but it wasn't implemented before I quit. They are still working on it.

    In my new job, I get the daily reports from our 5 stores. QB failures are mentioned daily. I am so happy to be in an entirely different department.

    I really wish there was competition for QB. I think it's a fine platform if you are a very small business with a limited product line. Get complicated, and it fails.

    1. Re:there's no good competitor by DogDude · · Score: 2

      Those two programs are completely and totally unrelated to each other in any way. Their POS system is the codebase from RetailPro that they bought about 10 years ago. Quickbooks is obviously much older, and unrelated.

      --
      I don't respond to AC's.
  9. Re:Bah. by WiiVault · · Score: 4, Insightful

    Mac user or not Quicken like Intuit is a joke of a "pro" software company. When Symantec looks to hire people who can pack more useless lines of CPU hogging code they must hire from these guys. How this company has kept it's niche is beyond me.

  10. You can survive by symbolset · · Score: 5, Informative

    Quicken and Quickbooks is the only application I know of to have survived a full-on Microsoft assault on their business. Microsoft Money has folded. It's something to be proud of, I guess - for now.

    --
    Help stamp out iliturcy.
  11. Maybe the small business standard...but by lilfields · · Score: 4, Insightful

    Quickbooks maybe the industry standard, but it's also a giant jumbled up mess. Our company's quickbooks were down all day due to corrupted files leading to unsequenced invoices. I've never meet someone really happy with Quickbooks...it's just accounting software is really hard to develop, so it doesn't have many strong competitors.

    1. Re:Maybe the small business standard...but by DigiShaman · · Score: 3, Interesting

      This!

      I support Quickbooks as a consultant/sysadmin for SMBs. One of my biggest gripes about QB is that if the client PCs arn't configured correctly, it will attempt to take over the role of sharing out the file while the actual file is still on the server. And it's compounded by the fact Windows XP doesn't route data over the ethernet as a priority over WiFi connection. It can get ugly in the office real quick over "who has the file open". The proper way is to install over the server side hosting agent on the server, and clients arn't configured to host. Although some users get confused over the concept of "hosting" vs "multi-user mode". Bah!!! Curses!

      The other major problem is that Quickbooks accounting administrators are not performing backups. Sure, Windows Backup or Backup Exec may be capturing the file. But that's not the same thing. The transaction log will not flush until after Quickbooks itself is allowed to perform a full backup with verification. Sometimes if you wait too long, the entire damn thing gets corrupted. In fact, one of my clients is facing this very problem. She wants to upgrade to the latest version of QB. But until the data can be repaired (if possible) via special services at Intuit, she has no safe way of converting the file without it either bombing out or causing even more corruption.

      --
      Life is not for the lazy.
    2. Re:Maybe the small business standard...but by ixidor · · Score: 2

      had level 2 QB support tell me that if a user is hosting, it can mess wit the sharing from the server for the rest of the lan. wrote a quick-n-dirty PS script to look for qb hosting on the clients. mind you, it is not as easy as turning off the service on the machines, have to do it from quickbooks on their pc. this spits out who has hosting on, no responce == good. save below into a file with .ps1 extension. and make sure you have "Set-ExecutionPolicy RemoteSigned" $Servers = @("pcname1","pcname2l","pcname3", "pcname5","pcname6") for ($i = 0; $i -le $Servers.length -1; $i++){ $qbService = Get-Service -Name QuickBooksD* -ComputerName $Servers[$i] | where { $_.status -eq 'running' } if ($null -ne $qbService){ write-Host $Servers[$i] echo $qbService}

  12. Re:Was Intuit important in the past or something? by DogDude · · Score: 4, Insightful

    Intuit makes the most widely used accounting software on the planet. They have significance, but you're just clueless.

    --
    I don't respond to AC's.
  13. Hope they handle their code better than customers by dotancohen · · Score: 3, Informative

    The last time that I tried to contact Intuit about Quicken on Linux was a mess:
    http://dotancohen.com/eng/quicken_on_linux.html

    I certainly hope that they handle their code better than they handle their customers.

    --
    It is dangerous to be right when the government is wrong.
  14. Re:Bah. by DogDude · · Score: 3, Informative

    Quickbooks and Quicken are similar only in that they are owned by the same company. They are not related in any other way. It sounds like you're giving too much weight to the "Quick" part of the names.

    --
    I don't respond to AC's.
  15. Re:Was Intuit important in the past or something? by RulerOf · · Score: 3, Funny

    And, even they had some signficance sometime or somewhere, why should I care about how they manage lines of ancient code?

    Because they roll up the money they make on re-selling the same code base year after year, insert the money in their nostrils, then finally, they separate out single lines of code and snort them.

    That's why.

    --
    Boot Windows, Linux, and ESX over the network for free.
  16. No offense, but that doesn't sound like a lot by GoodNewsJimDotCom · · Score: 2

    As a solo developer, working 800 hours, I was able to write ~400,000 lines of debugged and play tested code. So 10 million lines doesn't sound like a lot at all to me. The only thing I experienced in writing so many lines of code is that I found a problem with the Eclipse editor. Once a single file starts going over 30k lines of code, there is type lag. The more code, the more type lag until you can no longer use Eclipse to edit that file, you gotta use Notepad.exe or Scite.exe.

    Link here in case you want to play the game I wrote

    Just out of idle curiosity: I wonder how many lines some of the bigger projects out there have. For example, how many lines of code do some of the Linux OS Kernels have? I'm curious because is 10 million lines actually a really large code base, because it doesn't sound it.

    1. Re:No offense, but that doesn't sound like a lot by godrik · · Score: 2

      Just as a curiosity, why do you have a single file of more than 30K lines? Isn't that way over the top?

    2. Re:No offense, but that doesn't sound like a lot by cecom · · Score: 4, Insightful

      Yeah, right, you wrote, debugged and tested 500 lines per hour for 800 hours... We believe you. Now take your pills, your straitjacket, go back to your room and let the adults talk.

    3. Re:No offense, but that doesn't sound like a lot by CodeBuster · · Score: 5, Funny

      Just as a curiosity, why do you have a single file of more than 30K lines? Isn't that way over the top?

      Not if the entire program is one enormous switch statement in the main() function.

    4. Re:No offense, but that doesn't sound like a lot by Prof.Phreak · · Score: 2

      Managing your own code vs managing 10m of code someone else wrote are very different. Even the most stupidly trivial functionality can take forever to figure out in someone else's code.

      There's also code densitity... I once single handedly `wrote' 250k lines of code in an evening... by writing a generator against Rational Rose files... Draw a box with a name and some attributes, and bam... you got a dozen files of about 10k total lines (ddl, store procs, database helpers, value objects, corba stubs/skeletons, list view gui, detail view gui, edit view guil, all that crap). I seriously doubt any significant portion of that intuit 10m code base is anything other than boilerplate code... but who knows... perhaps 2/3rds of the code base are setter/getter methods generated from some metadata :-D

      --

      "If anything can go wrong, it will." - Murphy

    5. Re:No offense, but that doesn't sound like a lot by PmanAce · · Score: 2

      If your one file has 120k lines to it it screams bad design and discipline. Either you don't know how to design objects, use design patterns and/or refactor code.

      --
      Tired of my customary (Score:1)
    6. Re:No offense, but that doesn't sound like a lot by phantomfive · · Score: 2

      my one file had 120k lines to it. So at low estimates, I guess I wrote, debugged, and tested 100 lines per hour for 800 hours. Is that a good rate? I know my manager says I code more efficiently in 14 hours a week than the four of his old coders did in 40 hours. I don't have much experience working with others to compare myself, no one ever wants to hire me.

      That's not why no one wants to hire you. The reason no one wants to hire you is because you write 120k line files. You suck at programming, no one wants to read that crap. Industry standard tends to be around 1,000 lines per file in C code, and 500 lines per file in Java. I am 99% certain your poor habits show up in your interviews. Learn to write readable code.

      I will tell you though, I would LOVE to give you a job interview, because I you would surely do something entertaining that I would tell stories about long after.

      Incidentally, 100 lines per hour is a fine rate, so you don't have any problem there. Consider dropping it down to 30 lines an hour and spending the extra time thinking how you can organize your code more readably.

      --
      "First they came for the slanderers and i said nothing."
  17. Re:Bah. by shugah · · Score: 5, Funny

    People who own Macs don't understand technical geeky things like numbers and are way too cool for accounting.

    --
    If you aren't part of the solution, then there is good money to be made prolonging the problem
  18. Re:Bah. by gmhowell · · Score: 5, Funny

    People who own Macs don't understand technical geeky things like numbers and are way too cool for accounting.

    Considering we overpay for everything and buy new iShinies every 3-6 months, I'd say keeping track of our finances is even more important for us than for you bottom feeding 99%ers and your 'PCs'.

    --
    Jesus was all right but his disciples were thick and ordinary. -John Lennon
  19. Support is the other question... by bradley13 · · Score: 4, Interesting

    Maybe Intuit does feed their programmers well. Now if they would just hire some decent support people. We used to use a multi-currency version of QuickBooks, and the errors were simply astounding in their stupidity. As one, minor example: it was completely clear that some conversions were handled using floating point numbers, with the inevitable decimal rounding errors. At the end of the year, we had huge currency conversion errors - far beyond what even floating-point errors could explain - and essentially impossible to justify to the tax authorities.

    There were lots of other problems as well. Trying to report errors was like talking to a black hole. The one time we really needed some real-time support, we spent ages on hold, or going around in circles with different people, and wound up getting no useful help at all. In the end, the only solution was to go back to a single-currency system, and deal with currency outside of QuickBooks.

    Still, as bad as our experiences with QuickBooks have been, there's nothing better in the same price category.

    --
    Enjoy life! This is not a dress rehearsal.
  20. Re:Bah. by Spy+Handler · · Score: 2

    they wrote "about 8 million" lines of code to run a theme park on a little island back in the early 90's, so 10 million lines for Quickbooks 2012 seems reasonable.

  21. Re:Bah. by macs4all · · Score: 2

    Given that they haven't managed to come out with a native version of Quicken for Mac in over 6 years, I suspect that they kept that code on a napkin... then lost the napkin.

    Pretty disgusting for (yet) a(nother) company who owes its success to the Apple ][.

    For those of you too young to remember, Quicken started out as an Apple ][ ONLY checkbook program written in (of all things) Pascal.

  22. Re:Bah. by JDG1980 · · Score: 3, Insightful

    Yeah right. Like they can't afford to hire some Objective-C programmers. As I said before, pretty disgusting for a company who owes its very EXISTENCE to Apple.

    It's absurd to say that they owe their very existence to Apple. Does everyone who develops software for Windows "owe their very existence" to Microsoft?

    If they thought they could make a profit by porting their software to OSX, they probably would have done it. But large companies generally don't act for purely sentimental reasons.

  23. The Finite Monkey Theorem States: by pinkushun · · Score: 2

    A monkey hitting keys at random on a keyboard for a finite amount of time will almost surely code a 10 Million LOC program, such as the complete works of Intuit.

    * adaptation of the Infinite monkey theorem

  24. Re:Bah. by gtall · · Score: 4, Funny

    Meds not working like they used to any longer? I know how you feel, try the little blue ones.

  25. Re:Bah. by RaceProUK · · Score: 2

    Does everyone who develops software for Windows "owe their very existence" to Microsoft?

    Pretty much yes, MS can cut off their market whenever they want.

    Apple makes software for Windows. Does that mean Apple owes its existence to Microsoft?

    --
    No colour or religion ever stopped the bullet from a gun
  26. Re:Bah. by hawkinspeter · · Score: 4, Informative

    They probably do owe their continued existence to Microsoft since their 1997 deal ($150 million investment).

    --
    You're a temporary arrangement of matter sliding towards oblivion in a cold, uncaring universe
  27. Re:Bah. by Anonymous Coward · · Score: 2, Insightful

    So this Quicken Essentials for Mac isn't the Quicken you wanted?

    It doesn't even understand that a loan is made up of both interest and principle -- so, no, a product that can't track your finances if you've taken out a loan is NOT providing the "essentials" of financial management.

    Even Intuit knows that which is why they started selling a kit to people who bought the 2007 version of Quicken continue to run it on current OS X versions.

  28. Re:Bah. by Lumpy · · Score: 2, Insightful

    Exactly, there area lot of better choices for real accounting software, QuickBooks is money for dummies. And my wife cringes when the new company she goes in to fix has quickbooks, She knows that it will be all screwed up. Quickbooks will let you fudge the books easily, and most "entrepreneurs" not only know nothing about book keeping and accounting, they are too cheap to hire one right off the bat to make sure everything is kosher. So my wife gets big $$$ to come in and fix their books and accounting system. Typically the "CEO" of the company hates it when told, "you are not in charge of any money decisions anymore, your accountant is. the4y can over rule you at any time. Get used to it."

    They always choose Quickbooks because the crap can be bought off the shelf at Staples or other office supply place. It can be used as a decent accounting package, but it encourages the business owner to engage in bad or even illegal business practices.

    --
    Do not look at laser with remaining good eye.
  29. Re:Bah. by MacGyver2210 · · Score: 2

    No kidding! If it takes 10 million lines for QuickBooks, then it is probably stored in a .txt file using the decimal number ASCII representation of the letters in the code instead of the letter itself.

    I have seen programs that do a hell of a lot more than that does (3D graphics, advanced audio processing, database software) written in fractions of that amount of code. Two million lines should pretty well top out any overcomplicated calculator program, unless it's written for the government. It sounds like they would be well suited by starting from scratch and re-writing it.

    So in summary, their case study should be titled "How NOT to manage program code"

    --
    If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
  30. Re:Bah. by AngryDeuce · · Score: 5, Funny

    Does that mean Apple owes its existence to Microsoft?

    I just felt a great disturbance in the Apple fandom, as if millions of fanboys suddenly cried out in terror and were suddenly silenced.

  31. Re:Bah. by Pope · · Score: 2

    Not really, given Jobs did all he could to undermine & destroy the Apple IIgs (Woz's creation) because it was outselling the unprofitable Macintosh (Jobs' baby), and decided that no more Apple II family systems would be released.

    You mean the IIgs that came out in September 1986, a year after Jobs left Apple? Man, you guys really don't even know the basic facts about Apple.

    --
    It doesn't mean much now, it's built for the future.
  32. Re:Bah. by datavirtue · · Score: 3, Insightful

    No one has made a move into the niche. It is like Windows, Quickbooks is the dominate software and no other company thinks it is worth trying to penetrate. On CNET you can see reviews of their free bait offerings and they are not good--many, many rants. They are ripe for the picking; their software is bloated to hell, expensive, and the users hate it. It is very costly for a small business or start-up to purchase QB and there are no breaks or decent entry points. You pay the QB tax or you don't play, period. On top of this, there is nothing quick and easy about it, and out of the box it makes your company look amateurish.

    --
    I object to power without constructive purpose. --Spock
  33. Re:Bah. by datavirtue · · Score: 2

    Agreed. As my Grandma says, "Quickbooks makes me money." She has owned a bookkeeping/tax business for 40 years. I grew up hating QB. Quicken was awesome in the DOS days.

    --
    I object to power without constructive purpose. --Spock
  34. Re:Bah. by DrXym · · Score: 2

    If only it were a matter of hiring some obj-c programmers. I'd like to see your mental state after have 10 million lines of shit dumped on you with with non-trivial task of porting it to a completely disparate operating system and then maintaining both systems annually. I've ported a large amount of ERP code from OS/2 to Win32 during a 30 day crunch and I was ready to kill somebody by the end of it. I expect porting Quickbooks or Quicken would be close to an 18 month job and would involve 20-30 engineers plus 20 QA staff plus project managers etc at least.

  35. Re:Bah. by XxtraLarGe · · Score: 2

    Well they did finally re-compile Mac Quicken 2007 for x86 (only $15! to upgrade) so I guess they found the napkin. After a year of searching for it.

    It's not an upgrade for $15, it is a stand-alone product that's Mac OS X Lion compatible, no previous version required. You can get the direct download for only $15. I opted for this instead of dumping $50 on Quicken Essentials which from all accounts is inferior in every way. After I upgraded to Mountain Lion this weekend, it was the first app I launched, and I was promptly greeted with an update notification to improve Quicken 2007 performance for Mountain Lion.

    --
    Taking guns away from the 99% gives the 1% 100% of the power.
  36. Re:Bah. by Sebastopol · · Score: 3, Interesting

    What's the alternative? And don't give me some unix freeware crap, I've tried several, they are crap. Microsoft Money was the only viable alternative, but the conversion process sucked ass. I have 18 years of quicken data that I'm not about to lose, and until there's a real alternative for consumers (i.e., $100 price point), I'm not leaving, regardless of the weird interface, and periodic interface bugs. At least the database is rock solid. (runs to knock on some wood)

    --
    https://www.accountkiller.com/removal-requested
  37. Re:Bah. by clodney · · Score: 2

    No kidding! If it takes 10 million lines for QuickBooks, then it is probably stored in a .txt file using the decimal number ASCII representation of the letters in the code instead of the letter itself.

    ...

    So in summary, their case study should be titled "How NOT to manage program code"

    The article is actually very interesting. It is not trying to justify the size of the code base, it is discussing the mechanisms they use to make a code base of that size manageable. I've never tried to manage anything bigger than 750KLOC, but even at that size build times and broken builds were a constant problem. So talking about the techniques that let people productively work on a code base 13x that size is interesting.

  38. Re:Bah. by russotto · · Score: 2

    Supposedly they didn't even do that; they licensed a version of Rosetta from Apple sufficient to run their old version.