Continuous Integration (CI) - An effective development practice


Published on

This document introduces a very effective practice of software development method called Continuous Integration.
CTO/Manager of IT company (outsource/startup company) should have a look.

Published in: Technology, Health & Medicine
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Continuous Integration (CI) - An effective development practice

  1. 1. Continuous Integration (CI) - An Effective Development Practice - Created by KienDN 05/2014
  2. 2. Foreword • This document is? – To introduce a very effective practice of software development method called Continuous Integration • Who should see? – CTO/Manager of IT company (outsource/startup company) 2
  3. 3. Let’s see our problem! 3
  4. 4. Traditional programming workflow WAIT pain! INTEGRATION pain! DELIVERY pain! 4
  5. 5. Problem • Wait pain! – Developer 1 has to wait if developer 2 commits buggy code (step 2). • Integration pain! – Typically, your software not works when your team integrate together. • Delivery pain! – Bug can only be detected at nearly end of the workflow (step 4,5). Too late to deliver on time. 5
  6. 6. Want to avoid pain? And ask yourself how to improve quality & productivity of your team? 6
  7. 7. Solution Continuous Integration 7
  8. 8. CI Workflow NO INTEGRATION pain! NO DELIVERY pain! 1’ 1 Normal case Abnormal case 8
  9. 9. CI Workflow - Benefit • No integration pain! – Submitted code is verified by automation test on a CI server cluster. Each buggy code is notified immediately. • No delivery pain! – Tested deployment package always be available to customer, at any moment. 9
  10. 10. Improved CI Workflow NO WAIT pain! 1’ 1 Normal case Abnormal case 10
  11. 11. Improved CI Workflow - Benefit • No wait pain! – Developer submit source code to pre-test repository server. If passing automation test, it is auto-submitted to main repository. – Main repository always contains stable version of source code. No wait to get clean code anymore. More improved solution! Integrate code review process into the workflow at the pre-test repository server. 11
  12. 12. How to setup it? 12
  13. 13. Toolset No Tool name Category Features 1 Jenkins, Hudson, TeamCity, BuildBot CI Continuous integration tool 2 Perforce, Git, SVN, Gerrit SCM Source code repository 3 Ant, Maven, Gradle BuildTool Compile/build software 4 Email, Jabber BuildNotifer Notify people by mail or IM, SMS, Ticket 5 Checkstyle, Emma/Cobetura, Dry, FindBugs/PMD StaticAnalysis Analysis coding convention, code coverage, duplicated code, possible bug and report 6 jUnit, Robotium, Robolectric, Espresso UnitTest Framework to write unit test 7 Selenium, NativeDriver, Selendroid, WebDriver, PhantomJS AutomationTest Framework to write automated test 8 Artifact Uploader, Copy Artifact, FTP, SSH Deployment Deploy/upload package to production sever These are some typical tools for Android world, other are similar! 13
  14. 14. Discussion • What type of software project should apply this practice? – Game online, e-commercial, social network? • What is the difficulty? – Initial setup, operation, training? • What is the cost of server cluster? – How long does it take to setup? – How much does it cost? 14
  15. 15. Feel free to contact for further discussion! Email: 15