Along with the rest of the public, I learned this morning that Ford invested $182.2 million in Pivotal, a software consulting firm with offices worldwide.
I am super-excited about this partnership, although I confess I don’t understand the logic for investing in Pivotal as opposed to simply contracting with them.
But Pivotal is one of the leaders in the craft of software development and in Agile product development, and I think we can learn a lot from them that will make Ford a better place to build software.
In particular, I associate Pivotal with three great software engineering practices:
Pair Programming: Everybody at Pivotal works in pairs, even the non-developers. Two people, two monitors, two keyboards, two mice, one computer.
While some people view this as inefficient, I think it’s hyper-efficient. Most people subscribe to the believe that one great software developer is worth more than two average developers, and maybe more than ten average developers.
Well, pairing together two average developers is kind of like creating one great developer, or at least one very good developer.
Even better, the developers learn from each other and leave the pairing session better than they were when they came in.
Test-Driven Development: Test-Driven Development is the art of writing a software test, then writing the production code to pass the test, and then refactoring the code so that it’s clean. Rinse, repeat.
I have found this to be my favorite way of developing software — it makes hard problems much more tractable and bite-sized.
It’s also a great way to guarantee solid test coverage, much more so than “plain old testing”.
Agile Development: Pivotal is the creator of Pivotal Tracker, a service to track project development, milestones, features, and stories.
Having Pivotal Tracker is not, by itself, a replacement for product managers, but it’s a great tool, and cheaper and faster to get started than hiring a product manager.
Even when I’ve worked as a PM, I’ve found Tracker to be a terrific tool for building software products.