Brian Bailey Preface to the Revised Edition


The second element of COFFEE Development is Open. The heart of open development is participating in the software community by using, supporting, and contributing shared code.

Looking through the most simplistic lens possible, there are three basic approaches to development: buy it, build it, and grow it.

Buy It

Let's say you're tasked with adding an online chat application to your site. The first group will immediately look for an enterprise chat solution with a price tag in the thousands, after all, you get what you pay for. The software may even require a consultant to configure and install the application.

Build It

The second group looks down on the first group. "A chat application? How hard can that be? My guess is two weeks to write it and a week to test." Here's a basic rule of developing an application: the final feature set will be at least 2x what you first imagined. This is not due to the dreaded feature creep (which can explode the feature set even more), but simply due to the hundreds of nasty and inconvenient details that remain long after the big picture has faded from the whiteboard.

I've learned that developers are equal parts optimistic and pessimistic. A leader's job is to discern which they are being at this exact moment and adjust accordingly.

Grow It

The third group approaches the problem with humility. They know that more than likely a solution already exists - a solution that is free and available to all. It just needs to be cultivated.

"Let's find the best open source chat solution available, learn from the successes and failures of that project, and then build on top of it."

By participating in open source development, you literally get to build on the shoulders of giants. You can learn from the code and get generous help from the community. And then, when you share your own contribution, you play a valuable role in leaving something behind for the next team who wants to grow software.