Automated nightly build - to schedule or not to schedule Team Build
Last week when I was checking out a scheduled build feature of some other product, I remembered that this was a post that I had written earlier but I hadn't posted yet...
Users of Team Build have asked about how to schedule a build at regular intervals automatically using Team Build. The answer was not as pretty as I would have liked to give...you have to use the NT scheduler and plug in the command line build to kick off builds at scheduled intervals.
Let's whizz back a bit to the planning stage of Team Build. Of course, we did originally think of having a build scheduler out of the box, but we had to cut it down due to various reasons including cost, relative priority of the feature and other related stuff. At that time, I personally thought this was a very strange decision, since for me scheduling builds looked like a basic feature for the product. But I must confess, the number of qs that were asked about the lack of this feature was actually much lesser than what I expected would be asked if it were as popular a feature as I imagined. Also, it did not quite generate any rants on the forums about absence of functionality either :)
Now, is the build scheduler a feature that a builder would really want? From one of the reasonings that we discussed in the team: Just giving a bland UI cover for the scheduler may not appeal to builders at all. Typically, builders prefer scripts and command line operations over UI (which is even referred to as an impediment :) So, our current option of having to use the NT scheduler to call the command line build seems to be a decent one instead of the UI. In fact, the command line lends itself very well to scripting. Also, just having a scheduler UI may not be that great a feature for the builder; we need to probably give a supplemental system to manage and queue builds in case of conflicts etc. Khushboo has a related post where she discusses this feature in depth.
Ummm...yes, this does sound fair, albeit I tend to be a bit ambivalent about this. VSTS' unique offering is the power of integration. So, if you had a dialog box that would pop up within VS and you could use it to schedule regular builds, then I would term it useful. After all, the freedom of performing all operations from within VS without ever having to leave the app is one of the most compelling features of Team System. Now, in the same breath I also say that there are more desirable features that could be added to the product - stuff like increasing scalability to make it suitable for bigger teams, continuous integration out of the box etc. But somehow, the build scheduler still seems to appeal to me as a feature that would probably make Team Build feel a bit more complete.
I wonder what the builders out there think...