After completing my masters degree, I moved from Poland to Germany and began working as a .NET developer for a company full of experts in … Clarion. The Clarion folks were developing the companys flagship—very successful leasing software—and I was left to do the rest: a bit of interfacing with web services (no way to do it from Clarion at that time), a rewrite of a Pocket PC leasing calculator, a piece of a website for a customer in Switzerland, and so on.
Over time, I was given more and more small software gems to manage. How about introducing a source-control system? I thought. I was uneasy about the zip and store on a share method my old friends were using. Fortunately, my bosses were open-minded, and I was given a free hand. I could do whatever I wanted to make my work life easier. And believe me, there was a lot to change! I started with Visual SourceSafe and a plug-in for Visual Studio. This made a difference, but I didnt stop searching.
It was a time of Agile hype. The popularity of test-driven development was increasing, and my adventure with unit testing began. We moved from Visual SourceSafe to Subversion, and about that time I saw some information about CruiseControl.NET. It was a build server. I thought that was cool: all I had to do was write a build script and check the source into the version-control system, and CruiseControl.NET would detect my changes, pull the source, and perform the build; it would include the tests automatically, deploy the created bits to the test server, and tell me right away if something was wrong. I knew this continuous integration (CI) process would change the way software was developed on my team. All the pains of late consolidation were alleviated: we had a fairly ready, tested piece of software every time we checked in to the source-control system.
I had to learn MSBuild to write my build scripts. The learning curve wasnt too steep; soon, I had a custom-built script for every project we worked on. I was lucky to have virtually no hardware limits from my bosses. I got a fairly old server and created my first build machine. Boy, was it cool to see all the yet another successful build messages from the Windows tray-notification tool.
From day one, I was a fan of and a believer in the CI concept. Im strongly convinced that it was the sole attraction that kept me in the Chaos Developer Club in those days. Now Im running my own company, and one of the most important tools in my repertoire is the CI server.
Back in 2007, I wrote an article about CI for a Polish computer magazine. It resonated in the community and was generally well received. Sometime after that, a friend suggested that the topic was worth more exploration—perhaps in a book. I couldnt have agreed more. I ran the idea by a few Polish publishers, but they all said the topic was too specific for the Polish market. Well, I thought, if the Polish market is too narrow, how about the global market? It was the first time Id considered writing the book in English. I was concerned because English isnt my mother tongue. I knew the language well enough to read just about anything written in English, but would I be able to write in it? With the support of Manning, and Craig as coauthor, I decided to give it a try. You are holding the result!
MARCIN KAWALEROWICZ