Saturday, January 10, 2009

Learning and Living

"To live is to learn."

"To read is to live."

Or maybe it is "Living is living" and "I am".

The last three months have meant some changes to how I work:

I now use source control for code related work: Subversion with TortoiseSVN in Windows Explorer and ankhsvn in Visual Studio. This has given me a feeling of greater security that my work is properly backed up, more speed in development since I don't have to manage (copy) revisions manually. Any new experiment I do can only destroy the changes I've made since the last time I committed changes to source control. Therefore I commit changes every time a piece of a task is completed. In addition to the code change itself, to each commit I add a short description of what has changed. This means that I get an overview of what has changed on a given project by reading the repository log.

Joel Spolsky says, among other things, that Daily Builds Are Your Friend. By setting up a build server I now have a system that, for most of the projects, will compile the code and test it. By using CruiseControl.NET I automatically get feedback when commited code breaks a build.

An extra benefit from the above is that I have learned how to write build scripts using NAnt. So now, after making some small code change, I can run a bat file and the solution will be compiled and the installers packaged for the consultants or for grabbing via ftp from a remote server.

This week I set up BugTracker.NET which seems to fulfil our requirements about a system that we can use internally for tracking bugs, issues, and requests from customers. I appreciate the work of Corey Trager and other people who release their private work for public use.

So now I'm about half-way through The Joel Test, and I don't know where this will end...

2 comments:

Slava Imeshev said...

Ole,

You might also look at our Parabuild. It gives you successful daily builds even if the head of the codebase is broken.

Ole Lynge Sørensen said...

@Slava: Thanks for the tip. I might look into that.