Another Blast of Cold Water in the face - "The Build Master" by Vincent Maraia
Eric Garulay, one of the uber cool folks over at Addison-Wesley shot me a copy of The Build Master Microsoft's Software Configuration Management Best Practices by Vincent Maraia ( Build Master Web Site ) . Well, looks like Kim is going to appropriate the book from me so I need to hurry up and get it read, fortunately that's not a problem because it's pretty amazing. Let me step back a second. A while ago, my buddies at http://www.apress.com sent me a book titled Expert .NET Delivery using NAnt and CruiseControl .NET and it was a real eye opener. Until then, my build strategy was about as sophisticated as “Get Latest Version” from Visual Source Safe, flipping the Release bit and compiling. I know, that's lame but to be honest, I kind of shunned the whole delivery thing. When I first started programming I did a lot of OLAP work. I moved into 'real' programming and I pretty much was stuck writing Reports like with a product that blew chunks and creating Wise Install Scripts . So I sort of equated both tasks with being a pledge, except with no chicks and no beer.
Anyway, when I read Expert .NET Delivery it was a real splash of cold water in the face. Mainly because I realized how little time I put into learning about delivery (or even knowing I should have cared). I raved about the book quite a bit b/c it made my life a lot easier. The learning curve of NAnt is pretty small, at least to get started so you can get up and running fast. Of course, few things of value in life come easy, so doing complex things with NAnt are obviously going to take a bit of time to learn. Ditto for Cruise Control .NET . If you are at all interested in learning how to automate your .NET build process, I can't recommend a finer book.
So after realizing how much of a schmuck I was when it came to automating my builds, I learned NAnt somewhat and was still running around dumb and happy. Then i got this book.
First, let me start off by saying that I worked as a lead at a company that didn't believe, (didn't believe isn't the right way to say it, Disdained is better) source control. They believed that if every developer did his job right (yes, his, with one exception women didn't get to say much about anything there) source control wasn't necessary and if you needed source control, you essentially were admitting that you were incompetent and in need of a pay cut. Anyway, they didn't believe in normalization either. So we had a LOT of tables that were 255 fields (the max amount on the particular db we were using) . My product was a Public Utility Billing System but all of our stuff was for courts, police departments and other municipalities. To say it was a nightmare was putting it mildly. Anyway, we had sooo many problems it was hard to begin, but source managment and deployment was the worst. B/c even if you fixed all the bugs, there was about a 40% chance that by the time you copied your files to the build machine, you would copy right over someone elses stuff or someone would copy over yours. it sucked. Kim's company has their act together (they were the major competitor to the company I just spoke of, Kim's company is still going well- not surprisingly, our previous company isn't) but they have their share of Software configuration management woes. So do most companies, right?
Anyway, after reading the first few chapters of this book, I realized I need to spend some serious time (After I get my MCAD - which should be happening next Friday!!!!!!!!!!!!!!!!!!!! FINALLY!!!!!!!!!!!!!!!!!!) learning more about SCM. Vincent obviously knows what he speaks of working for a pretty big company and all. And you know he's real when Jeffrey Richter writes the foreword for you. So this book goes through all of the nuances of how to control your source and perform your builds. It is definitely geared toward larger shops and/or places with bad problems that need fixed. And right off of the bat it seems that you can take many of the suggestions and implement them. Right now I'm working through the stuff in Team System so I'm not that familair with it yet.... but as far as the rest of it goes, it's pure gold. The funny part of it is that I was reading it, went out for a few minutes, came back and Kim had skimmed through it. She then announced “I need this book to take to work.” So I replied jokingly, “Cool, I think Books a Million has a copy of it” which, well, means that one of us needs to go buy another copy of the book and it doesn't matter who it is as long as it's me . Not that Kim's company has any serious problems t hat don't confront everyone, it's just that they sell shrink wrap stuff so when you do that, the problems of SCM are more pronounced.
So far I'm loving everything in it - when I get through the Team System stuff, I'll have more to write...