Wednesday, July 20, 2005

Are design tools necessary?

I recall when Maple and similar products were introduced. Suddenly, everyone could teach calculus. Well, all an instructor had to accomplish was to show the students how to enter expressions into the computer. Soon our math professors (as opposed to the education folks) adopted the practice under the influence of student evaluations. I felt guilty for installing Maple on our department mainframe.

My intent was to familiarize the students with a tool. Once a student has a good grasp of the concepts and techniques, the use of tools saves a lot of time. We finally found ways to use such tools in presentation as a helper to create mental images for the notions of differentiation and integration. That was quite rewarding and helped me get over the guilt.

Now I am finding the Internet flooded with all forms of design tools for software development. Some job postings require familiarity with such tools as a condition for employment. This is like posting a job for teaching calculus with the requirement that the instructor must be able to use Maple, while a college degree is only desirable.

Design tools could be useful for teaching purposes. However, they are not quite the equivalent of Maple for calculus. The purpose of using a computational tool is to avoid doing the tedious computations. What is gained from using a tool, and then performing the computations manually?

Blind beliefs about software development, reminds me of “King’s new clothes”. Unless you agree with the speaker, you are considered a novice. I suppose if I had spent a substantial part of my life learning how to use a tool, I am not going to tell anyone that I have wasted my time. Instead, I would pretend that they are not mature enough to appreciate the value of the tool.

I remember the days that specification languages were hot. In 1991 I had a discussion with a computer scientist, and I lost the battle at the time. I mentioned, if a specification language needs to be mapped to a programming language, the maintenance for keeping the work done in two languages in synch is an unnecessary overhead. As a student (for second Ph.D.) I had to give up before I was thrown out of college.

However, a specification language provided a logical view of the problem being solved. At times the specifications were helpful in arriving at a correct solution for an algorithm. But the overhead of learning and using a specification language was not worth the small gains for small programs. Analogously, a design tool may be of some value in the initial stages of the design for those who have had the time to learn it. However, pencil and paper can accomplish more with no overhead.

I doubt this article can stand up to the propaganda of the large number of businesses benefiting from “King’s new clothes”. So, once again I am going to lose the battle. Or perhaps it remains to be seen. After all, now I know that I was right about specification languages.

Labels: ,