Krusche, Lukas Alperowitz, Bernd Bruegge and Martin O. Wagner Technische Universität München, Chair for Applied Software Engineering 3 June 2014 RCoSE 2014 1
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Typical problems in software engineering projects • Requirements are often imprecise and volatile in early phases of a project (especially in innovation projects) • Planning needs a lot of time, if requirements cannot be disambiguated or refined at later stages • Communication between developers and real stakeholders is limited • Feedback can only be gathered after the software was delivered 2
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery How do agile methods handle these problems? (e.g. Scrum) • Requirements can be vague when they are in the Product Backlog, but must be precise when they are in the Sprint Backlog • Software is delivered at the end of the Sprint (potentially shippable product increment) • Limitations: • Requirements on the Sprint Backlog cannot be changed • Sprint Planning can consume a lot of time • Software is delivered at the end of the Sprint 3 2 — 4 Week Sprints
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Rugby: An extension of Scrum based on Continuous Delivery • Developers can deliver software event-based during the Sprint ➡Obtain important user feedback during the Sprint ➡Decide whether to incorporate the feedback in the Sprint or not • The development team baselines requirements during Sprint Planning ➡Can refine these requirements during the Sprint with user feedback 4
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Rugby's Lifecycle Model 5 adapted from [6] Version Control Continuous Integration Continuous Delivery Analysis Design Implementation Project Management Release Management Sprint 0 Sprint 1 Sprint 2 … Sprint n Test Requirements Elicitation Feedback Management Time based Release Event based Release
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Release Management Workflow 6 Version Control Server Developer 1 notify upload build 5 download 6 Issue Tracker notify store feedback as issues 10 release 4 Release Manager checkout, compile and test build 2 upload feedback give feedback 9 Continuous Integration Server Continuous Delivery Server 7 Device 8 User inform about build status commit 3 11 adapted from [15]
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Sprint End Event-based Delivery in Rugby 7 master feature branches develop Sprint Start Developer Customer User Manager Non-releasable build Releasable build Release Key
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Feedback Management Workflow 8 Developer User Feedback Management Feedback Provision Development Issue Tracker x R1 R2 F1 F2 F3 R3 F1: Feature Request F2: Bug F3: Design Change put into Product Backlog Release Feedback Key
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Research Questions 1) Do the Release Management and Feedback workflows help developers to deliver more often and to obtain more and better feedback? 2) How often do developers deliver builds to users and obtain feedback? 10
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Evaluation Setup • Two Multi-Customer Courses with 11 projects/teams in university • ~90 developers (30% bachelor, 70% master students) • Three months projects conducted in summer 2012 and summer 2013 • Personal interviews with release managers in 2012 and 2013 • Retrospective with project managers in 2013 • Online questionnaire in 2013 • Sent to all developers • 41 full responses 11
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Results of the interviews • Developers receive more feedback (quantitative and qualitative) • Releases are used to visualize and explain status • Team meetings • Project management meetings ➡Reduces time for explanation and discussion 12
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Questionnaire: The Release Management workflow leads to … 13 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% More Releases More Feedback Better Feedback 44% 37% 59% 32% 39% 27% 24% 24% 15% no uncertain yes
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Limitations • Evaluation was only done in university projects • Threat: Selection bias in online questionnaire • Answers equally distributed over all teams • At least 3 answers per team 15
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Summary • Rugby is an agile process model that extends Scrum with • Release Management workflow to support event-based releases • Feedback Management workflow to support user feedback ➡Developers can release software and obtain feedback more often ➡It is the responsibility of the developers how to handle the feedback 16
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery Challenges and Research Directions 1) How much and what kind of feedback should we allow within a Sprint? 2) Can developers resist to include feedback during the current Sprint and postpone it to the next one? 3) How many releases can an end user handle? 4) Can we combine a release with certain questions from the developers? 17
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery References (1) (1) K. Beck, M. Beedle, A. Van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, et al. Manifesto for agile software development. The Agile Alliance, 2001. (2) B. Bruegge and A. H. Dutoit. Object Oriented Software Engineering Using UML, Patterns, and Java (Third Edition). Prentice Hall International, 2009. (3) B. Bruegge, S. Krusche, and M. Wagner. iOS Praktikum, 2012. http://www1.in.tum.de/ios12. (4) 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. (5) B. Bruegge, S. Krusche, and M. Wagner. iOS Praktikum, 2013. http://www1.in.tum.de/ios13. (6) V. Driessen. A successful git branching model, 2010. http://nvie.com/posts/a-successful-git-branching-model. (7) M. Fowler. The new methodology. Wuhan University Journal of Natural Sciences, 6(1-2):12–24, 2001. (8) P. Gfader. Use scrum and continuous delivery to build the right thing, 2013. https://www.scrum.org/ Portals/0/ Documents/Community%20Work/Scrum. org%20Whitepaper_Continuous%20Delivery.pdf. (9) E. Hossain, M. A. Babar, and H.-y. Paik. Using scrum in global software development: A systematic literature review. In ICGSE’09, pages 175–184. IEEE, 2009. (10) J. Humble. Devops: A software revolution in the making? Cutter IT Journal, 24(8), 2011. (11) J. Humble and D. Farley. Continuous delivery: reliable software releases through build, test, and deployment automation. Pearson Education, 2010. 18
O. Wagner - Rugby: An Agile Process Model Based on Continuous Delivery References (2) (12) J. Humble and J. Molesky. Why enterprises must adopt devops to enable continuous delivery. Cutter IT Journal, 24(8): 6, 2011. (13) D. A. Kolb et al. Experiential learning: Experience as the source of learning and development, volume 1. Prentice-Hall Englewood Cliffs, NJ, 1984. (14) P. Kruchten. The rational unified process: an introduction. Addison-Wesley Professional, 2004. (15) S. Krusche and L. Alperowitz. Introduction of Continuous Delivery in Multi-Customer Project Courses. In Proceedings of ICSE’14. IEEE, 2014. (16) W. Maalej, H.-J. Happel, and A. Rashid. When users become collaborators: towards continuous and context-aware user input. In OOPSLA’09, 2009. (17) M. Paasivaara, S. Durasiewicz, and C. Lassenius. Using scrum in distributed agile development: A multiple case study. In ICGSE’09, pages 195–204. IEEE, 2009. (18) D. Pagano and B. Bruegge. User involvement in software evolution practice: a case study. In Proceedings of ICSE’13, pages 953–962. IEEE, 2013. (19) R. B. Rowen. Software project management under incomplete and ambiguous specifications. Engineering Management, IEEE Transactions on, 37(1):10–21, 1990. (20) K. Schwaber and M. Beedle. Agile software development with Scrum. Prentice Hall PTR, 2002. (21) H. Takeuchi and I. Nonaka. The new new product development game. Harvard business review, 64(1):137–146, 1986. 19