Perplexed in a SW group..

From: David Whitney (intrepid_dw_at_hotmail.com)
Date: 01/24/04


Date: 24 Jan 2004 11:59:15 -0800

All:

This is as much a bit of personal catharsis as it is question, but
perhaps some feedback will flow...

I've been working in a particular software development group for about
12 years. I've done a little bit of many things; C++, C, Java, even a
microdot of Ada, VB, assembly (although its been a great while), and I
certainly wouldn't claim to be a genius at any of them, I've had
enough success to have had the chance to write professionally and even
speak at a college ACM group once. I certainly know enough to stay
employed and enjoy a decent amount of professional respect - at least
until the last year or so.

In a meeting the other day in our SW development group, a conversation
like this followed - and its paraphrased some, but the idea is there:

Myself: "As we build our libraries of resuable objects, we're going to
find things like Project X needs some functionality that already
exists in Project Y. You don't need to cut-and-paste, or reinvent the
wheel, just extend or use that existing object."

That comment drew the following:

Another: "I think you're asking for trouble when you make your
programs dependant upon objects in other programs."

Another: "I don't want anyone using my components, because I want to
keep my functionality strictly within my own programs. And I can't
make any changes." (this comment was from someone with a MS in CS).

Another: "If there's anything to be shared, it should be out of *one*
program only, not lots of other programs. Those programs aren't meant
to be shared."

And this discussion ensued with variations on the same theme for a
good 20 minutes. I was nuts. Sharing is bad. Extension and reuse is
bad. Cutting-and-pasting is better. Absolute refusal to consider the
notion of writing components with an eye toward reuse, or coordination
for changes to ensure maintainability. Everyone wants to write their
own code and programs their own way, with minimal accountability. They
want to be able to make changes at will, in the safety of complete
isolation within their own boundary of responsibility.

I was dumbfounded. Absolutely dumbfounded. I couldn't believe what I
considered to be horrendous myopia. My frustration level was
intolerably high. I *thought* to myself that if that discussion had
happened in the midst of an group of OO designers they'd have been
laughed out of the room. And I began to think, good grief, am I wrong?
Is reuse a bad thing, and I just missed the announcement?

Our group had established the basis of a great class hierarchy for
applications we build, and the notion now is to *prohibit* reuse for
the reasons mentioned above. There was *one* person in our group
(fortunately another senior developer) who didn't understand it
either, and was clearly frustrated at the discussion as well.

I don't know how to react, how to think, or how to constructively
participate in this group anymore with this mindset. If I'm wrong,
PLEASE, someone say "hey, wake up, they're right." Is *my* conception
of OO and reuse wrong? Part of me says I need to look for a job in a
different environment, but part of me also says that if I'm even
partially right, I have a chance to fight to get out of some old, bad
ways of thinking into some better ways (even though our organization
is presently a "programming by committee" organization).

I'd appreciate any and all feedback. If I'm the idiot, please say so -
just keep it clean :). If I'm even remotely on the right track, do I
pursue "the good fight" at the expense of my own sanity, or start
looking to work elsewhere? Every instinct in me says we're going down
the wrong path. If I'm the one that's wrong, I need to know it.

Thanks..

ps Please reply to group. Email in this message is long dead.