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

Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Teaching Agile Software Development

Martin Kropp, FHNW

Andreas Meier, ZHAW

ECSS 2013, Amsterdam, Oct. 8.-9., 2013

Page 2: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Agenda

• Motivation

• Pyramid of Agile Competences

• Agile Software Engineering Course

• Evaluation

ECSS '13, Amsterdam M. Kropp / A. Meier 2

Page 3: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 4: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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?

Page 5: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 6: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 7: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 8: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 9: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 10: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 11: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 12: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 13: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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 integralpart of the CS curriculum

M.Sc. students have sufficient knowledgeof agile methodologies

B.Sc. students have sufficient knowledgeof agile methodologies

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

COMPLETELY DISAGREE DISAGREE AGREE COMPLETELY AGREE

Page 14: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 15: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Pyramid of Agile Competences

• Technical skills or engineering practices, i.e. programming, unit testing, clean code, test-driven development, collective code ownership 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

Page 16: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Pyramid of Agile Competences

• Agile management practices define how agile projects are organized 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

Page 17: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 18: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 19: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Approaches

• Horizontal Teaching

– Separate modules for each level

• Vertical Teaching

– Integrate several levels into one module

ECSS '13, Amsterdam M. Kropp / A. Meier 19

Agile

Values

Management Practices

Engineering Practices

Agile

Values

Management Practices

Engineering Practices

Page 20: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 21: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 22: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

Page 23: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Agile Game Development

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

Page 24: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Course Evaluation

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

Page 25: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Course Evaluation

What did you like best about the course?

ECSS '13, Amsterdam M. Kropp / A. Meier 25

Page 26: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

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

?

Page 27: Teaching Agile Software Development · Retrospective Taskboard Daily standup Iteration planning User stories Release planning Agile IT-Professionals Agile Companies. ... clean code,

Kontakt • Martin Kropp

Institut für Mobile und Verteilte Systeme Fachhochschule Nordwestschweiz [email protected]

• Andreas Meier Institut für angewandte Informationstechnologie Zürcher Hochschule für Angewandte Wissenschaften [email protected]

ECSS '13, Amsterdam M. Kropp / A. Meier 27