I spend a lot of time working on builds. I've done it for years for many companies and in many environments. Recently I suggested in the WiX-Users list that it would be a good thing to refactor the NAnt/CVS/SourceForge system into a clean MSBuild/TFS/CodePlex system. Naturally my opinion was ripped as always by Bob Arnson who claimed that it was too distruptive and a bad ROI.
Course the interesting thing is WiX hasn't had a weekly build in over a month now and a recent blog by Rob explains why. It seems that the Visual Studio team is providing a developer resource to do some build refactoring and that the entire code baseline is currently unstable.
Very interesting indeed...
Personally I don't understand the concept of `holding off on builds for awhile` though. I've always been tought to build early and build often. As many refactorings that I've done over the years, I don't believe I've ever brought a build down for an entire month and counting.
4 comments:
I'm just going to play devil's... err... MS's advocate here, but given the fact that they only get together to work on it once a week in the evenings, that means it's been four 'work session's of having an unstable build.
That being said, it's still a pretty weak supposition and I personally support your observation. One of the many advantages of source code management tools is they let you work on things concurrently. I'm guessing the only reason they're not doing things in parallel is that they have such limited bandwidth.
There's not really a good reason to stop building whatcha got... Either they've made no significant bugfixes or they're doing some HUGE refactoring effort, but in any case (*cue old saying*) it's all checked into CVS so there's not a lot keeping you from checking it out and building it yourself (which can be a huge P.I.T.A.)
Your very last point was the reason I suggested a refactoring in the first place. Pulling and building the source shouldn't be a P.I.T.A, it should be easy.
There is so much talk about removing dependencies from installs, how about removing ( or consuming/streamlining ) dependencies from the build process?
In the MSBuild/TFS world, I write my builds so that the build box is very stripped down. I don't assume that various SDK's and tools are installed. Basically it's Windows, .NET Framework and TeamBuild Agent. Anything else that is needed gets pulled down by the build process.
The end result is very easy build automation that can pull a tree from source and build it without any fancy footwork to make it happen.
Anyways, just my two cents.
I also agree with you on your point about refactoring the build process.
However, to be fair to the WiX guys, how many of the "many refactorings that [you've] done over the years" were being done in your spare time? ;)
If I bring a build down for more than an hour, I am going to hear about it. ;-)
Post a Comment