Wednesday, April 28, 2010

The Zen of Code Reviews

An aspiring flute player comes to a new teacher’s house for her first lesson. The teacher instructs the student to begin playing and then proceeds to attend to household chores – sweeping the floor, doing the dishes, watering the plants, etc. After an hour, the teacher tells the student that the lesson is over. The student asks the teacher how she did. The teacher replies “when I didn’t notice your playing, it was good. When I did notice your playing, it was bad.” That is the essence of a code review.

When the code is flowing, easy to read, easy to follow, and easy to understand, the reviewer does not notice the code at all – the code is good. When the code causes the reviewer to pause, to ponder, to question, to hesitate, when the code is difficult to follow and understand, the code is bad.

Wednesday, April 21, 2010

Forget the Old, We Have the New!

The .NET development community is rife with excitement over the upcoming release of all things 4.0 (ASP.NET, Silverlight, C#, etc), and I cannot argue that technology has certainly made life easier for all of us. The problem is the attitude that the new will fix the problems of the old.

The tools we use certainly help us to be more productive and help to reduce the amount of drudgery of certain coding tasks. Better tools enhance and supplement our development experience, but by themselves do not make better developers. Just as buying a Strat will not imbue you with the power to play like Eric Clapton or eating 12,000 calories a day will not turn you into an Olympic gold medalist, even the best tools in the world will only get you so far. The true value a developer possesses is in the time, effort, energy, and erudition they spend learning their craft, sharpening their skills, and improving themselves.

The deeper our knowledge, the better we will be at riding above the technological changes. We will increase our longevity and durability as professionals. We will be able to decide how to use the technology rather than letting it use us.

Wednesday, April 14, 2010

Code is Not Art

Software developers are as varied in background, education, influences, and motivation as…well, as there are developers. Some come from a purely scientific or engineering background, very calculating and rigid, others from a more philosophic or artistic bent. Still others simply by way of an aptitude in symbolic logic and what I call “distance thinking”. But this melting pot of binary bending brain power does not include the single factor that is essential to art – emotion. That is not to say that we do not have passion or that we are not emotionally invested in our work; it is just not our intent.

Artisans use their art to express an emotion. The curve of a sculpture, a particular shade of color, the timbre of a note, the meter and wording of poetry or prose, are carefully selected in an attempt to wholly communicate, to actualize, to share the artist’s emotion. Code is not written for this purpose. Put simply, code addresses problems.

As developers, we are very much capable of evoking an emotional response from our clients. When a app crashes in production and people cannot work, or orders cannot be placed, and money is being lost – they certainly feel something, and have no qualms about sharing it. We are not artists, but what we do has an affect our clients’ emotional well being and contentment - and that is a very powerful responsibility.

I want my clients to wake up in the morning with butterflies in their stomachs, an excitement that causes them to get ready a little faster. While they are on the morning commute, they are in expectant anticipating of getting to the office to fire up their computers and get working in that new application that is such a pleasure to use and interact with that they are calling friends, family members, and co-workers to share their passion and enthusiasm for it.

Although our intent is not that of the artist, we can still have a profound and lasting emotional impact on our clients. Let us strive to make it a positive one.

Wednesday, April 7, 2010

Upcoming Speaking Engagements

Monday April 12th, 2010
Southeastern Louisiana University
Zen Coding and Zen Testing
Fayard Hall, Room 212
11:45 AM - 1:30 PM

Wednesday April 14th, 2010
University of Louisiana Lafayette
The Association of Information Technology Professionals
Zen Testing
Moody Hall, Room 220
6:00 PM – 7:30 PM