One of the tasks that I am currently doing is providing some recommendations on implementing Continuous Integration. CI covers many areas in the software development world, and frankly, it is more a cultural change than anything else. The best processes can be stated but if they are not followed, CI will not be as effective as it possibly could.
Here are some main areas that I am focusing on in no particular order:
Defining Continuous integration
Of course, this is the first step right? Each company will have a different definition of CI, however, I believe there are some best practices out there. Check out Martin Fowler’s article on Continuous Integration
Consistency in solutions and projects
CodePlex has a great tutorial and project on this subject by building a “developer tree”. CodePlex – Tree Surgeon project. Also, I am looking at ways to implement recipes using the Guidance Automation Toolkit (GAT) to simplify the developers life.
Source Code Control
Of course understanding MSBuild, NAnt, CruiseControl, TeamBuild, and others are invaluable resources. One tool I particularly like is a tool from Jay Flowers,
CI Factory. His ideas on continuous integration are absolutely wonderful.