Re: Perplexed in a SW group..

From: Robert C. Martin (unclebob_at_objectmentor.com)
Date: 01/25/04


Date: Sat, 24 Jan 2004 17:02:02 -0600


David,

You aren't wrong, but you aren't right either. The fears of the other
folks in the meeting are justifiable. Reuse is not an easy thing to
accomplish, and it can have a powerful impact across many groups.

If the reward structure of your company does not reward collaboration,
then reuse will be virtually impossible to achieve. No one will want
to use anything written by anyone else, because they won't be able to
trust that it will be supported and maintained the way they need it to
be. If I reuse something you wrote, and then start asking you for a
bunch of changes, you might get frustrated and tell me that you don't
have time for all my requests. That leaves me in a pickle. I have to
take on your source code and support it myself.

Reuse is hard. It's not just a matter of good design -- as hard as
that is. Reuse is perverse in that the structures that are easiest to
reuse are not intuitive. To create good reusable software you have to
create it concurrently with two or three of the systems that use it.
This has to be a collaborative effort, involving a fair amount of
refactoring and reworking.

Given all this, it's not surprising that the folks in the meeting were
not excited about the prospect of reuse.

However if you can convert your company's culture to one that fosters
teamwork and rewards collaboration; then the benefits of creating
reusable software can be significant. It takes less time to get
things done. The code is more maintainable and flexible. People can
switch between teams with ease because they all know the basic
structures. In short, software development takes less time, requires
less effort, and the result is higher in quality.

So, the risks are high, and the cost of entry is significant; but the
payoff can be worth it.



Relevant Pages

  • Re: Infos about components and code reuse
    ... class like 'String' gets reused all the time. ... Folks think they need ... "the use of a component-based methodology to ensure that component reuse ... is a standard part of the software development process. ...
    (comp.object)
  • Classes as units of reuse
    ... Hi folks ... I was wondering - are classes the ideal units of reuse in OO? ... I read recently in a paper - classes are instance generators, ...
    (comp.object)
  • Re: Agenda template
    ... I want to pre-fill out the agenda items and be able to reuse ... the list for each meeting ...
    (microsoft.public.sharepoint.portalserver)