Continuous Integration and TeamCity
In our role as a "Solutions Provider", it is important to provide reassurances that the code we are delivering is solid. One way of doing so is to utilize testing frameworks such as RSpec. Writing tests provide more functionality than proving code "should do X", writing tests helps developers understand the goal of the code they are writing. A positive side effect of this construct is that properly written tests will also let you know when other developers (or even the author) attempt to use the code incorrectly.
Testing frameworks aren't the panacea for all project issues, but when used properly, they are very effective. When working in a team environment, one developer may alter a piece of code or configuration setting that is unknowingly used elsewhere. While their local tests should catch the issue, not everyone remembers to run the tests before they commit. In order to prevent these sort of issues we decided to implement the practice of Continous Integration.
To facilitate the process we decided to evaluate TeamCity. TeamCity is a continuous integration system that utilizes a distributed agent model and supports multiple Java and .Net build runners as well as a Rake. Having this multi-platform/technology support means TeamCity will be able to handle all the technologies we work with and the distributed agent model allows us to run multiple project tests at once.
We have configured TeamCity for use with Ruby and .Net (Java setup coming soon) and are still in evaluation mode. We haven't really put it through the paces yet, but are pleased with the product and will continue forward.
More info on TeamCity coming soon...
