Monday, October 11, 2004

Proof by analogies

Proof by analogy is fraud. This is true by its very nature and definition. You can always have one just for the sake of argument or for making difficult concepts clear. But we have to stop it there, dragging things anymore forward is foolish, even dangerous. Software development and associated processes have always been the playground of prudish intellectuals. Many "magical methods" were discovered by them, and they declare that they found the "silver bullet", but these methods couldnt stand the test of time.
One such thing has been the waterfall model for software development. The concept draws an analogy from a car manufacturing assembly. The whole process procedes in different phases in a step-by-step manner. You complete one phase, go the next, and never goes back to a previous phase. Nothing could be more wrong than comparing this to the software development process. I dont believe that any , but the most trivial, project has been successfully completed using the waterfall model. Anybody who has done any kinda software development can certify this.
People who draw on the car manufacturing analogy forget that an initial prototype development takes place first. This is iterative. The prototype undergoes many changes before the final model, that the designers are satisfied with, is finalized. Many projects today follows this method and creates a prototype first, but this is mostly superficial. Software development bodeies cannot afford to build applications twice (actually it is not that they cant afford it, it is because they dont want to spend the time and money on building better software).
I am sure that a lot many people would be surprised (and wouldnt agree) if I say that there aint a thing such has waterfall model in software development. But I am convinced that software development is an iterative and incremental process. Each stage of the process is revisited repeatedly during the development and a continous refinement of the endproduct takes place.

4 Comments:

Anonymous Anonymous said...

Firstly, I dont get what "Proof By Analogy" has to do with Iterative Development.
Secondly, saying that Proof By Analogy is flawed by giving an analogy against it is ... well .. ahem .. :-)
Thirdly, for all we know iterative development might also be having flaws - which we aren't aware yet.
Fourthly, a brief history of iterative model can be found in this(PDF) paper written by Craig Larman.

Cheerio,
Binil

10/11/2004 04:17:00 PM  
Blogger PC said...

Firstly, I dont get what "Proof By Analogy" has to do with Iterative Development.
"Proof by analogy is fraud"- this sentence triggered a train of thoughts which I have penned down here. The question is like asking what has the head got to do with the tail (another analogy ;-))?
I would answer that the body connects them.
Secondly, saying that Proof By Analogy is flawed by giving an analogy against it is ... well .. ahem .. :-)
Isnt it ironic ;-)
Thirdly, for all we know iterative development might also be having flaws - which we aren't aware yet.
Yeah, but a flawed method is no substitute for a method whose flaws we are not aware of...
Fourthly, a brief history of iterative model can be found in this(PDF) paper written by Craig Larman
Nice read. 10 pages.

10/11/2004 06:23:00 PM  
Anonymous Anonymous said...

Thirdly, for all we know iterative development might also be having flaws - which we aren't aware yet.
Yeah, but a flawed method is no substitute for a method whose flaws we are not aware of...
Well, my point was that we dont even know for sure that it is flawed. Didn't Planck give corpuscular theorey a second-life? I readily agree that my present thinking is leaning more towards agile methodologies - but I dont think even they can provide the silver-bullet people have been looking for.

Peace,
Binil

10/12/2004 03:06:00 PM  
Blogger Vineeth said...

Let us not get into different software development methodologies right now. You are saying that "Proof by analogy is fraud".

The word "analogy" means "arguing or reasoning from parallel cases". Note the term "parallel cases".

Now lets look at what you have. A car manufacturing unit and a software development unit. Also note the difference between the term "manufacturing" and "development". A car manufacturing company manufactures a "developed" car. The car is developed through many iteration than closely resemble software development. Once the car is developed they just manufacture the whole lot with the techniques proven during development(process). The parallel in software would involve first "developing" the software and then "manufacturing" it with the techniques understood while developing. But then we don't manufacture software :)

So what I was trying to say is that "Proof by analogy" is not fraud if and only if we are dealing with a true "analogy". There are some dedicated research on the concept of "Proof by analogy". You can try to dig up something on this.

10/15/2004 06:53:00 PM  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home