24 May 2006

Getting a Clue

A post on TheServerSide.com entitled Java Succumbing to .NET in my Organization this morning had a little clue in it about why I believe that good Object-Oriented systems are relatively hard to come by.

In the post Neil Chaudhuri the author states:
After talking with some of the developers who are in the trenches, most of them are happy to move to .NET. This even includes some who, like myself, have been certified in and built a career on Java. Apparently, Java is just too hard and too intimidating, especially for beginners.
Interesting. It's also quite enlightening. What that tells me is that there is a metric crap-load* of developers out there who simply don't get OO. They prefer the development model of sticking code behind a form, à la VS2003 and its predecessors back to VB 1.0. Perhaps they might get fancy and use helper classes to encapsulate some business logic, but generally I believe that a majority of programmers out there don't have a clue what OO is really about.

This is where there is a very important distinction: there are programmers who can use objects, and programmers who can build OO systems. The former are the ones who like to put 500 lines of code in the onclick event of the OK button on a window. The latter are those who can build practically an entire system with any particular user interface. Of course, there is a spectrum of talent for both of these groups, but I firmly believe that there's a disconnect, a chasm if you will, between them.

I can say that I was in the "uses objects" camp at one point. I first started working with OO languages around 1991. Looking back, it took a few years before I made the leap across that chasm to the "builds OO systems" group. Today, 15 years later, I'm still learning on a daily basis and suspect that I'll continue to do so until I stop coding (which will likely coincide with a cessation of vital signs!).

So, with respect to the post on TheServerSide.com, it's just another symptom that many, many developers don't get object orientation. Given an object, they can write some nice procedural code around it, but they don't understand the abstractions. They believe that OO is simply inheritance for the sake of reuse. They think that patterns are something for making clothes. They believe that domain modelling has something to do with figuring out what the next group of suffixes such as ".com" will be.

They need to get a clue, or Object Oriented Programming with all of its benefits will eventually die.

*Jim Shore also uses this term. I swear I didn't steal it - I've been using it for years!!

15 May 2006

Cool Kent Beck Quote of Bruno Schmidt

In an XP Yahoo group messsage, Kent Beck relayed a paraphrased quote from Bruno Schmidt of Intelliware:

"Bruno pointed out the effects of water. If you have a mountain and water in conflict, bet on the water. The water knows where it is going--downhill. It actively works at getting there. If it gets blocked, though, it doesn't hammer away at the mountain, it flows around. Eventually, the water gets where it is going."

Definitely food for thought, especially with teams or managers that manage by crisis.

13 May 2006

Spiccoli Stories

I was pair-coaching at a client this past week with with Curtis Cooley of RADSoft. The client had a great team room, with whiteboards and flip-chart sized post-its everywhere. They had a section for prioritizing Stories that was divided into 4 levels - Low, Medium, High and Most High.

Curtis mentioned that the top ones were Spiccoli Stories. It only took a fraction of a second to hear a voice from 1982 saying, "Most high, Mr. Hand!"

Henceforth, really important Stories will be dubbed Spiccoli Stories. Thanks Curtis!