Wednesday, February 11, 2009

Don't be a Ferengi Programmer!

Finally, someone said it. At least, someone said it within earshot of me:

Oh and Scott Ambler blows too.
- Brian in comment on The Ferengi Programmer
I want to rend my garments, cast away all possessions and devote my life to the teachings of Joel Spolsky and Jeff Atwood after reading The Ferengi Programmer.

Because the monstrous perversions that are frameworks, architectures and principles that guide our business have been dragging us down for decades, and Jeff and Joel speak the truth!

4 comments:

Anonymous said...

A few more comments:

Good programmers know the rules, and when to break them, and, therefore, say "I need no damn rules!".

Crappy programmers see the good programmers saying that and just repeat them, skipping the first 2 steps.


I don't think it's helpful to set everything up as a false dichotomy -- "You either follow these principles to the letter, or ignore them!" That's just not the way the world works, but I guess it makes for more exciting blogs and podcasts.


This post perfectly illustrates the danger (yes Jeff, you *are* the most dangerous blogger on the Internets ;)) of blogging. That is, the SOLID principles are constructed in such a way to minimize many common pitfalls of software development. They help to form a guideline for building robust, easily extensible, and maintainable code that are all but proven to work toward these ends. However, as is usually the case, a blogger can come along, dispense some anecdotal perspective, and effectively nullify everything that makes SOLID, well, solid.

Anonymous said...

"Because the monstrous perversions that are frameworks, architectures and principles that guide our business have been dragging us down for decades"

Now that's just silly. The problem lies "within ourselves". If we blindly adopt any framework, architecture or principle without considering its appropriateness for a particular situation, we will not succeed, no matter how good the framework, architecture or principle is. Good software is never developed by simply following recipes. But it doesn't follow that studying various recipes is the cause of our failures.

Breck Carter said...

Anonymous does prove one point: It is hazardous to go against the accepted wisdom of the day, risky to open one's mouth about the emperor's clothes and lack thereof, lest one be called crappy, dangerous and silly (all at once?), and accused of slinging false dichotomies and anecdotal evidence.

Anonymously, of course. Consider me chastened :)

Anonymous said...

Here are the final words of the article you cite:

"Don't become a Ferengi Programmer. Rules, guidelines, and principles are gems of distilled experience that should be studied and respected. But they're never a substitute for thinking critically about your work."

I agree 100%. But I don't understand how you get from that to:

"the monstrous perversions that are frameworks, architectures and principles that guide our business have been dragging us down for decades"

Should we be using different frameworks, architectures and principles? Which ones? Or should we not use such things at all? I get that you have contempt for "the wisdom of the day" but I don't see you proposing a good alternative.