Rugby - A Process Model for Continuous Software Engineering

Rugby - A Process Model for Continuous Software Engineering

Rigorosum Presentation of my Dissertation

7cbae0b6c3348182a2a6968f52b21b89?s=128

Stephan Krusche

March 11, 2016
Tweet

Transcript

  1. 1.

    s.krusche@tum.de - www.skrusche.de - @skrusche Dissertation | Stephan Krusche |

    March 11, 2016 Rugby - A Process Model for Continuous Software Engineering
  2. 2.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering “In reality, software development is a complex, continuous, iterative, and repetitive process” — Carolyn Wong, 1984 2 Defined Process 
 Control Model Empirical Process 
 Control Model “When the process is too complicated for the defined approach, the empirical approach is the appropriate choice” — Babatunde Ogunnaike, 1994 • Entirely planned • Follows strict rules • Treats deviations as
 problems that need 
 to be resolved • Not entirely planned • Inspect and adapt • Treats deviations as 
 opportunities that 
 lead to improvements
  3. 3.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Defined Process Control 3 Developer Requirements Process System Allocation Process Concept Exploration Process Design Process Implementation Process Installation Process Operation & Support Process Verification & Validation Process [Royce 1970] Traditional Software Engineering Software Use User Educator Traditional Lecture Exercise Student Delay (months / years) Delay (weeks)
  4. 4.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Empirical Process Control 4 Delay (weeks) Delay (days) Software Usage User Blended Learning Experiential Learning [Kolb 1984] [Garrison and Kanuka 2004] Educator Exercise Student Agile Software Engineering Developer [Schwaber 1995]
  5. 5.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering • Process Model for Continuous Software Engineering that addresses the delay in software projects • Extensible to address the delay in education —> Continuous Education • Frequent event based interactions can reduce difficulty and complexity • Hypotheses: H1) Rugby allows to reduce the delay between development and usage in software projects H2) Rugby allows to reduce the delay between lectures and exercises in education Rugby: a new Process Model 5
  6. 6.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Continuous Software Engineering • Develop and release small changes to software in fast, parallel cycles 
 in order to obtain user feedback and incrementally improve software [Bosch 2014] • Event based releases allow to reduce the delay between
 development and usage to minutes / hours • Multiple, parallel, small iterations in one Sprint • Each release leads to a potential software increment 6 User Usage Release Feedback Development Adaption
  7. 7.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Continuous Education • Teach and exercise small content in fast cycles so that students reflect about it immediately and increase their knowledge incrementally • Combine lectures and exercises into an interactive session
 to increase the knowledge retention • Multiple, small iterations in one session • Each exercise leads to a potential knowledge increment 7 Exercise Example Solution Student Reflection Theory
  8. 8.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Rugby’s Process Meta Model • Rugby is based on a process meta model that treats changes as events in parallel running workflows • Changes can occur at any time in the development process 8
  9. 9.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Rugby’s Process Meta Model Hierarchy (Software Engineering) 9 M3 - Meta Meta Model Meta Object Facility 
 [OMG 2005] M2 - Meta Model Generic concepts Rugby’s Process Meta Model M1 - Model Development methodology Process Model M0 - Reality What actually happens Concrete Development Process Class «stereotype» Work Queue «instantiate» «Work Queue» Sprint Backlog «instantiate» «instantiate» «stereotype» Work Item «Work Item» Backlog Item «instantiate» «instantiate» * * «instantiate» Sprint 1 Backlog ID Name Difficulty 1 Search available Pedelecs Medium 2 Check working radius Large «instantiate»
  10. 10.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Rugby’s Process Meta Model Hierarchy (Education) 10 M3 - Meta Meta Model Meta Object Facility 
 [OMG 2005] M2 - Meta Model Generic concepts Rugby’s Process Meta Model M1 - Model Teaching methodology Process Model M0 - Reality What actually happens Concrete Teaching 
 Process Class «stereotype» Work Queue «instantiate» «Work Queue» Exercise Backlog «instantiate» «instantiate» «stereotype» Work Item «Work Item» Exercise «instantiate» «instantiate» * * «instantiate» Exercise 1 Backlog ID Name Difficulty 1 Bubble Sort Easy 2 Quick Sort Hard «instantiate»
  11. 11.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Workflow Meta Model Change Meta Model -load -state : State +customize() +activate() +sleep() Workflow +modifyItem() +proritizeItem() Work Queue Configuration Management Meta Model -state : State -priority : Int -assignee : Team Member +interrupt() +resume() Work Item Artifact (Resource) Role Meta Model Sleep Ready Running Blocked Finished < < e n u m > > State Team Member Organization +scheduleEvent() +reactToUnscheduledEvent() +giveFeedback() Role Activity +analyze() +design() +implement() +test() Developer +tailorProcess() +customizeWorkflow() +scheduleActivity() +prioritizeActivity() Project Manager Project Management Meta Model +tailor() Process Portfolio Project Outcome Controlled Item Educational Unit +send() Event +addObserver() +removeObserver() +notify() Event Subject +update() Event Observer Service (Tool) Feedback Task Schedule Version Milestone Phase Review Release Team +release() Release Manager +review() Reviewer Organizational Unit Iteration +customizeWorkflow() Workflow Manager * * * 0..* * 1 * * * 1..* 1..* * * * * 1 * * 1..* * Rugby Receive Event Rugby Send Event has works on depends on manages requires creates relates to activates subscribe / create 11 Rugby’s Process Meta Model
  12. 12.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Workflow Lifecycle 12 Active Finished Blocked activate sleep stop resume interrupt Sleep End Start Rugby Receive Event Rugby Send Event
  13. 13.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Interaction between two workflows 13 Analysis Design New Requirement Design Change New Requirement Active Finished Blocked activate sleep stop resume interrupt Sleep End Start Rugby Send Event Feature Change Architecture Change Implementation Change Rugby Receive Event Design Change
  14. 14.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering 14 Requirements Elicitation Analysis Design Implementation Test Deployment Time
  15. 15.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Dynamic View on Rugby’s Workflow Meta Model 15 Analysis Requirements Elicitation Analysis Design Implementation Deployment Test Requirements Elicitation Design Implementation Time Test Deployment Waterfall Model Elaboration Inception Requirements Analysis & Design Implementation Deployment Configuration & Change Management Test Business Modeling Construction Project Management Environment I1 E1 E2 C1 C2 C3 C4 T1 T2 Transition Time Unified Process Sprint 1 … Sprint n Sprint 2 Time Analysis Design Implementation Test Requirements Elicitation Project Management Scrum Top Level Design Problem Statement Analysis Design Implementation Project Management Review Management Test Requirements Elicitation Schedule Kickoff Release Management Feedback Management Product Backlog Time Elaboration Inception Sprint 0 Sprint 1 Sprint n … … Construction Event Document Event based release Time based release Key: Rugby Analysis Design Feedback …
  16. 16.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering 16 Development Review Management Release Management Feedback Management Analyze finished? Backlog Item ready for development Merge Request Merge Request Review Quality ok? yes yes Backlog Item finished Merge need feedback? no yes no Improvement Request Improvement Request Release Request Release Event based Release no Feedback Report Analyze Feedback Is new requirement? New Backlog Item Change Request yes no Change Request Design Implement Test Rugby integrates Review, Release and Feedback Management Workflows Release Request Change Request Merge Request Release Request Improvement Request Feedback Report
  17. 17.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Event based Releases in Rugby 17 Sprint End Master Branch Feature Branch 1 Development Branch Sprint Start Developer User Unreleasable build Releasable build Event based Release Key: Realized feature build Feature Branch 2 Time based Release [Krusche et. al 2014]
  18. 18.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering User Usage Release Feedback Development Adaption Exercise Example Solution Student Reflection Theory 3 Case Studies 18 Continuous Software Engineering Continuous Education Case Study 1: 
 62 course 
 projects Case Study 3: 
 8 projects 
 in industry Case Study 2: 
 5 interactive 
 sessions
 in a lecture
  19. 19.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering 19 Case Study 1: Capstone Course Projects • 62 projects between 2011 and 2015 
 with ~ 500 students • Project duration: 3 months • H1: Rugby allows to reduce the delay between development and usage in software projects Findings Metrics per team in 2014: • 96 code reviews (every 5 hours) • 64 releases (every 8 hours) • 135 downloads (every 4 hours) • 27 feedback reports (every 19 hours) ➡ Reduced delay between development and usage from 3 months to 8 hours on average [Krusche and Alperowitz 2014], [Bruegge, Krusche and Alperowitz 2015]
  20. 20.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Case Study 2: Lecture 20 Findings • 57 team projects with ~ 400 students • 5 interactive sessions (lecture and exercise workflows intertwined) with 26 knowledge increments • H2: Rugby allows to reduce the delay between lectures and exercises in education
 (thereby, the knowledge retention increases) 0% 20% 40% 60% 80% 100% Improved skills in interactive sessions Confident to apply the knowledge gained 
 in interactive sessions 5% 4% 12% 18% 83% 78% Agree Neutral Disagree 2 2.5 3 3.5 4 2.4 2.5 2.9 3.6 3.9 GPA (Grade point average, lower is better) Exercise participation GPA 20 % 40 % 60 % 80 % 100 % 0 % ➡ Reduced delay between lectures and exercises to 10-15min on average
  21. 21.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Case Study 3: Industry 21 Findings • Reduced time effort for integration and delivery from several hours to 5 minutes • Increased frequency of releases ➡ Reduced delay between development and usage • 8 projects with 31 professionals tailored Rugby to their needs • H1: Rugby allows to reduce the delay between development and usage in software projects [Klepper, Krusche et. al 2015]
  22. 22.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Contributions • Tailorable process model for continuous software engineering • Extensible process meta model that can be applied to software engineering and education • 3 large case studies in capstone course, lecture and industry • Empirical validation of Rugby Results ➡ Rugby reduces the delay between development and usage in software projects ➡ Rugby reduces the delay between teaching and exercising in education 22
  23. 23.

    s.krusche@tum.de - www.skrusche.de - @skrusche Dissertation | Stephan Krusche |

    March 11, 2016 Rugby - A Process Model for Continuous Software Engineering Thank You!
  24. 24.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Bibliography 24 [Wong 1984] Carolyn Wong. A successful software development. IEEE Transactions on Software Engineering, pages 714–727, 1984. [Ogunnaike and Ray 1994] Babatunde Ayodeji Ogunnaike and Willis Harmon Ray. Process Dynamics, Modeling, and Control, volume 1. Oxford University Press, 1994. [Royce 1970] Winston Royce. Managing the development of large software systems. In Proceedings of IEEE WESCON, 1970. [Schwaber 1995] Ken Schwaber. Scrum development process. In Proceedings of the OOPSLA Workshop on Business Object Design and Information, 1995. [Garrison and Kanuka 2004] Randy Garrison and Heather Kanuka. Blended learning: Uncovering its transformative potential in higher education. The internet and higher education, 2004. [Kolb 1984] David Kolb. Experiential learning: Experience as the source of learning and development, volume 1. Prentice Hall, 1984.
  25. 25.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering Bibliography 25 [Bosch 2014] Jan Bosch. Continuous Software Engineering. Springer, 2014. [OMG 2005] Object Management Group. Meta Object Facility 1.4.1, International Standard. 2005. Retrieved January 08, 2016 from http://www.omg.org/spec/MOF [Krusche et. al 2014] Stephan Krusche, Lukas Alperowitz, Bernd Bruegge, and Martin Wagner. Rugby: An agile process model based on continuous delivery. In Proceedings of the 1st International Workshop on Rapid Continuous Software Engineering, pages 42–50. ACM, 2014. [Krusche and Alperowitz 2014] Stephan Krusche and Lukas Alperowitz. Introduction of Continuous Delivery in Multi- Customer Project Courses. In Companion Proceedings of the 36th International Conference on Software Engineering, pages 335–343. IEEE, 2014. [Bruegge et. al 2015] Bernd Bruegge, Stephan Krusche, and Lukas Alperowitz. Software en- gineering project courses with industrial clients. ACM Transactions on Computing Education, 15(4):17:1–17:31, 2015. [Klepper et. al 2015] Sebastian Klepper, Stephan Krusche, Sebastian Peters, Bernd Bruegge, and Lukas Alperowitz. Introducing continuous delivery of mobile apps in a corporate environment: A case study. In Proceedings of the 2nd International Workshop on Rapid Continuous Software Engineering, pages 5–11. IEEE/ACM, 2015.
  26. 26.

    Dissertation | Stephan Krusche | Rugby - A Process Model

    for Continuous Software Engineering My relevant publications • Bernd Bruegge, Stephan Krusche, and Martin Wagner. Teaching Tornado: from communication models to releases. In Proceedings of the 8th edition of the Educators’ Symposium, pages 5–12. ACM, 2012. • Stephan Krusche and Lukas Alperowitz. Introduction of Continuous Delivery in Multi-Customer Project Courses. In Companion Proceedings of the 36th International Conference on Software Engineering, pages 335–343. IEEE, 2014. • Stephan Krusche, Lukas Alperowitz, Bernd Bruegge, and Martin Wagner. Rugby: An agile process model based on continuous delivery. In Proceedings of the 1st International Workshop on Rapid Continuous Soft- ware Engineering, pages 42–50. ACM, 2014. • Stephan Krusche and Bernd Bruegge. User feedback in mobile development. In Proceedings of the 2nd International Workshop on Mobile Development Lifecycle, pages 25–26. ACM, 2014. • Bernd Bruegge, Stephan Krusche, and Lukas Alperowitz. Software engineering project courses with industrial clients. ACM Transactions on Computing Education, 15(4):17:1–17:31, 2015. • Sebastian Klepper, Stephan Krusche, Sebastian Peters, Bernd Bruegge, and Lukas Alperowitz. Introducing continuous delivery of mobile apps in a corporate environment: A case study. In Proceedings of the 2nd International Workshop on Rapid Continuous Software Engineering, pages 5–11. IEEE/ACM, 2015. • Han Xu, Stephan Krusche, and Bernd Bruegge. Using software theater for the demonstration of innovative ubiquitous applications. In Proceedings of the 10th Joint Meeting on Foundations of Software Engineering, pages 894–897. ACM, 2015. • Stephan Krusche, Mjellma Berisha, and Bernd Bruegge. Teaching Code Review Management using Branch Based Workflows. In Companion Proceedings of the 38th International Conference on Software Engineering. IEEE, 2016. Accepted for Publication. • Dora Dzvonyar, Stephan Krusche, Rana Alkadhi and Bernd Bruegge. Context-Aware User Feedback in Continuous Software Evolution. International Workshop on Continuous Software Evolution and Delivery, ACM, 2016. Accepted for Publication. • Sebastian Klepper, Stephan Krusche and Bernd Bruegge. Semi-Automatic Generation of Audience-Specific Release Notes. International Workshop on Continuous Software Evolution and Delivery, ACM, 2016. Accepted for Publication. 26