in reply to Re^4: Spreadsheets, HTTP::Recorder and interactivity
in thread Spreadsheets, HTTP::Recorder and interactivity

Worse Is Better is not a pancea meant to justify every bad development process. Likewise you're drawing a false dichotomy when you portray this as a discussion of incremental vs waterfall development models - with me as the sclerotic dinosaur who doesn't yet know that he's dead.

The key understanding that Worse Is Better is groping for is that as you change which set of normative standards you use to judge something, what is worse according to one reasonable standard is better in another. Richard Gabriel gropes after this idea by comparing two sets of competing norms that are relevant to software development.

So yes, what is worse by one standard can be better according to another. Know the advantages and disadvantages of the approaches you are thinking of, know your goals, and then react accordingly. You stated the advantages of the "record a macro" approach to development. I've let you know the big disadvantages, and gave an example which is very similar to what happens. The disadvantages basically boil down to it being a fast road to having a big ball of mud. I gave a case where those disadvantages are not a problem, and a case where they are. I think that this is useful knowledge for you to have when you decide where to use this (new to you) development practice.

Given that I've stated the disadvantages of the approach, I probably should spare a couple of words on why it works out that way.

Well-organized systems always have some kind of implicit internal theory of operation. There is some sense about what things are to be found where, why they are there, what kinds of internal divisions to look for and maintain. This theory need not be explicitly stated, but it is understood by the people who are proficient with that system. If you've experienced this, then you know what I'm talking about. If you haven't, then Peter Naur's (who is the "N" in "BNF") excellent essay Programming as Theory Building might help. Unfortunately I don't know of copies on the web, I read it in Agile Software Development.

Note that this organization does not have to be there from the start. There are many ways to emerge an organizational structure iteratively - XP people are big on trying to do that.

However this kind of organization needs a lot of contextual information to find its way into the development process. Similar things go together. Information about why things are done in a particular way circulate among the developers. People spend time thinking about how things should be done.

Opportunities to include that kind of contextual information are sorely missing from the "record a macro" process. You do X then Y. No information is captured about what the person was thinking when they did X. If you think you see something wrong, X should really have been X', there is no context to use to figure that out. The code you get is not factored in any way, shape or form. While the person who recorded the macro may have had plenty of knowledge about what to do with various exceptional conditions, none of that knowledge is captured in the code.

The result is exactly as I said.

As for my comments on people talking about paradigm shifts, I meant that to be useful advice as well. It was criticism, sure, but it was meant as constructive criticism. Let me explain how.

First of all I was doing you the kindness of letting you know how I (and presumably other knowledgable people) are likely to react when you run around waving the words "paradigm shift". Which hopefully will make you a little more careful of those words in the future.

Furthermore I tried to explain why I react that way. That explanation attempted to summarize the most widely missed point in a classic work on the progress of our understanding. If you grasp that point, then you'll understand something key about learning. Perhaps you'll even come to share my skeptical response to people who begin extolling the benefits of joining in the latest "paradigm shift".

I apologize that my lapsing into a form of terse information presentation apparently resulted in your misunderstanding my intentions. All that I can do is clarify what my intentions were and hope that they make sense to you in retrospect.

UPDATE: By schlerotic I meant sclerotic. Fixed.

  • Comment on Re^5: Spreadsheets, HTTP::Recorder and interactivity

Replies are listed 'Best First'.
Re^6: Spreadsheets, HTTP::Recorder and interactivity
by zby (Vicar) on Jul 01, 2004 at 19:50 UTC
    At least my comment had the possitive effect of inducing this detailed analyzis of what is missing in the 'recorded macro' method. So now we have 'better interactivity' contra 'lost context'.

    By the way count the 'paradigm shift' for my lazyness to come with a better word.