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

teaching agile software
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Teaching Agile Software Development

Martin Kropp, FHNW Andreas Meier, ZHAW ECSS 2013, Amsterdam, Oct. 8.-9., 2013

slide-2
SLIDE 2

Agenda

  • Motivation
  • Pyramid of Agile Competences
  • Agile Software Engineering Course
  • Evaluation

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

2

slide-3
SLIDE 3

Motivation

  • “Agile” has become mainstream

– Swiss Agile Study 2012 (SAS)

  • 140 IT companies
  • 194 IT Professionals
  • Identified as one important

innovation

  • Two sides of the medal…

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

3

Agile 57% Non- Agile 43%

Company Survey

www.swissagilestudy.ch

slide-4
SLIDE 4

The Good Sides: Satisfaction

0% 6% 2% 21% 16% 31% 25% 32% 64% 52% 53% 40% 20% 10% 19% 7% Agile Companies Non-Agile Companies Agile IT-Professionals Non Agile IT-Professionals Unsatisfied Somewhat satisfied Satisfied Very satisfied

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

4

How satisfied are you with your current methodology?

slide-5
SLIDE 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

slide-6
SLIDE 6

The Good Sides: Agile Influence

How has agile software development influenced the following aspects?

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

6

19% 9% 25% 25% 17% 29% 53% 45% 46% 39% 58% 51% 23% 44% 23% 28% 22% 13%

Time to market Ability to manage changing priorities Alignment between IT & business objectives Project visibility Development process Requirements management

Much worse Worse Unchanged Improved Significantly improved Don't know

slide-7
SLIDE 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

slide-8
SLIDE 8

The Dark Sides: Agile Influence

How has agile software development influenced the following aspects?

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

8

33% 45% 55% 52% 42% 47% 35% 23% 22% 42% 15% 16% 12% 7% 9%

Productivity Software quality Software maintainability / extensibility capability Development cost Engineering discipline

Much worse Worse Unchanged Improved Significantly improved Don't know

slide-9
SLIDE 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

slide-10
SLIDE 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

slide-11
SLIDE 11

How Agile is Applied

  • Engineering Practices

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

11

0% 20% 40% 60% 80% 100%

Behavior Driven Development (BDD) Acceptance Test Driven Development (ATDD) Automated acceptance testing Continuous delivery Collective code ownership Pair programming Test Driven Development (TDD) Refactoring Continuous integration Automated builds Coding standards Unit testing

Agile IT-Professionals Agile Companies

slide-12
SLIDE 12

How Agile is Applied

  • Managing Practices

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

12

0% 20% 40% 60% 80% 100%

Kanban Pull System/Limited WIP On-site customer Continuous delivery Open work area Story mapping Burndown charts Retrospective Taskboard Daily standup Iteration planning User stories Release planning

Agile IT-Professionals Agile Companies

slide-13
SLIDE 13

What the Industries says

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

13

2% 7% 11% 34% 4% 54% 54% 53% 59% 34% 35% 10% 35% 5% 1% 4%

0% 20% 40% 60% 80% 100%

Agile development should be an integral part of the CS curriculum M.Sc. students have sufficient knowledge

  • f agile methodologies

B.Sc. students have sufficient knowledge

  • f agile methodologies

Agile should not be taught at university, it is better learned on the job

COMPLETELY DISAGREE DISAGREE AGREE COMPLETELY AGREE

slide-14
SLIDE 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

slide-15
SLIDE 15

Pyramid of Agile Competences

  • Technical skills or engineering

practices, i.e. programming, unit testing, clean code, test-driven development, collective code

  • wnership etc.
  • 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

Agile Values Management Practices Engineering Practices

slide-16
SLIDE 16

Pyramid of Agile Competences

  • Agile management practices

define how agile projects are

  • rganized and run
  • I.e. iterative planning, short

release cycles, small releases, strong customer involvement and highly interactive teams

  • Management practices are

typically team aspects, which require appropriate social competences

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

16

Agile Values Management Practices Engineering Practices

slide-17
SLIDE 17

Pyramid of Agile Competences

  • On top of these competences

come the agile values, which are articulated in the Agile Manifesto i.e. behavior like mutual respect, openness, and courage

  • Difficult to teach

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

17

Agile Values Management Practices Engineering Practices

slide-18
SLIDE 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

slide-19
SLIDE 19

Approaches

  • Horizontal Teaching

– Separate modules for each level

  • Vertical Teaching

– Integrate several levels into

  • ne module

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

19

Agile Values Management Practices Engineering Practices Agile Values Management Practices Engineering Practices

slide-20
SLIDE 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

slide-21
SLIDE 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

slide-22
SLIDE 22

Agile Software Engineering Course

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

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

22

Agile Values Management Practices Engineering Practices

slide-23
SLIDE 23

Agile Game Development

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

23

slide-24
SLIDE 24

Course Evaluation

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

24

slide-25
SLIDE 25

Course Evaluation

What did you like best about the course?

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

25

slide-26
SLIDE 26

ECSS '13, Amsterdam

  • M. Kropp / A. Meier

26

?

slide-27
SLIDE 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