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.'"
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)
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.
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!
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???
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.
If it takes 20 million lines of code to do ones taxes there is simply something very wrong with the process.
Got Code?
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.
Three Squirrels
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
Meds not working like they used to any longer? I know how you feel, try the little blue ones.
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
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.