At my college, everyone had
to take a class called Senior Seminar during their senior year to
graduate. This was a liberal arts course
that really just got in the way of most of us at our technical university, but
it had to be done. The interesting part about
it was that depending upon which of the dozen or so professors that taught it
you had, it was either a total blow off class or something that took some real
effort to get through. If you wanted the
former (which I’ll certainly admit to), then you wanted to get into one of
Professor Goodman’s* classes. I was fortunate enough to be privy to this
information and was able to land a spot in one of his classes. The information proved to be accurate and I
was able to devote my efforts to more meaningful endeavors of the day while
hearing others complain about the effort required for the class.
Knowledge. It’s a great thing when you have it at the
exact point in time you need it. In many
cases we’ve learned this and try to leverage it whenever we can. You ask your new neighbors when you move into
a new house for a dry cleaning recommendation, you ask the concierge at the
hotel for a dinner recommendation, or you thoroughly research a product on-line,
including product reviews from other owners, before making a purchase.
When it comes to
enterprise-wide reuse initiatives, I think most software development shops
immediately start to focus on ways to reuse executable pieces of software. Don’t get me wrong, this is certainly a reuse
goal that makes a lot of sense and should be planned for and supported through
tooling. But what I think quickly gets
lost are the much more prevalent pieces of knowledge reuse that could be going
on if people were looking for them and had a proper infrastructure to make it happen. Little things like being able to find
expertise in a certain subject within the organization or finding that someone
else has already failed with a new piece of technology that is sure to doom
you, too, are just as valuable to the overall productivity of a development
organization as is having the perfect reusable executable you can use. Let the known (to others) hack of a dry
cleaner ruin your favorite suit and this lesson hits all too close to home.
Achieving knowledge reuse is
one of the real strengths of a community.
This is supported through the social infrastructure that exists in the
“real world”. An enterprise-wide
software development community also needs infrastructure support to facilitate
knowledge reuse. A platform such as
CollabNet TeamForge certainly provides this infrastructure support from a tooling
perspective, but you also need that thriving community around that tooling to
really create an atmosphere where members of the community have enough trust in
it to look to pull from its collective knowledge base as a routine course of
action during their development activities.
So when you consider reuse
initiatives at your own organization, please don’t let the daily opportunities for
knowledge reuse get overshadowed by other types of reuse that might get more
press, fanfare, or budget in your organization.
Work toward creating opportunities for this kind of reuse and leverage
them as much as you can. Professor
Goodman wouldn’t want it any other way.
* No, that wasn’t his real
name, but I can’t recall his real name.
That was way too long ago. Even
if I could, I wouldn’t use it here. Besides,
I needed a title for this blog post.