This is a mantra that really holds true...I'm so enveloped in my current project that I forgot about this for a while. Time to revisit
Design
Design early (duh). Design often? Absolutely! Every decision we make during coding is a design decision. Design continuously.
Development
When do you want to catch an error? Design time, during coding, compile time, or run time? I want to catch them as early as possible. I would recommend pair programming to catch errors during the design and implementation phase, but those two phases are difficult to measure with a metric. That leaves compile time and run time...I choose compile time. As a developer you have choices on how to implement a solution. I try to use strongly typed objects for all development. I've had countless discussions about this with developers who value flexiblity over strongly typed objects. These developers use strings, datasets, and the XmlDom to parse values. They argue that they don't have to change the interface to a function when you need to add another parameter. But I hate getting a Null reference exception at run time. I would prefer to catch an error at compile time...early and often.
Unit Tests
I love unit tests using NUnit. I never thought I would say that, but they provide a sense of security whenever I make a change. I feel uncomfortable when I don't get to have unit tests when I do development.
Continuous Integration
I'll be posting more info later. I'm building a script that will automatically build an NUnit script from a Visual Studio solution. That way you don't have to manage the build settings in two locations. Martin Fowler says it best...I'll let him explain.
Deployment Plan for deployment very early in the process and practice your deployment. Deployment should be repeatable and automated. Do not wait until the last minute and attempt to deploy an application for the first time and except to meet a deadline. Things will go wrong. Firewall ports will not be open. Telecom lines will not be installed. Deploy early and fix the problems long before you reach a hard deadline.
posted @ Saturday, January 15, 2005 7:05 AM