24 May 2005

Test before you Guess

Test First, Test Driven Development, TDD, et. al. that represent this now not so new, agile way of developing software... we haven’t jumped into it yet. There is a hurdle and much has been said about this barrier. It can be a hard sell if your audience isn't ready to hear it.

Really, how do you make the case to the people writing the paychecks and putting their necks on the project profitability line that this isn’t some techie geek indulgence? Well:
  • Look, it’s a lot of effort up front, and we would rather be writing code and smoking with the time saved not doing it (up front, that is), rather than devising, cataloging, and coding these tests and associated harnesses and refactoring classes into testable units.

  • When you suits want to get a handle on the state of the project, or its quality (i.e., do we have a handle on WHEN it’s going to be FINISHED and ACCEPTED), we can almost tell you.

  • When (not IF) a change request is accepted and implemented, re-running the tests will tell us if it's broken the rest of the system, without guessing or losing sleep.

The rejection of the myth that we go from requirements-> design-> implementation-> testing-> delivery, in exactly that sequence, is the difference between being effective and failing. TDD sets up your processes to cope with this. Yes, after two weeks using TDD, you may appear way behind, but once the software is feature complete, you won’t be called to the carpet as much for blowing estimates, requirements, QA time, and client agita. That's time well spent, and saved.

The Network is...

Not long ago there was publicity about the computer, the network, and a slick way to glue all this together seamlessly. "The network is the computer" was the mantra, and Java was going to enable our toasters to talk to our iceboxes and stuff like that. Well, this kind of infrastructure, which is dependent on fast and reliable bandwidth, is slowly becoming real, and the snapshot of where we are now shows some value.

For example, storage. I need to store stuff and get to it from anywhere, when I want. Email, passwords, financial records, my favorite bookmarks, whatever. Some of this works pretty well.

But it's chaos.

My email address is... let me think, because I have at least ten of them available to me, and three or four that I use for various things. One for work, one for friends, one for my son's soccer stuff, one to back up my files, one for spammers.

I store things I need at... hmmm, have to catalog all those places where I have megabytes and in a couple cases gigabytes of storage available to me, using ftp, http, vpn, or even CD burner, usb flash drive, or "mp3" hard-disk player.

My latest thoughts are collected in... a notebook, my blog, random documents on hard drives, emails.

No wonder I'm confused.

We are all still learning how to do this. It's a point in the history of our connected world that will be seen as an amusing transition to something much better down the road. We're experimenting, and we're learning and making it better every day. There isn't going to be an end point, but you can fix your own at any time. Just stop learning and trying new things, settle on that set of technologies you're comfortable with, plant your feet and put your hands on your hips and exhale. Frown at how this all seems to be spinning out of control and leaving you bewildered. Good thing the rest of us aren't doing that...

17 May 2005

A Friend's Passing

An old friend with whom I lost touch long ago passed away on Sunday. He was 39, taken by a brain tumor. I can't travel to the funeral tomorrow, but I wanted to let his family know I remember him, so I signed the funeral home guestbook online:

My memories of him are mostly from our childhood days in Martinsville, and they are happy memories. He helped me learn how to do things like ride a motorcycle (and I think of him every time I ride mine), laugh like it was all that mattered, and have the courage to face things I’d rather back away from. I lost touch with him years ago, but I am glad to have known him. My thoughts and prayers are with him and all of you.

Life, I'm reminded yet again (and I really didn't need to be, honest), is way, way too short and not predictable.