Friday, June 10, 2005


The title of this post is a takeoff on the word tomfoolery which means foolish or senseless behavior.  One of the discussion topics for my Software Engineering course concerned building and using your own tools.  One of the students in the discussion, Chris Slater, offered this insight:

I am fairly new to the industry, so I have not developed a set of tools that I carry around.  However, at my new job, I have begun to develop these tools.  The funny thing about this is I created these tools in hopes of standardizing the tool set for our new project; however, once the other developers got a hold of these tools they either: (a) threw them away, or (b) rewrote them to fit their personal preference.

I then asked the class:

Did you ever ask  why they tossed or modified the tools?  This is a common experience and it would be nice to understand the, "not invented by me syndrome."  Is it lack of documentation?  Lack of Support?

I do notice that the use of tools, and reuse in general, follows an inverse square law of distance between parties.  It is much more likely that I will use tools or code from someone in an office nearby.  The probability drops off quickly the greater the distance. 

The only time I saw this not happening was during the mid years of UNIX (1970s-80s) and that was a factor (I think) of excellent documentation, UNIX manual pages, and a strong culture.

I did not expect anyone to respond, but Chris did (this is a paraphrase, it was longer):

Now, I also did some asking around and from what I can tell the two most prevalent reasons why tools such as mine get rewritten are ego or poor documentation.  I have to tell you the latter is one of the bigger problems I see.

What do you think is the reason for not using others tools?  Is it my distance inverse square law of reuse?  Is it poor documentation?  Is it ego?  Is it another reason?  I would appreciate your insight into this tomtoolery.

Thanks and later!



No comments:

Post a Comment