Welcome

Visit Family Reads

  • Family Reads: dependably delightful books for kids

    Family Reads is a new site built by my family for your family. It's packed with reviews of the best books, plus ideas and inspiration for making reading a wonderful part of your family life.

The Blogging Church

« 5 Links | Main | Warning: Geek Crossing Ahead »

August 10, 2005

Open

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.

Comments

Brian, you are really hitting home runs with your COFFEE philosophy.

"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."

Never have I read such a succinct yet spot-on analogy! Kudos.

(On preview: no simple HTML in comments?! ;) )

"I've learned that developers are equal parts optimistic and pessimistic."

This statement resonated with me as well; I've observed this tendency even in myself. Seems strange to me, as I usually consider myself optimistic, but occasionally a project is proposed and the first reaction is simply "You want *which* elephant to fit in *which* shoebox?" ;-)

On the "open" point, growing versus buying or building; that's a great point. In the instances here where we have taken that approach, the result has been a big success.

BTW, thanks for the link yesterday!

Thanks for the high praise! This has been very fun to write. The Fast post should be out today.

The comments to this entry are closed.