Continuous Integration: Improving Software Quality and Reducing Risk by Paul Duvall, Steve Matyas, and Andrew Glover (Addison-Wesley)
(left) Paul Duvall and Steve Matyas
Reviewed by Roland Racko
The 72 hours before the system goes live are all about integration, making sure everything really works. Every company does some kind of integration, whether it is "very disciplined" or "shake and bake." But, sadly, many shops still consider frequent integration to mean "not more often than we feel like we have to". Continuous Integration by Paul Duval, Steve Matyas, and Andrew Glover builds a case for moving a team development process towards integrating "more frequently than whatever has been the norm" and shows how to automate a lot of it. The book takes the position that people avoid more frequent integration runs because they don't know about the automation assists that are available. It focuses on setting up "integration servers" and describes a process for shepherding newly created code into a kind of automated build and integrate factory. Besides examining the hardware assists, however, Continuous Integration also explores the team process details that can make a difference. For example, it examines the pros and cons of the various ways of providing feedback about system integration progress: email, jumbo monitors, SMS text message, etc. If your 72 pre-live hours need help, this is your book.
Head First SQL Your Brain on SQL--A Learner's Guide by Lynn Beighley (O'Reilly Media)
Reviewed by Mike Riley
O'Reilly's "Head First" series provides a cornucopia of fundamental knowledge about a particular technology wrapped in a creative package with occasional levity to enliven otherwise dry learning material. Applying this approach in Head First SQL works not only because of the orientation of the subject matter but also because author Lynn Beighley delivers the material in a sincere, infectious way. Of all the technical books that have arrived on my doorstep, this was the first that my teenage kids asked to read after I was finished reviewing it.
The Rails Way by Obie Fernandez (Addison-Wesley Professional)
Reviewed by Hugh Bawtree
The Rails Way by Obie Fernandez is one of the first Ruby books for advanced Ruby developers. It dives right into the deep topics: the internals of the Controller, in-depth explanation of ActiveRecord, AR Associations and AR Validations, and how Rails supports the REST paradigm. It is a very full 850 pages. This is a great book for intermediate to advanced Rails developers. The writing has a relaxed style that aids the understanding of complex subjects. The Rails Way is perfect for developers who want to understand the Rails internals and the reasons behind the Rails design decisions.
xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros (Addison-Wesley Professional)
Reviewed by Rick Wayne
Unit testing is hardly news, but simply writing a ton of tests guarantees you no bliss. Gerard Meszaros's xUnit Test Patterns distills and codifies the crucial meta-knowledge to take us to the next level. Why do good tests go bad, and how do you fix them--it's as simple and groundbreaking as that. Smells and antipatterns arise in tests that cripple their maintainability. xUnit Test Patterns exhaustively describes those pathologies and provides the prescription in the catalog format familiar since 1994. But fear not - every motivation and pattern includes at least one source-code example and the explanations are couched in clear, direct language. If you're ready to promote your test code to the same level of care and craftsmanship that you devote to production systems, grab a copy of xUnit Test Patterns and get cracking.
Change and Configuration Management
Reviewed by Jon Kurz
Atlassian's FishEye demonstrates what a being a Jolt winner is all about. This tool shows an innovative approach to managing source code. Although FishEye is not a source control repository, it integrates with other source control repositories to manage, monitor, and maintain source code at a very deep level with several powerful features. It can track changes in your code and send alerts when certain events happen. It allows you to select the branch and version of a file, and look at the changes that took place, along with the names of the users who made the changes. Navigation is straightforward, with breadcrumb-style links and an easy-to-use search feature. Using a SQL-like language, FishEye's powerful search capability allows you to search specific source control directories, look for files that match a pattern, or were modified by a given user. FishEye also facilitates the often painful process of code review with embedded comments capability so that you can place comments right on the line being commented on. FishEye licensing is based on number of users. Academic licensing is half the price of commercial, and community and open source licensing are free for certain types of organizations. Any team that is serious about managing their source code should take a serious look at FishEye. With an open API, integration with multiple source control systems, and a breadth and depth of features, FishEye is the one to watch.
Reviewed by Jon Kurz
SourceGear's Diffmerge is a tool for every developer. Being cross-platform means that you won't have to worry about different tools for different platforms. When you're comparing files with different line-end types, Diffmerge has that covered as well. It shows differences visually and allows in-line editing and merging. What is particularly useful is that it keeps a view which shows the files in their original state, while you are editing and merging, just in case you want to see what things looked like prior to modifications. If you need to browse and compare files in Windows, it has built-in integration with File Explorer and can integrate with many source control systems. Diffmerge isn't limited to files, however; it can also compare folders. I found this to be a great tool to have in my toolbox. The interface is clean and provides a wide range of configuration features, while at the same time providing an unobstructed approach to the very common task of comparing code.
Reviewed by Jon Kurz
Xoreax's IncrediBuild accomplishes what few other build management systems do - leverage grid technology to maximize and maintain your build environment. One of the big challenges to build processing has to do with consistency, and IncrediBuild uses its virtualization technology to ensure that remote builds are run as if they were the requesting machine. IncrediBuild eliminates the need for "yet another build tool" by enhancing existing build tools. For VisualStudio users, IncrediBuild integrates directly into VisualStudio and displays build progress so there is no need to open a separate tool to view status. Not only does IncrediBuild give you a distributed build environment, but the Xoreax Grid Engine interface lets you distribute running processes and application execution as easily as running a command from a command prompt. When it comes to power and ease of use, IncrediBuild is a clear choice.
Surround SCM (Seapine Software)
Reviewed by Jon Kurz
Seapine's Surround SCM demonstrates a commitment to the continued development and enhancement of a world-class product. From straightforward installation to a streamlined interface, Surround SCM provides flexibility with every step. There are native GUI and CLI interfaces for all major operating systems, a 64-bit server application, multiple types of branching, and powerful workflow which is fully customizable for a team's specific needs. Not only is this a great asset for developers, but non-developers can also benefit by accessing files through Microsoft Office, and for PhotoShop users, integration is also available via WebDAV. Surround SCM is an all-around source control tool, perfect for any environment.