In earlier days of Software development, Code was not compiled very frequently so this use to create lot of problems like
- QA folks got large chunk of features to test at a go which needs to be tested in short span.
- Time to market was very high.
- QA Team, Business personnel were not having Good confidence on the application being deployed.
So, a new technique called Continuous Integration was created. It is also referred as CI in short. This helped us to test application under development much faster & efficiently. Whenever a developer’s code is committed than CI server will get the notification that new code has been checked-in so CI server starts builds process automatically. This will immediately check if new code is OK & is able to compile with existing code or not. Also, since new feature is immediately available to QA team so they can also test & verify if new functionality is working properly.
There are some distinct advantages of CI as mentioned below:
- Build Process became automatic & faster. Reduces chances of human error.
- Automatic Notification of Build successful or Error is sent to all stakeholder(s).
- Regression test suite can be run immediately which can inform if new change has introduced any regression or not.
- Helps clear the distinction of which version of code was checked-in
- Saves tester’s effort if build doesn’t meet entry criteria, testing team will not be wasting time to test wrong code.
This same approach with production level configuration can be used for Deploying the code in Production. This helps us to reduce time to deploy code & decreases time to market. There are many CI tools available which you can use in your Organization. I am mentioning them. Try, experiment & see the result which one best suites your need.
- Jenkins (Most Popular)
I will be writing series on Jenkins to walk you through all the steps to setup , configure & manage your CI server independently.
Linkedin.com has adopted this approach & profited a lot. Many organizations are now moving in this direction & adopting CI in their development Cycle. I have provided story of linkedin success with CI to feel the impact of this approach.