This morning a friend pointed out this story about how QuickBooks maker Intuit manages 10 million lines of code.
The punch line is that they manage 10 million lines of code just like you should be managing your code.
Is your business using professional-grade methods and tools?Â Are you sure?
Intuit manages their massive code base using the same professional-grade methods that almost every software business should be using. Perhaps you’d choose different tools, but the process is the key.
What does Intuit process include?
Intuit uses continuous integration.
So can you.
Intuit’s continuous integration (CI) tool is Jenkins, an open-source product not unlike CruiseControl and CruiseControl.NetÂ andÂ numerous others. I use CruiseControl.Net. Use what fits you until it doesn’t.
“But my programmers will never agree to that”, you say. Aside from wondering who runs the place, I suggest you review this discussion onÂ getting developers bought in to continuous integration. You shouldn’t have to work very hard at it, if you’re working with professionals.
Intuit uses source control.
So can you.
Intuit’s source control tool is Perforce, which offers a free version.Â If you want something simpler or less expensive, there are plenty of options – including some very dependable free source management systems. Examples include Git, Mercurial, Kiln (a hosted version of Mercurial), Vault, Subversion and several others. I use Kiln and Vault.
Intuit manages multiple builds.
So can you.
You can do that with aÂ source control tool in conjunction with your CI tool of choice. You could make this more complex, but really, it’s about builds and source management. And you *can* do that.
Why do you need multiple builds? For one, when your tools change. You have production code deployed. It breaks. You need to fix it, and you sure can’t wait until all of your testing is done on the new tool set. Check out the code with the old tool set, fix it, check it in, build it.
You won’t believe how simple this is, especially if you manage multiple toolset releases with source control. Your hair might even grow back.
Intuit automates code analysis and testing.
So can you.
They use CoverityÂ in conjunction withÂ their own in-house tools, but you can start today with FxCop, NDepend, Simian, Gendarme, nAnt, various CI tools, Test Complete and a host of other CI-enabled code analysis and test tools. You can use VMWare‘s WorkstationÂ for WindowsÂ or FusionÂ for Mac (or both, as I do) to manage the OS snapshots and provide the same consistent testbench for each set of tests without manually having to build a test system, run tests, restore and so on.
Avoid the drudgery just like Intuit does, without losing the benefits of greater and more consistent quality.
Stop waiting until you’re “big enough”
If you’re waiting until you’re “big enough”, you’re not only wasting time, but you’re slowing down your ability to get big in the first place. You can’t wait until you have 10 million lines of code to manage to decide to go pro. By that time, you’re either drowning in code and tests and builds or you’re history. Or maybe you’re surviving as a slave to your software.
For every hour that you spend manually building binaries, building installs, testing installs, testing your app and doing other grunt work that your competition uses CI and source control systems to manage, guess what your competition is doing?Â They’re spending their time coding, marketing, working with customers, planning strategy, sleeping and enjoying their families.
The earlier you incorporate professional methods and professional tools in your software business, the earlier you get out of “dig a hole and fill it up” mode.
One of the reasons you might not be doing as well as you’d like is that you’re still using the methods and tools that a little software business uses.
Go pro. Start today.