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
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
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
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
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
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
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
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
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
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
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
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 [email protected] 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
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
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