Reuse Revisited
I’ve already written about reuse issues here. I’d now like to revisit this problem, and see if I can add something to the existing debate.
To reiterate my previous stance, reusing is a peculiar phenomenon reserved mostly for software development. In pretty much all other areas of human activity people do not get stuck in the reuse conundrum, but software developers for some reason do.
For example, if I use a nail to affix a board to the post, and then use another nail to affix that board even more strongly, am I reusing the second nail?
Obviously not. And yet if I use a text field on my form to collect user’s name, and then use another text field on the same form to collect user’s address, I am expected to realize that I’m reusing that object.
But why? What’s so different between these two objects (between the nail and the text field)? How come one object (i.e. nail) never gets reused (unless, of course, we were to pull it out of the board and nail it in a different location), and another object (i.e. a text field) always gets reused, even though we did not pull it from its original position and place it somewhere else?
Reinventing the Wheel
People talk a lot about ‘do not reinvent the wheel’. The wheel has already been invented. True, but what does that have to do with reusability? If I’m building a car, and I use a wheel and attach it to the car’s front left side, and then use another wheel and attach it to the car’s front right side, and so on, am I reusing the wheel? No, not really.
And if I’m building an HTML form, and use a text field to collect the user’s name, and then use another text field to collect user’s address, am I reusing the text field? Surprisingly, most software developers would say ‘yes’.
I am mystified by this mentality.
How about you?