Many development teams might wonder why they would need to setup a CI server for their software projects. Small teams might wonder if they really need it. I would argue that CI is a tool that would benefit large and small teams alike, even a team with a single developer can benefit from it.
Here is why:
It Ensures unit test pass
Whats the point of writing unit tests if they are not enforced? A CI server will make sure that you never release software to the public without first running the complete test suite. If a test fails, it will alert you about it and stop the build from being released.
It Eliminates “Works on my machine” syndrome
You spend all your effort sweating every single detail of your application. And once it is finally ready to install on your first customer you find that the software breaks immediately, resulting in a very bad first impression. Your first reaction will be “Hey, it works on my machine”, and you would be right, but it works on your machine because it is the machine you used to build the software.
Having a CI server helps in making sure any dependencies needed are indeed included in the software and shipped correctly with it. If some dependency is needed that exists on your machine and not on the CI server, the build will break and you will know that the dependency needs to be included.
It ensures compilation errors are detected soon
A software developer works best when he is in the “zone”, so anyhting that breaks this flow of work is a big productivity killer. For example, when you need to update code from a repository and find that the build is broken, it completely knocks you out of the zone. A CI server will detect immediatly when you upload something that will break the build for others, which gives you the chance of fixing it before any other developer even notices.
Automatic TEST builds for the QA Team
If you have a QA team, you want them to be testing the latest revision of what you are working on. With a CI server, the application builds every time you commit to the repository, this way your QA team can be up to date with the latest version and download it directly from the server without bothering developers for the same.
For this and many other reasons, we at TopManage have setup a CI infranstucture based on Atlassian Bamboo, which have enabled us to enjoy the above benefits. If you have any questions related to software development, please do not hesitate to contact us.