Teaching a man where to fish

June 28, 2010 jeff reynolds

Give a man a fish and he eats for a day. Teach a man to fish and he eats for a lifetime. When it comes to well-known adages that’s amongst my all time favorites, but I wonder how well
it plays amongst professional fishermen?

There’s a community that clearly already knows how to fish, but does that knowledge alone fill their boats with fish on a daily basis?

In reality I had never given a single thought to any of this until reading an article in my local newspaper (yes, an actual newspaper in my hands) that highlighted the plight of local fisherman being able the fish the local waters given the unpredictable factors that govern where the fish may be on any
given day. The article talks about how the captains of local fishing charters have begun using Twitter to tweet the hot spots of the day. No longer are they reliant on 2-day old information that has become staler than last week’s bread. By showing a man where to fish, the local charter fishing industry is acting as a community to help each other out and keep the whole industry strong.

This is another great example of what I think is one of the biggest benefits of belonging to a community: knowledge reuse. I’ve blogged on this theme before, but this example was just too good not to have another go at it. When it comes to software development, the notion of reuse typically conjures up complete module reuse, but I’m here to make the case once again for just being able to reuse the daily tidbits of knowledge that are being gained across an enterprise on a daily basis. Members of software development communities all generally know how to develop software, but when faced with challenges such as new technologies or unfamiliar domains there are still too many people trying to “find the fish” themselves.

Communities have this wonderful built in support system that allow you to at least get near the fish before dropping your hook into the water. Of course they need a way to collect these nuggets of knowledge and make them searchable, even those things may have been thrown onto the scrap heap by others (one man’s junk is another man’s gold).

CollabNet TeamForge can certainly provide the infrastructure for a software development community that will enable this sort of knowledge reuse, but what I really want to do here is raise awareness to the fact that your enterprise contains a wealth of
knowledge in the collective work of everyone in it. You just need to remember to cast your net upon those waters as a first step lest you come up empty.

Previous Article
Refactoring with Fire
Refactoring with Fire

You are a responsible agile developer, practicing TDD and keeping your code  clean through refactoring.  Yo...

Next Article
Using Agile to Scale Agile – Part 2
Using Agile to Scale Agile – Part 2

In my first post in this series, I set the stage for using agile to scale agile development within an organ...