Continuous Integration (CI) is the development practice where developers frequently integrate their code into a shared repository and create builds off the back of this integration. Creating builds with tools such as Jenkins allows the code written by the developer to be ran against various jobs through a pipeline which includes a number of tests i.e Unit Test, Component Test, Integration etc. This in turn ensures that any issues with the code is seen as early as possible as these builds will be ran often. CI aims to ease the pain of integration and these tools only help assist. It’s a matter of having the correct attitude.
So why is Continuous Integration so important to agile?
If we look have a look at agile software development, it’s main focus is on quicker delivery of software features. CI assists with achieving this speed. When developing a feature this often involves a number of changes with the code as well as including code commits, version control, unit testing, integration testing, packing and deployment. This is all made considerably faster in a CI environment through automation. As aforementioned tools such as Jenkins are used as they can integrate with other various tools (testing, build etc) to ensure automation; likewise, these tools can send alerts to the team developing the feature which means faster error detection. This ultimately means actions can be put around fixing these errors.
The way software is developed plays a huge part in business as estimations are based of the time of development. Furthermore, funding can be hampered by the speed of development; if the development process can be quicker this allows for more productivity which eventually will bring more profits. So it’s a good idea to incorporate CI into your development.