Introduction of Continuous Delivery in Multi-Customer Courses

Introduction of Continuous Delivery in Multi-Customer Courses

Presentation at ICSE'14, SEET

7cbae0b6c3348182a2a6968f52b21b89?s=128

Stephan Krusche

June 06, 2014
Tweet

Transcript

  1. Introduction of Continuous Delivery in Multi-Customer Courses Stephan Krusche and

    Lukas Alperowitz Chair for Applied Software Engineering Technische Universität München 6 June 2014
  2. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Motivation • New trend: Continuous Delivery • Release software faster, more reliably and more frequently • Obtain feedback from clients ➡ Goal: Ability to release a single change in your software to your clients with one click • Main question: Can we teach this in university project courses? 2
  3. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Problems when teaching Continuous Delivery • Availability and integration of the required tools • Complexity of the whole integration and delivery process • Knowledge and experience with the required tools and workflows • Students already have too many other aspects in mind 3
  4. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Course Setup at Technische Universität München • Multi-Customer Courses with the development of mobile applications since 2008 • Project-based organization with up to 11 projects and 100 students per semester, 3 months duration • Until 2011, the students released the applications manually • Cumbersome and error prone process • High risk for surprises in the target environment 4
  5. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Project-based Course Organization 5
  6. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Project Lifecycle 6 Analysis Design Implementation Project Management Release Management Sprint 0 Sprint 1 Sprint 2 … Sprint n Test Requirements Elicitation Review Kickoff CAT Team Allocation Key Event Event based release Time based release adapted from [6]
  7. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Continuous Delivery Workflow 7 Version Control Server Developer 1 notify upload build 5 download 6 Issue Tracker notify store feedback as issues 10 release 4 Release
 Manager compile & test build 2 upload feedback give feedback 9 Continuous Integration Server Continuous Delivery Server 7 Device 8 Customer inform about build status commit 3 11
  8. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Research Questions • Understanding (Q1): Do the students understand the concepts of continuous delivery? • Teaching Methods (Q2): How can we distribute the required knowledge into all project teams? • Usage (Q3): How often do students use the continuous delivery workflow during the project? • Benefits (Q4): How can we convince the students about the benefits of continuous delivery? 8
  9. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses 9 Teaching Methods Student Cross-Project 
 Teams Tutorials Lectures • Course-wide meeting with all students • Interactive tutorials and demos how to use the tools ➡ Sometimes as retrospective (experiential learning) • Step by step manuals • Video tutorials (ScreenFlow) ➡ Students can reread important steps at any time adapted from [6] Cross Project Activities Project 2 Project 1 Project n Management Development Program Management Release Coordinator Project Manager 2 Customer Program Manager Program Manager Developer Release Manager Developer ... ... ... Management Development Project Manager 1 Customer Developer Release Manager Developer ... Management Development Project Manager n Coach n Customer Developer Release Manager Developer ... Coach 2 Coach 1 Program Manager Program Manager
  10. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Evaluation • Online questionnaire with all 90 participants • 30% bachelor, 70% master students • 41 full responses • Structured questions in • Four categories according to the research questions: understanding, teaching methods, usage, benefits • Three areas: version control, continuous integration, continuous delivery • Personal interviews with release managers 10
  11. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses How much prior experience did you have in ...? 11 Q1: Understanding Q2: Teaching Methods Q3: Usage Q4: Benefits 0% 10% 20% 30% 40% 50% 60% No < 2 weeks < 3 months > 3 months > 2 years 2% 27% 12% 2% 56% 5% 22% 15% 10% 49% 10% 22% 10% 17% 41% Version Control Continuous Integration Continuous Delivery
  12. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Can you explain the concept of ... to another student? 12 Q1: Understanding Q2: Teaching Methods Q3: Usage Q4: Benefits 0% 10% 20% 30% 40% 50% 60% No Maybe Likely Very Likely Definitely 39% 41% 12% 7% 0% 29% 46% 20% 5% 0% 56% 34% 7% 2% 0% Version Control Continuous Integration Continuous Delivery
  13. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Did you consume the teaching method ...? 13 Q1: Understanding Q2: Teaching Methods Q3: Usage Q4: Benefits 0% 20% 40% 60% 80% 100% Cross-Project Team Lecture Tutorial 56% 78% 85% 44% 22% 15% no yes
  14. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses How much knowledge did you gain using...? 14 Q1: Understanding Q2: Teaching Methods Q3: Usage Q4: Benefits 0% 20% 40% 60% 80% 100% Cross-Project Team Lecture Tutorial 20% 9% 33% 35% 47% 37% 41% 37% 20% 4% 6% 10% no small medium big
  15. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses How often did you perform a task in...? 15 Q1: Understanding Q2: Teaching Methods Q3: Usage Q4: Benefits 0% 20% 40% 60% 80% 100% Version Control Continuous Integration Continuous Delivery 46% 45% 74% 19% 16% 13% 35% 39% 13% not used sometimes used daily
  16. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Do you see benefits when using ...? 16 Q1: Understanding Q2: Teaching Methods Q3: Usage Q4: Benefits 0% 20% 40% 60% 80% 100% Version Control Continuous Integration Continuous Delivery 46% 61% 57% 33% 26% 24% 21% 13% 19% no uncertain yes
  17. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Would you use these concepts in a future project? 17 Q1: Understanding Q2: Teaching Methods Q3: Usage Q4: Benefits 0% 10% 20% 30% 40% 50% 60% No Maybe Likely Very Likely Definitely 17% 46% 15% 22% 0% 22% 41% 17% 20% 0% 56% 27% 7% 7% 2% Version Control Continuous Integration Continuous Delivery
  18. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Average Usage of Continuous Delivery per Team 18 Version Control Continuous Integration Continuous Delivery 2 500 75,5 56,3 14,8 n/a n/a # Branches # Commits # Builds
 Created # Builds Successful # Builds
 Delivered #Builds Downloaded # Feedback Reports 26 575,4 439,6 413,9 49 126 13,9 + 1200% + 15% + 479% + 639% + 227% 2012 2013
  19. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Limitations • Threat: Selection bias in online questionnaire • Answers equally distributed over all teams • At least 3 answers per team • Threat: participants know that results are published • We guaranteed that the questionnaire is anonymous 19
  20. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Conclusion • Teaching Continuous Delivery is worth teaching it! • More releases lead to more and better feedback • Responsibility is the success factor • Release coordinator setups the infrastructure and coordinates the knowledge transfer • Cross-Project Teams bring the knowledge into the teams • Release managers are responsible for continuous delivery inside the project teams ➡Let’s all teach Continuous Delivery! 20
  21. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses Links & Invitation • Have a look at the results on our websites: • www1.in.tum.de/ios12 • www1.in.tum.de/ios13 • Write us to ios@in.tum.de if you are interested • Tutorial at Models’14 Conference in Valencia: • T7 - How to run a Multi-Customer Software Engineering Capstone Course ➡ http://models2014.webs.upv.es/acceptedtutorials.htm 21
  22. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses References (1) (1) Atlassian. Atlassian blog, 2012. http://blogs.atlassian.com/2012/01/continuous-delivery-with- bamboo-stages. (2) Atlassian. Atlassian software suite, 2013. http://www.atlassian.com/software. (3) Bit Stadium GmbH. Hockeyapp, 2013. http://www.hockeyapp.net. (4) B. Bruegge and A. H. Dutoit. Object Oriented Software Engineering Using UML, Patterns, and Java (Third Edition). Prentice Hall International, 2009. (5) B. Bruegge, S. Krusche, and M. Wagner. iOS Praktikum, 2012. http://www1.in.tum.de/ios12. (6) B. Bruegge, S. Krusche, and M. Wagner. Teaching Tornado: from communication models to releases. In Proceedings of the 8th edition of the Educators’ Symposium, pages 5–12. ACM, 2012. (7) B. Bruegge, S. Krusche, and M. Wagner. iOS Praktikum, 2013. http://www1.in.tum.de/ios13. (8) V. Driessen. A successful git branching model, 2010. http://nvie.com/posts/a-successful-git- branching-model. (9) P. M. Duvall, S. Matyas, and A. Glover. Continuous integration: improving software quality and reducing risk. Pearson Education, 2007. (10) M. Fowler. Continuous Integration, 2006. http://martinfowler.com/articles/ continuousIntegration.html. 22
  23. ICSE’14, SEET - Stephan Krusche, Lukas Alperowitz - Introduction of

    Continuous Delivery in Multi-Customer Project Courses References (2) (11) P. Gfader. Use scrum and continuous delivery to build the right thing, 2013. https:// www.scrum.org/Portals/0/Documents/Communityum.orgWhitepaper_ ContinuousDelivery.pdf. (12) J. Humble. Devops: A software revolution in the making? Cutter IT Journal, 24(8), 2011. (13) J. Humble and D. Farley. Continuous delivery: reliable software releases through build, test, and deployment automation. Pearson Education, 2010. (14) J. Humble and J. Molesky. Why enterprises must adopt devops to enable continuous delivery. Cutter IT Journal, 24(8):6, 2011. (15) D. A. Kolb et al. Experiential learning: Experience as the source of learning and development, volume 1. Prentice-Hall Englewood Cliffs, NJ, 1984. (16) W. Maalej, H.-J. Happel, and A. Rashid. When users become collaborators: towards continuous and context-aware user input. In OOPSLA, 2009. (17) D. Pagano and B. Bruegge. User involvement in software evolution practice: a case study. In Proceedings of the 2013 ICSE, pages 953–962. IEEE Press, 2013. (18) K. Schwaber and M. Beedle. Agile software development with Scrum. Prentice Hall PTR, 2002. (19) P. Swartout. Continuous Delivery and DevOps: A Quickstart Guide. Packt Publishing Ltd, 2012. (20) L. Torvalds. Git, 2013. http://www.git-scm.com. 23