Friday, March 06, 2009


The reader ini386 compared the ease of use of iNMR with that of the Adobe reader. Such a comparison is impossible. Both products and their histories are under the eyes of every one. You should know them! Today I am trying to expose a few facts that are never been secret, they have been just ignored. In other words: nobody really cares about what I am going to write.
iNMR has arrived to version 3.1.1, with 3.1.3 ready to appear next week, through an incredible number of changes and upgrades. In the beginning, the process could be explained in two ways: either the preliminary versions were not satisfactory or the users were impossible to satisfy (does it make any difference?). Afterwards the process became a little different. Once you know that it's so easy to release a new version, it's impossible to stop. You are happy with the program not because it's perfect, but because you know that any defect you find can be eliminated.
While there is a single author, iNMR is the product of many minds. Two hands only; many minds. The clear separation of roles is a winning strategy. The users are in command: their desiderata are normally satisfied. The exception is when they ask another application or a companion application; these requests are difficult to satisfy. If, instead, they ask for a new functionality or a single modification, they are the kings. The user, however, don't the internal mechanism of the program and can't imagine them. It was relatively easy in the case of SwaN-MR, where the data structures were the same (in RAM, on disc and into the dialogs). It's impossible in the case of iNMR: the data structures (which contain the same data) changes at each level and there's a great work of translation under the surface. For this reason the user/king can't tell to the servant how to do his job.
When it's working time, the servant is the king. He can decide, for example, to spend a week to finish a job that could have been done in a couple of hours. The fun is in trying all the possible variations (and not having a deadline). Misunderstandings are frequent (and funny too): the user asks for a certain function, the programmer understands a different thing. Eventually both things are done (and remain; and the program grows...).
The opposite situation (democracy) is dull and stressing. In this case there are the meetings, boring and time-consuming, where there's always people who need to speak even when they have no (useful) idea to communicate. Often you can also encounter their historical enemies, and the psychodrama is on the show. Now, if you know that a new proposal for a change or for an experiment must be approved by a meeting of this kind, you'll be scared of proposing anything (and you'll never desire to experiment).
Don't get me wrong. I know very well that the concentration of resources (energies, capital, skills, everything) is the road to success. I am convinced that I go nowhere if I am alone. What's difficult (and probably never required) is to find an agreement between the coworkers. That's impossible while you are inventing something new. When a problem has already been studied very well, when several books have already been dedicated to the subject, then it becomes possible to work as a team.
Programming is becoming more and more similar to chemistry. When intermediate structures become important and popular, they are prepared commercially. Teams of programmers work together to create general-purpose libraries. Individual programmers can assemble the ready-made pieces to create the final applications. When the closest intermediate can't be found, we can still copy (recycle) the ideas, as we do in chemistry.
I couldn't have written this post 20 years ago. I was a different man. I used to say to the users: "This is the program. Learn it." And they kept saying: "Have you ever though about adding...? Why don't you imitate that other program...?". We have kept saying the same things over and over until today (and tomorrow). What is changed is that now I pay more attention of what they say, while they understand more of what I am saying. In the past I was happy if I could change their minds. Today I am happy when they have changed mine. It's not a virtue, it's my beard that's becoming grey. When I had a whole life in front of me, I tried to make the world a better place where to spend this apparently unlimited existence. I tried to make people think just like me. Today I enjoy to learn new things, to embrace new ideas. It's not as having another chance in life, it doesn't even come close, but it has a flavor of it.


Post a Comment

<< Home