.gif)
In need of a new build environment? We were. After running into countless issues with Microsoft Visual Studio Team Systems, we decided to try out some freely available tools out there. After looking at a couple of things out there we decided we would use a couple of different tools to create our software.
For source control, we decided to go back to the tried and true Visual SourceSafe, however this time we would be installing Visual SourceSafe 2005 (8). I was pleasantly surprised that they had actually done some great improvements over the last version I had used since switching to CVS, and then Team Systems. Visual SourceSafe was rather simplistic to set up, and no issues where really encountered. An added feature of choosing SourceSafe, is once we get more funding from the sale of some of our products, we can easily move into the Team Systems world by upgrading our existing SourceSafe source code repository. I was also happy to see they have finally added remote access over HTTP support!
Next we moved on to automating the build process. If you have not used a tool like CruiseControl.net yet, I highly recommend you invest some time and energy in this. It will save you countless hours a week. CruiseControl.net is an automated continuous build environment that uses the Microsoft.net Framework. In our environment we are checking in code at a mad pace with a lot of developers working on one software development project. This system is capable of firing our build scripts automatically as soon as it detects a change (check-in) in SourceSafe. It’s pretty awesome really. If the build is broken, it automatically sends an email to the developers informing them of the bad build. If it is successful, the build team can also optionally be set up to be notified.
So much time was being wasted integrating code it was insane! There had to be another tool out there that would help this process. Building patches was taking a day just to get all the code integrated; it was just a disaster for us! In our environment, users are changing their minds constantly about how our application should function; therefore the need to make massive changes to an application shipping in a few weeks is necessary. I’ve tried playing the “No, we can’t do it” card, but it’s just not possible, and why should it be really! Software is for the users, and if something doesn’t work right, it should be easy enough to change!
Anyway, back to CruiseControl…
We have enabled both successful builds and bad builds for two reasons. Getting a message saying “Build Successful” is awesome to the development team as it promotes positive feedback and tends to motivate the team to check in great quality code. The second reason is related to a failed build. If a build fails, all eyes are on the offender, and the offender tends to undo his checkout quick, and more often than not, resolve his issue as fast as possible so the hot potato is not in his lap! I have been playing with the idea of making the person that breaks a build wear a hat of some sorts, possibly something that says “I Love Java!”, since we are all .net lovers; I think that would be hilarious.
1.Source Control – Visual SourceSafe 2005 (8)
2.Automated Build – CruiseControl.net
So how did we set all these products up to work in unison together? Well, we were having so many problems with our build environment I made it my personal mission to resolve this issue once and for all. After about three nights of very little sleep, countless trips to Starbucks for a double tall half sweet hazelnut non-fat no foam latte, I had it all working.
It was fun to take the gloves off let me tell you! My next post will explain all the dirty details complete with some code! It was insanely hard to find a step by step walk through for what I think is an awesome build environment! And it’s not only awesome now, it will be awesome for years to come as it can be added to very easily! In fact we are already set up to run FXCop on a few of our new projects (we were scared to run it on one of our largest projects that is shipping in a few weeks). Stay tuned and happy coding! And if your bored, here’s an old classic you might want to check out! Who Said Sit Down!!
If you liked this article, please share it on DZone, del.icio.us, StumbleUpon or Digg. I’d appreciate it.



