Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rugby - A Process Model for Continuous Software Engineering

Rugby - A Process Model for Continuous Software Engineering

Rigorosum Presentation of my Dissertation

Stephan Krusche

March 11, 2016
Tweet

More Decks by Stephan Krusche

Other Decks in Research

Transcript

  1. [email protected] - www.skrusche.de - @skrusche
    Dissertation | Stephan Krusche | March 11, 2016
    Rugby - A Process Model for
    Continuous Software Engineering

    View Slide

  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

    View Slide

  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)

    View Slide

  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]

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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»

    View Slide

  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»

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  14. Dissertation | Stephan Krusche | Rugby - A Process Model for Continuous Software Engineering 14
    Requirements
    Elicitation
    Analysis
    Design
    Implementation
    Test
    Deployment
    Time

    View Slide

  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

    View Slide

  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

    View Slide

  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]

    View Slide

  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

    View Slide

  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]

    View Slide

  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

    View Slide

  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]

    View Slide

  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

    View Slide

  23. [email protected] - www.skrusche.de - @skrusche
    Dissertation | Stephan Krusche | March 11, 2016
    Rugby - A Process Model for
    Continuous Software Engineering
    Thank You!

    View Slide

  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.

    View Slide

  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.

    View Slide

  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

    View Slide