Wednesday, January 03, 2007

The Consistent Gardener

How is it that some gardens flourish year after year, full of lush vegetation and bursting with colorful flowers, while others seemingly strain to make it through a single season?

I've always found it interesting that those strangled, dying bunches of vegetable matter can also be some of the most-tended to plots of land around. How is it that someone can pour SO much energy into something that clearly is just not going to make it?

One word: consistency

People typically say the root of the problem is inexperience, or lack of foresight, or possibly even flat-out stupidty. However, when you really drill down to the true reason for a broken green thumb, it's a lack of consistency. A bug popped up because you took a shortcut in that presentation template. You're seeing odd behavior because you didn't perform an assertion on the response data from a remote invocation. Someone on your team caused a Cartesian product to be calculated because they tried a new type of join syntax. And so on...

Consistency means applying the same amount of energy to the care of each individual plant. It means pouring the same amount of water, pulling the same amount of weeds per square foot, and harvesting your crops at the same level of ripeness. Consistency means having a disciplined mind.

Failed gardens aren't the result of a lack of intelligence, or a lack of a growth plan, or a lack of care. They are the result of an imbalance in the amount of energy expended on any one component of the system. They are the result of a lack of consistency, which is itself a result of a lack of discipline.

An undisciplined gardener will never succeed because their inconsistent behavior creates an environment that is rife with uncertainty and stress, and plants can't stand stress.

So how are your plants looking right now?

Monday, January 01, 2007

All good things come to those who wait, Grasshoppah...

Organic Lesson #1:
Have patience.

Taking the Organic approach to building applications for an enterprise means slowing down, breathing in and out, and looking at the big picture. This isn't to say that Organic application development can't happen quickly -- it just means that one thinks before one does.

What exactly does that mean? It means that an Organic developer doesn't comment her code -- she codes her comments. An Organic developer doesn't build an application -- he applies a solution. Organic developers don't *tell* objects to do anything -- they *ask*.

There's a difference.

Organic application development is an attitude. It's an approach. It's a way of looking at problems without frustration, or rush, or trial and error, or blindfolds, or dartboards, or anything that drives people positively nutty when it comes to software development. And it's most definitely NOT new.

Organic is smooth and efficient. It's elegant and effective. It's that patient, relaxed feeling you get when you're the only one in the garden in the middle of the day, watering the plants, tending to the weeds, turning the soil over in your hands, knowing that you've got a great bed of soil, the sun is high in the sky, and the only bugs you've got are the good ones you've put in place to keep the bad ones out.

Organic is ahhhh, plain and simple.

Until next time, Grasshoppah...