Summary
Every software vendor needs to convince you that their product is _different_ from all the others. Unfortunately, one of the most common strategies for differentiation is obfuscation.
Advertisement
Consider cell phone companies. Their products and services are virtually identical. How do they convince you to choose? By making those services complex. Through that complexity they can create a pseudo-differentiation. They try to make you believe that their services are different by creating a complex structure and then emphasising one part of that structure.
Consider air travel. Essentially the product is identical. The carriers differentiate by creating a complex structure of incentives, discounts, coupons, awards, etc.
"If you can't dazzle them with brilliance, baffle them with bullshit."
Unfortunately the software industry suffers from the same syndrome. Companies attempt to attract the good will of programmers and software professionals by differentiating their products. That differentiation is, all too often, based upon obfuscation.
This obfuscation often convinces us that the complexity is essential instead of artificial. We are bemused and bewildered into believing that we need the complexity. We need applications servers. We need SOAP. We need MDA. We need Web Services. We need three tiered architecture. The list is endless.
I will grant you that there are some great tools and great frameworks out there. I will grant you that frameworks are often a good choice. However, I reject entirely the notion that we must use frameworks for the majority of our applications, even enterprise level applications.
For example, using a web server is often a smart thing to do if you care creating a web application. Something like apache can be very useful. On the other hand, web servers do not have to be complicated things. Writing your own bare bones web server is a matter of two or three man-days of work. If you don't need all the bells and whistles provided by the differentiation engine of the purveyors, you might consider just writing your own.
For example, middleware engines can be complex, feature-laden beasts. Sometimes you need all that power. Sometimes. Often, though, all you need to do is open a socket and spit a few bytes to another port. Don't let the obfuscation engine befuddle into ignoring this pleasant option.
Remember, the people who sell you things do not want you to think about simplicity. They want to convince you that you need what they have to sell. Caveat Emptor. Very often, you aren't going to need it.
I agree, I have seen this kind of sales babble too often. Now, I don't mean to be rude (I really like your writings on C++, OO, Craftmanship, etc, etc) I just think this is a little funny. Cause I remember one occasion when I heard this kind of babble and that was when you (sorry), in your shiny red XP-jacket, was selling the all-mighty XP-stuff during a SD-conference ;-)
> I agree, I have seen this kind of sales babble too often. > Now, I don't mean to be rude (I really like your writings > on C++, OO, Craftmanship, etc, etc) I just think this is a > little funny. Cause I remember one occasion when I heard > this kind of babble and that was when you (sorry), in your > shiny red XP-jacket, was selling the all-mighty XP-stuff > during a SD-conference ;-)
It sounds like you're talking about something else. Selling simplicity is quite different from selling obfuscation.
> I agree, I have seen this kind of sales babble too often. > Now, I don't mean to be rude (I really like your writings > on C++, OO, Craftmanship, etc, etc) I just think this is a > little funny. Cause I remember one occasion when I heard > this kind of babble and that was when you (sorry), in your > shiny red XP-jacket, was selling the all-mighty XP-stuff > during a SD-conference ;-)
I'm a very strong proponent of XP. I don't think there's any obfuscation involved. XPers aren't trying to differentiate themselves through obfuscation. If anything, they are trying to differentiate themselves through simplification.
It is amazing to me that XP *still* draws such strong reactions from people. Some folks think it's snake-oil and write song parodies about it. Other folks adopt it and get a lot of benefit out of it.
> I agree, I have seen this kind of sales babble too often. > Now, I don't mean to be rude (I really like your writings > on C++, OO, Craftmanship, etc, etc) I just think this is a > little funny. Cause I remember one occasion when I heard > this kind of babble and that was when you (sorry), in your > shiny red XP-jacket, was selling the all-mighty XP-stuff > during a SD-conference ;-)
In a situation where many things are being sold ,I would prefer to buy the simpler and the cheaper one (XP).
> We need three tiered architecture. The list is endless. > I will grant you that there are some great tools and > great frameworks out there. I will grant you that > frameworks are often a good choice.
Obfuscation, and promotion of certain features, can often lead to a system that is more complicated than the process it is trying to simplify, albeit in a different way.
The most important thing that a framework (and I'm including a web-server, such as tomcat, in that rather umbrella term) is to make the task(s) at hand more natural for the people who have to work with it.