Sunday, July 22, 2007


I'm so tired of Rapid Application Development. It feeds on the natural desire for instant gratification. With some Wizard, I'm sure I can rapidly build a WebForm over some Db table using only a DataGrid some SQL and a few data binding expressions. Ala-kazam!

Ahhh... but what happens next week when I need to twist the DataGrid in ways it won't bend. Uh oh. The magic unravels and is revealed for what it is: mundane lack-luster designer-laden crufty syntax patching over a hard problem with rickety abstractions. Thankfully I know how to solve these problems myself without using wizards.

I find it rather disconcerting that some people cite RAD as the means for transforming their mediocre workforce into a development powerhouse. Well, RAD isn't the only offender here at least. Many other programming practices and technologies have likewise been hailed as counter-examples to Fred Brook's No Silver Bullet. I've yet to see one actually make a sustainable order-of-magnitude leap in productivity however. Instead it appears that actual productivity significantly lags the capacity of available tools and major improvements only occur as each generation of programmers finally succeeds the last.

I think RAD is highly overrated except for demonstrations, mock-ups, and throwaway prototypes (but how often are they really thrown away?). Simply put, RAD optimizes the wrong tasks. The typing is easy so reducing lines of code to opaque graphical squiggles and a multitude of unenlightening property panes is stupid. The programming problems solved by RAD are not especially difficult on their own. The initial development costs are greatly outweighed by subsequent maintenance activities for which RAD tools provide little assistance and may even actively hinder. The mental model proposed by most RAD tools is often not just oversimplified, it is frequently false and misleading: the real system doesn't behave the way the tool made it seem.

In short, I don't believe RAD is a substitute for good training. Why is it so many companies seem to be more eager to purchase shiny new tools than to send their programmers to school? Heck, most RAD tools themselves require a good deal of training to learn to use effectively...

No comments: