Back to Dave Hoover

Frogs, Pain and Prevalence June 13, 2003

I attend a lunchtime support group every Wednesday. It isn't your ordinary support group, it's quite informal, and quite small, and quite...um...geeky. Roman Zabicki and I have been supporting each other for the past 10 months over Giordano's pizza and bottomless root beer.

We do more than talk about our problems. We learn programming languages like Ruby and Lisp. We discuss refactoring, patterns, agile software development, swing dancing, juggling, and my kids. But it's sharing our common frustrations in our respective software development organizations that I value most. And it is through these gripe sessions that we have come to realize that what we had intended as a study group on Joshua Kerievsky's Refactoring to Patterns has unexpectedly evolved into some sort of agile support group.

A central theme of our time together has been pain. We have discovered that the vast majority of the issues we have with our respective organizations can be boiled down to our relatively low pain thresholds. A few indicators of a low pain threshold:

Granted, we are both relatively young and still early in our software development careers. Many people around us have had time to build up a tolerance to the pain they might have felt in their younger years. But it is through our pain that Roman and I have discovered what it is really going on. The pot is boiling, and we're the late-coming frogs.

This low pain threshold is something that Roman and I have learned to pay attention to. As I read Martin Fowler's excellent Patterns of Enterprise Application Architecture, I am increasingly awestruck by the insane amounts of time, money and intelligence that have been thrown at the problem of mapping relational databases to object-oriented domain models. I often find myself wondering why object-oriented databases are not more mainstream. I fantasize over the amount of time that they could save. Nearly every frog in the industry has simmered in the seductive, scorching water of object-relational mapping. But is this pain necessary?

Consider...

The smell of boiled frog innards has permeated our industry so deeply that we no longer recognize it. It is relished by some as the nostalgic aroma of the enterprise, providing an opportunity to show off their butterfly stroke across the bubbling water.

I'm inexperienced and naive and idealistic, and to a fault, I crave change. I'm always looking for a more comfortable pot to chill in. Many of us have felt the pain of O/R mapping but couldn't see any cooler pots to jump to. We decided that it was better to sit in the pot than jump in the fire. But after toying around with Prevayler for an hour, I don't understand why more projects don't use it. It seems almost impossible for Prevayler not to improve time-to-market and agility.

Of course, I've only developed one tiny, contrived persistent Java application with it, so perhaps there are aspects that keep it out of the spotlight. I'll need to experience it in a real project before I commit to a jump, but until then, I'm going to scream like a lobster.


Follow up:
Back to Dave Hoover