ci-diagram.png
Source: www.siemerforhire.com

Agile Practice

Continuous Integration

Alternative name(s)

Integrate often (Don Wells, 1999)

Source

XP

Description

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day (Fowler & Foemmel, 2006).
Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.

Discussion

Continuous Integration under XP method comes with different pros and cons. It is an easily adoptable planning framework with adoptable requirement model. On the other hand, it does not deal with any code reviews and inspection. It does not give any support to virtual distributed teams and is viewed as set of rules rather than tools.
Continuous integration prevents or identifies compatibility problems early. Integration is a "pay me now or pay me more later" type of transaction. That is, if you integrate throughout the project in small amounts you will not find trying to integrate the system for weeks at the project's end (Wells, 1999).

Pros of Continuous Improvement:
1. It reduces risks.
2. It reduces repetitive manual processes.
3. It allows for better project visibility.
4. It creates greater confidence in the products

Pitfalls of Continuous Improvement:
1. Maintaining a continuous improvement system can cause increased overheads.
2. Too much change, applied without familiarity and understanding, too frequently is very likely to cause mistakes and confusion.
3. Excessive failed builds happen when code developers don't conduct a private build before committing their code to the version control repository.
4. Additional software/hardware costs: For continuous improvement to be carried out effectively, a separate integration machine has to be bought ()

Links to other agile principles or practices

Continuous improvement is the evaluation and identification of what have been done well and what needs to be improved. Continuous integration relates with continuous improvement because they both kind of have the same objective. By continuously integrating, continuous improvement is achieved.
Agile vigilance is to constantly adjust and monitor.The objectives of adaptive leadership are tracking and monitoring the project for timely and relevant feedback.

Links to PMO knowledge areas (KAs)

Life cycle management is the process of managing the development of a product going through many stages from conception to manufacturing. Continuous integration applies to life cycle management because life cycle management is a continuous process of development and maintenance. Similarly, continuous integration is about integrating and having a new system after finishing the tasks.
Configuration management is the process which ensure that the products' technical and administrative requirement are identified and recorded in order to create and maintain consistency during the project. Continuous integration applies to configuration management because, it has been continuously managed the functionality and life of the project or a code.
Expectation management is the primary measurement of a product success and determines all stakeholders actions and decisions (Rico, 2010). Continuous integration relates with expectation management because it helps to manage expectations of the stakeholders towards the objective‍‍‍‍‍‍‍‍ of the project.

Examples of use continuous integration outside to IT domain

According to the consultancy company website ThoughtWorks.com, the retailer Morrisons has been using continuous integration in order to detect early problems. Continuous integration has ability to merge with different segments of business. However, it is useful to develop software but it has ability to keep eye on risks of organisation and much more.

References

1. David, L. (2005) Expectation Management: A ''Gateway Key'' To Project Success-Client Satisfaction. Available at: www.northalabamapmi.org [Accessed: 11 February, 2015]
2. Duvall, P & Matyas, S & Glover, A (2007). Continuous Integration: Improving Software Quality and Reducing Risk. London: Pearson Education.
3. Fowler, M., & Foemmel, M. (2006). 'Continuous integration'. Thought-Works.
[online] Available at:http://www.dccia.ua.es/dccia/inf/asignaturas/MADS/2013-14/lecturas/10_Fowler_Continuous_Integration.pdf
[Accessed: 11 Febuary, 2015].
4. Rico, D., Sayani, H., Sone, S. (2010) The Business Value of Agile Software Methods. Publisher: J Ross Publishing.
5. Wells, D (1999) Extreme Programming, Integrate Often, Available online at: http://www.extremeprogramming.org/rules/integrateoften.html [Accessed: 11 February 2015].


External links

http://guide.agilealliance.org/guide/ci.html ....Continuous integration
http://www.extremeprogramming.org/rules/integrateoften.html ......Integrate often
http://www.thoughtworks.com/clients

Read in another language

Spanish