In this post we are going to learn the benefits of Continuous Integration in Software Development. Let’s understand what continuous integration is first and then we will discuss the benefits we are having.
What is Continuous Integration in software development?
As per wikipedia
“Continuous integration (CI) is the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day. It was first named and proposed as part of extreme programming (XP). Its main aim is to prevent integration problems, referred to as "integration hell" in early descriptions of XP”.
In simple words, Continuous Integration means whenever any developer from the project team commit/checkin code at that time build will be created with the help of build servers and it will be automatically deployed to a specific location with the help of build server.
There are lots of open source and paid options are available for Continuous Integration like Team Foundation Server, Jenkins, TeamCity etc.
You can found a complete comparision of this tools from the following link.
Benefits of Continuous Integration:
Followings are benefits of Continuous Integration and Followings are reason why continuous integration is your friend.
1) Automate everything If you don’t have CI then one of the developers needs to get latest/update code in his/her computer then create a build that will waste lot of time on the developer and ultimately we are going to loose developers productive time for this instead of writing code.
2) It will improve quality of code, Whenever any developers commits the code it will create a build and if build is not successful then it will inform all the users/developers of the using that project/build. So now developers will check quality of code regular because otherwise it will create bad impression of this developer on other stack holders of project.
3) Deployment will very easy. Earlier every time we have to deploy to a particular location manually but here stack holders of project don’t need to worry about the deploying things as it will deploy all the things properly.
4) Your code repository will be up to date every time and you don’t have to worry about it.
5) Save lots of times of developers and increase developers productivity. Take an example suppose there are five developers are working on a software project. One of the developer has committed code and another developer has taken latest version from source control at that he/she is facing problem while compile/building project he will notify the developer who has broke the things. So that developer will check and found that he forgot to commit one of the file. So again he will commit things and notify again to all. This will ultimately a productivity lose.
6) QA/Testing team does not have to wait for deployment. So if developer is committed code it will automatically create build and deploy it on specific location there will not be any dependency of development team to test new features.
That’s it. Looking at above reason I must say Continuous Integration is your best friend and ultimately a productivity booster. Stay tuned for more...