5 ms·
How do you manage to write 10 Million Lines of Code for an accounting software? I haven't had a proper look at it yet, but that seems like overkill. That's an e
by tsahyt 14y ago
How do you manage to write 10 Million Lines of Code for an accounting software? I haven't had a proper look at it yet, but that seems like overkill. That's an entire OpenSolaris worth of lines in an accounting software, just to put this into perspective.
- justincormack 14y agoWell a table driven rules engine for tax is probably a whole programming language with optimizer at a guess... and then it has to generate custom UIs based on the local tax rules. I can imagine this being bloated.
- AndrewDucker 14y agoUK tax law is 11,000 pages long. Once you've converted that into code, badly, it could easily be 100 lines of code per page.
- woobar 14y agoIsn't QuickBooks limited to sales tax/VAT? Intuit sells other products to deal with taxes (Lacerte, TurboTax, QB Payroll).
- whazzmaster 14y agoNo, payroll code must track fed, state, and local tax rules in order to calculate employees' paychecks and payroll taxes due.
- woobar 14y agoBut that's a separate product - QuickBooks Payroll. Also, instruction for payroll deductions are pretty simple[1]. Usually everything you need is on one page. Plus a very short list of exemptions (401(k), HSA, FSA, cafeteria). Nowhere near 11,000 pages of tax code. [1] http://www.suburbancomputer.com/tips_state_tax.php http://www.suburbancomputer.com/tips_state_tax.php
- whazzmaster 14y agoQuickBooks Payroll is an add-on whose code lives side-by-side (and is deployed with) the QuickBooks Desktop code. I am the developer that maintains the integration of the TurboTax tax processing code and engines technology with QuickBooks' accounting and payroll functionality. "Payroll deductions are pretty simple" is not as true when you require nationwide support. The Yonkers residency tax, the Indiana counties payroll tax, etc. are not as simple as getting the employees' states and running calcs. Add in non-tax deductions (401(k), wage garnishments, worker's comp) and you've now found yourself in an interesting world.
- AndrewDucker 14y agoFrom the article: "You wouldn't guess it," Burt says, "but on each platform, all those products come out of a single codebase. The Windows version is about 80,000 source files, 10+ million lines of C++ code plus a little C# for the .NET parts.
- Muzza 14y agoYes, it's a common flaw among those who don't have any experience with this kind of business software to think that anything "purely technical" (like an operating system) must be more complex. I work on a piece of business software and the database layer, interprocess communications layer, etc all pale in comparison to the code dealing with such mundane items as orders and invoices.
- tsahyt 14y agoThat's interesting! Do they pale in actual complexity of the code or in terms of sheer code size?
- Muzza 14y agoBoth! I think the the complexity stems from the fact that an order (or an invoice) is a "human" and "fuzzy" artifact, while a relational database or TCP/IP stack is a mathematical-technical artifact and therefore much more amenable to the computer model. (I don't want to imply that a database isn't complex, but as Intuit shows: modeling accounting on a computer is also pretty damn complex.)