The Joel Test:
3. Do you make daily builds?
The Big Swinging Developer Test:
3. Can you recommend at least 2 pieces of software for your team to create an automated daily build?
As mentioned in the previous post, the less code you write for your infrastructure, the more valuable you are. Any time you can use off the shelf or open source software, it means that you have more time to focus on your specialty. Automated build software is a great example of this because it’s one of those problems where the first 80% or so is really easy: It’s a scheduler, some configuration, and a way to notify you about how things went. The last 20% – things like variables, macros, conditionals, monitoring, and the million other things that we’ve come to expect – can eat up an incredible amount of time an effort.
The good news is that there are a lot of great build systems out there. The challenge is in knowing which to choose and then implementing it quickly and correctly. This is where experience really starts to pay off. If you’ve had to implement one of these systems in the past, you’re ahead of the game. Even if you’ve used one that you really like, you’re in pretty good shape.
The better news is that getting experience with a build system is really easy: automate your current project. Try a couple of different systems for bonus points. Not only will this put you in the valuable position of being able to improve everyone’s productivity, it’ll also teach you a lot about your project’s structure (or lack thereof). The types of problems that you encounter when automating a build will cause you to think differently about all of your future projects. As you’ve probably figured out by now, thinking differently is one of the cornerstone’s of being a Big Swinging Developer.