teaching agile software
play

Teaching Agile Software Development Martin Kropp, FHNW Andreas - PowerPoint PPT Presentation

Teaching Agile Software Development Martin Kropp, FHNW Andreas Meier, ZHAW ECSS 2013, Amsterdam, Oct. 8.-9., 2013 Agenda Motivation Pyramid of Agile Competences Agile Software Engineering Course Evaluation ECSS '13, Amsterdam


  1. Teaching Agile Software Development Martin Kropp, FHNW Andreas Meier, ZHAW ECSS 2013, Amsterdam, Oct. 8.-9., 2013

  2. Agenda • Motivation • Pyramid of Agile Competences • Agile Software Engineering Course • Evaluation ECSS '13, Amsterdam M. Kropp / A. Meier 2

  3. Motivation • “Agile” has become mainstream – Swiss Agile Study 2012 (SAS) • 140 IT companies • 194 IT Professionals Company Survey Non- • Identified as one important Agile 43% innovation Agile 57% • Two sides of the medal… www.swissagilestudy.ch ECSS '13, Amsterdam M. Kropp / A. Meier 3

  4. The Good Sides: Satisfaction How satisfied are you with your current methodology? Non Agile IT-Professionals 21% 32% 40% 7% Agile IT-Professionals 2% 25% 53% 19% Non-Agile Companies 6% 31% 52% 10% Agile Companies 0% 16% 64% 20% Unsatisfied Somewhat satisfied Satisfied Very satisfied ECSS '13, Amsterdam M. Kropp / A. Meier 4

  5. Motivation SAS shows very promising results: • much higher satisfaction with agile methodologies than with plan-driven ones ECSS '13, Amsterdam M. Kropp / A. Meier 5

  6. The Good Sides: Agile Influence How has agile software development influenced the following aspects? Requirements management 29% 51% 13% Development process 17% 58% 22% Project visibility 25% 39% 28% Alignment between IT & business objectives 25% 46% 23% Ability to manage changing priorities 9% 45% 44% Time to market 19% 53% 23% Much worse Worse Unchanged Improved Significantly improved Don't know ECSS '13, Amsterdam M. Kropp / A. Meier 6

  7. Motivation SAS shows very promising results: • significant improvement in the ability to manage changing priorities • improvement of the development process in general • much faster time-to-market ECSS '13, Amsterdam M. Kropp / A. Meier 7

  8. The Dark Sides: Agile Influence How has agile software development influenced the following aspects? Engineering discipline 42% 42% 9% Development cost 52% 22% 7% Software maintainability / extensibility capability 55% 23% 12% Software quality 45% 35% 16% Productivity 33% 47% 15% Much worse Worse Unchanged Improved Significantly improved Don't know ECSS '13, Amsterdam M. Kropp / A. Meier 8

  9. Motivation SAS shows very promising results at first view, there are also disappointing findings • Development cost • Software quality • Software maintainability have not really improved as much as expected ECSS '13, Amsterdam M. Kropp / A. Meier 9

  10. Motivation Pros: • Major improvements in some project management aspects Cons: • Minor or no improvements in financial, technical or quality aspects Reasons? ECSS '13, Amsterdam M. Kropp / A. Meier 10

  11. How Agile is Applied • Engineering Practices Unit testing Coding standards Automated builds Continuous integration Refactoring Test Driven Development (TDD) Pair programming Collective code ownership Continuous delivery Automated acceptance testing Acceptance Test Driven Development (ATDD) Behavior Driven Development (BDD) 0% 20% 40% 60% 80% 100% Agile IT-Professionals Agile Companies ECSS '13, Amsterdam M. Kropp / A. Meier 11

  12. How Agile is Applied • Managing Practices Release planning User stories Iteration planning Daily standup Taskboard Retrospective Burndown charts Story mapping Open work area Continuous delivery On-site customer Kanban Pull System/Limited WIP 0% 20% 40% 60% 80% 100% Agile IT-Professionals Agile Companies ECSS '13, Amsterdam M. Kropp / A. Meier 12

  13. What the Industries says Agile should not be taught at university, 34% 53% 10% 4% it is better learned on the job B.Sc. students have sufficient knowledge 11% 54% 35% 1% of agile methodologies M.Sc. students have sufficient knowledge 7% 54% 34% 5% of agile methodologies Agile development should be an integral 4% 59% 35% 2% part of the CS curriculum 0% 20% 40% 60% 80% 100% COMPLETELY DISAGREE DISAGREE AGREE COMPLETELY AGREE ECSS '13, Amsterdam M. Kropp / A. Meier 13

  14. and Agile Education … • What does this mean for teaching software engineering? • Do we provide the right courses? • Which skills and competences does an agile worker need? ECSS '13, Amsterdam M. Kropp / A. Meier 14

  15. Pyramid of Agile Competences • Technical skills or engineering practices , Agile Values i.e. programming, unit testing, clean code, test-driven Management Practices development, collective code ownership etc. Engineering Practices • Engineering practices are mostly competences that refer to the single individual • Software Craftsmanship • builds the foundation of the pyramid ECSS '13, Amsterdam M. Kropp / A. Meier 15

  16. Pyramid of Agile Competences • Agile management practices Agile define how agile projects are Values organized and run Management • I.e. iterative planning, short Practices release cycles, small releases, strong customer involvement Engineering Practices and highly interactive teams • Management practices are typically team aspects, which require appropriate social competences ECSS '13, Amsterdam M. Kropp / A. Meier 16

  17. Pyramid of Agile Competences • On top of these competences Agile Values come the agile values , which Management are articulated in the Agile Practices Manifesto Engineering Practices i.e. behavior like mutual respect, openness, and courage • Difficult to teach ECSS '13, Amsterdam M. Kropp / A. Meier 17

  18. Agile Education Concept • All three levels must be considered • Bachelor and Master level • Appropriate teaching methods should be applied – courses, simulations, case studies, group work ECSS '13, Amsterdam M. Kropp / A. Meier 18

  19. Approaches • Horizontal Teaching Agile Values – Separate modules for each Management Practices level Engineering Practices • Vertical Teaching Agile – Integrate several levels into Values Management one module Practices Engineering Practices ECSS '13, Amsterdam M. Kropp / A. Meier 19

  20. Agile Software Engineering Course • 16-week semester class in the last year of the undergraduate level (B.Sc.) • The students completed one Java programming project in an agile team of six to eight members during the course of the semester • Per week there were a 2 hours lecture with the whole class and a 2 hours programming workshop with half the class • 27 students were enrolled ECSS '13, Amsterdam M. Kropp / A. Meier 20

  21. Agile Software Engineering Course • Distribution of lectures, workshops and self- study: Lectures 32 h Workshops 32 h Self-study 56 h Total 120 h ECSS '13, Amsterdam M. Kropp / A. Meier 21

  22. Agile Software Engineering Course W Lecture Workshop 1 eXtreme Programming Installation IDE and Plug-Ins Coding Assessment 1 2 eXtreme Programming Coding Assessment 2 Version Control Version Control System (SVN) 3 eXtreme Programming Build Scripts (Ant) Project Automation 4 Continuous Integration CI (Jenkins Build Server) 5 Unit Testing JUnit Agile 6 Unit Testing / Mock Objects JUnit Values Clean Code / Code Smells EasyMock 7 Refactoring Refactoring Management 8 Introduction to Test-Driven TDD, The Craftsman articles Practices Design / Scrum 9 Scrum Agile Game Development 10 Scrum Agile Game Development Engineering 11 Agile Estimating and Planning Agile Game Development Planning Poker Practices 12 Metrics Agile Game Development Agile Teams Metrics (EMMA) 13 User Stories Agile Game Development Agile Principles 14 Demonstration of Agile Game Development computer games ECSS '13, Amsterdam M. Kropp / A. Meier 22

  23. Agile Game Development ECSS '13, Amsterdam M. Kropp / A. Meier 23

  24. Course Evaluation ECSS '13, Amsterdam M. Kropp / A. Meier 24

  25. Course Evaluation What did you like best about the course? ECSS '13, Amsterdam M. Kropp / A. Meier 25

  26. ? ECSS '13, Amsterdam M. Kropp / A. Meier 26

  27. Kontakt • Martin Kropp Institut für Mobile und Verteilte Systeme Fachhochschule Nordwestschweiz martin.kropp@fhnw.ch • Andreas Meier Institut für angewandte Informationstechnologie Zürcher Hochschule für Angewandte Wissenschaften meea@zhaw.ch ECSS '13, Amsterdam M. Kropp / A. Meier 27

Recommend


More recommend