Wayne Allen's Weblog
pragmatic agility
-
More nAnt
I was playing with nAnt today to try and auto-generation version/build numbers so I wouldn't have to keep track of them. Luckily (via Google) I came across John Lam's nifty version task. Just an aside for those wanting to use John's task or write your own - the naming convention for task assemblies is "*Tasks.dll", note the plural. If you don't name your task correctly (and place it in the bin folder) nAnt won't recognize it.
-
A New News Aggregator
NewsGator is a great tool for keeping up with all the interesting blogs out there. It is a News Aggregator that integrates into MS Outlook which is my primary communications tool. I was using Aggie - a nice tool in itself, but it didn't fit into my day as seamlessly as NewsGator. Many thanks to Greg Reinacker for creating this great tool.
-
Better Builds
Did a complete deployment in 40 minutes today. World record!
-
Learning nAnt
I've volunteered to be the build master/coordinator the last 2 iterations of our web product. As we've gotten more sophisticated we've pushed some of the functionality off to Windows Services based applications. This has the net affect of quadrupling the deployment headache we've been fighting for the last few months.
To address this headache with a little automation aspirin I turned to nAnt based on tones of positive feedback from others who use it and the little I used Ant in the past. My first order of frustration is the documentation is nearly useless from a beginners perspective. It assumes you know everything and just need to look up the attribute for this or that. Once I figured out what was happening from the source code (the blessings of open source) things began to fall into place fairly quickly. -
Abandoning the blow by blow
I've decided to abandon the day by day account (obviously) since the teams are in a nice flow now. Instead as interesting things or events happen I'll write about them.
-
Iteration #2 - Day #3 Tuesday 1/7/2003
The continious integration issue raised its head again in the form of deployment issues. Simply put our current process stinks, it takes over an hour to create the build and 3-4 hours to deploy to Dev and QA and that is a simple website + database deployment, it doesn't include any other services. The first order of business was to automate the website build process and dedicate a build machine and build master. After fiddling with nAnt for awhile I discovered the devenv.exe command lets you build a solution without haveing to redefine it in nAnt, a big bonus. I then created an installation (deployment?) project for dev and QA. I only created the QA install project to support our current shared Dev/QA web server, that will be changing soon so that Dev and QA have completely seperate environments. The end result is we can build a Dev installer for the website in about 5 minutes now. The tasks remaining are automatically getting the latest source from VSS and labeling the source. I'd like to automate the VS IDE since it has its own ideas about which files belong to a project and how that is integrated into VSS. Eventually I'd love to have automated version control, builds, unit tests, functional tests (FIT) and deployment. We'll see.
-
Iteration #2 - Day #2 Friday 1/3/2003
I had a very interesting conversation with our customer and the QA team today. Most of it centered around communications between the customer, developers and QA. The issue that started the whole conversation was that the customer and a developer discussed a story and agreed to build it a certian way. At the completion of the iteration one of the features was not implemented the way the customer remembers specifying it. However, since there are no formal requirements documents he dosen't have anything to point at to say you missed this. To further complicate matters the omission wasn't noticed until the next iteration had started causing the customer to wonder if he could insist that the omission be corrected even though it wasn't oficially part of the current iteration.
-
Iteration #1 - Day #1 Thursday 1/2/2003
We slipped into our second iteration with ease today. The processes are starting to feel normal for the team and we are getting the daily heartbeat. Soon we should get into the iteration heartbeat as well. We spent some serious time getting our DBA up to speed today (vacations and other tasks have kept him out of the loop until now, something that we should have addressed sooner but didn't). We also have a good discussion on how we are going to incrementally add unit tests to our existing code base, add the necessary helper function to test code that currently requires lots of database setup because of the existing architecture (to be changed as we touch that code some day).
-
Agile Databases
Martin Fowler and Pramod Sadalage have written an article about Evolutionary Database Design. This is a good starting point for all of us trying to do agile processes with database heavy projects. I'm looking forward to seeing the patterns they come up with.
-
Iteration #2 - Day #-1 Tuesday 12/31/2002
Today we had a major deployment issue. It took 2 of us all day to find a strange set of "bugs" that were a result of not getting a couple of stored procedures into our dev and QA builds. Afterwards we all sat down to see how we could avoid this kind of thing in the future, especially for production releases. Here is what we came up with: