$30 off During Our Annual Pro Sale. View Details »

Introduction of Continuous Delivery in Multi-Customer Courses

Introduction of Continuous Delivery in Multi-Customer Courses

Presentation at ICSE'14, SEET

Stephan Krusche

June 06, 2014
Tweet

More Decks by Stephan Krusche

Other Decks in Research

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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]

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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 [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

    View Slide

  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

    View Slide

  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

    View Slide