• Continuous Integration

    A continuous integration (CI) server is the feedback loop from the code's perspective. This feedback is crucial to the whole team and, yes, the code does speak. It says things like the following:

    • I can't build because there are build errors or reference issues.
    • My automated tests are failing.
    • Tests are taking a while to complete, better start organizing these tests into different groups that run at different times; some after every build and some at certain times of the day.

    The CI server aids in development by saving developers time. Instead of the "old school" way of everyone checking in code after days or weeks of development, and dealing with merge conflicts, and having no way of knowing if changes broke an existing piece of functionality, how about allowing everyone to work off one branch of the code base, set up a CI server to run after every check in, and deal with any merge conflicts on a much smaller level. The CI server can also verify that the new functionality did not break existing functionality by running a set of automated tests against the code. Quickly providing this feedback to the developers instills confidence—and you will start seeing these developers checking in multiple times per day. Because the feedback loop is tighter, a lot of the merge conflicts disappear because everyone is working in and checking into the same code base at more frequent intervals.

    By running the automated tests after every check in, you get the added benefit of having a stable environment that has already been smoke-tested. The code is ready for the team members that are testing to begin without first having to do regression testing to make sure the new functionality did not break the existing functionality.

    Source of Information : Pro Agile .NET Development with SCRUM


0 comments:

Leave a Reply