• I've been programming/developing/engineering code for 27 years. At the start of my career, I worked with a gentleman in our development group who was doing some pretty mundane programming tasks. He had a PhD in Chemistry and had drifted into doing software development. Therein lay his problem: he really wasn't motivated enough to keep current and remain curious about the cutting edge technology. When layoff time came, he was one of the first to go.

    I took a good look at that situation and promised myself that I would never let that happen to me. If I ever lost interest in keeping up with emerging software techniques or learning new skills (like database programming), then it was time to change careers. This business requires that you keep your past fresh in your mind and embrace the future.

    I like TDD because it makes you think about what your expectations are of the code before you write it. You just can't dive in: you have to put some thought into it first. I find myself mapping out the various aspects of the problem up front, generally using a tool like MindManager, then I start developing my unit tests and the corresponding software. By the way, the mapping also helps with the CI end of things so I can deliver functional elements on a daily basis that are consumed by QA and other interested parties.

    Thanks for listening...