software engineering: are we agile enough? · agile non-agile dsdm dsdm philosophy scrum extreme...

62
Agile Non-Agile Software Engineering: Are we Agile enough? Michal Okulewicz Wydzial Matematyki i Nauk Informacyjnych Politechnika Warszawska Michal Okulewicz Software Engineering

Upload: others

Post on 03-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Software Engineering:Are we Agile enough?

Michał Okulewicz

Wydział Matematyki i Nauk InformacyjnychPolitechnika Warszawska

Michał Okulewicz Software Engineering

Page 2: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM / AgilePM

Michał Okulewicz Software Engineering

Page 3: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM philosophy

Best business value emerges when projects are aligned to clear business goals, deliverfrequently and involve the collaboration of motivated and empowered people.

This is achieved when all stakeholders:

• Understand and buy into the business vision and objectives

• Are empowered to make decisions within their area of expertise

• Collaborate to deliver a fit for purpose business solution

• Collaborate to deliver to agreed timescales in accordance with business priorities

• Accept that change is inevitable as the understanding of the solution grows overtime

Michał Okulewicz Software Engineering

Page 4: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM philosophy

Best business value emerges when projects are aligned to clear business goals, deliverfrequently and involve the collaboration of motivated and empowered people.

This is achieved when all stakeholders:

• Understand and buy into the business vision and objectives

• Are empowered to make decisions within their area of expertise

• Collaborate to deliver a fit for purpose business solution

• Collaborate to deliver to agreed timescales in accordance with business priorities

• Accept that change is inevitable as the understanding of the solution grows overtime

Michał Okulewicz Software Engineering

Page 5: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM philosophy

Best business value emerges when projects are aligned to clear business goals, deliverfrequently and involve the collaboration of motivated and empowered people.

This is achieved when all stakeholders:

• Understand and buy into the business vision and objectives

• Are empowered to make decisions within their area of expertise

• Collaborate to deliver a fit for purpose business solution

• Collaborate to deliver to agreed timescales in accordance with business priorities

• Accept that change is inevitable as the understanding of the solution grows overtime

Michał Okulewicz Software Engineering

Page 6: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM philosophy

Best business value emerges when projects are aligned to clear business goals, deliverfrequently and involve the collaboration of motivated and empowered people.

This is achieved when all stakeholders:

• Understand and buy into the business vision and objectives

• Are empowered to make decisions within their area of expertise

• Collaborate to deliver a fit for purpose business solution

• Collaborate to deliver to agreed timescales in accordance with business priorities

• Accept that change is inevitable as the understanding of the solution grows overtime

Michał Okulewicz Software Engineering

Page 7: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM philosophy

Best business value emerges when projects are aligned to clear business goals, deliverfrequently and involve the collaboration of motivated and empowered people.

This is achieved when all stakeholders:

• Understand and buy into the business vision and objectives

• Are empowered to make decisions within their area of expertise

• Collaborate to deliver a fit for purpose business solution

• Collaborate to deliver to agreed timescales in accordance with business priorities

• Accept that change is inevitable as the understanding of the solution grows overtime

Michał Okulewicz Software Engineering

Page 8: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM philosophy

Best business value emerges when projects are aligned to clear business goals, deliverfrequently and involve the collaboration of motivated and empowered people.

This is achieved when all stakeholders:

• Understand and buy into the business vision and objectives

• Are empowered to make decisions within their area of expertise

• Collaborate to deliver a fit for purpose business solution

• Collaborate to deliver to agreed timescales in accordance with business priorities

• Accept that change is inevitable as the understanding of the solution grows overtime

Michał Okulewicz Software Engineering

Page 9: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 10: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 11: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 12: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 13: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 14: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 15: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 16: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 17: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM principles

1 Focus on the business need

2 Deliver on time

3 Collaborate

4 Never compromise quality

5 Build incrementally from firm foundations

6 Develop iteratively

7 Communicate continuously and clearly

8 Demonstrate control (over the SCOPE of the project)

Michał Okulewicz Software Engineering

Page 18: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM: Fixed constraints

Michał Okulewicz Software Engineering

Page 19: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM: MoSCoW

Michał Okulewicz Software Engineering

Page 20: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM: Team model

Michał Okulewicz Software Engineering

Page 21: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

DSDM: Process

Michał Okulewicz Software Engineering

Page 22: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Scrum

• Initial ideas by Hirotaka Takeuchi and Ikujiro Nonaka in The New ProductDevelopment Game. (1986)

• Cleaned up by Jeff Sutherland, John Scumniotales, and Jeff McKenna (1993)

• Presented on OOPSLA conference by Jeff Sutherland and Ken Schweber (1995)

• Described by Ken Schweber and Mike Beedle in Agile Software Development withScrum (2001)

Source:

https://www.techwell.com/techwell-insights/2012/10/brief-history-scrum

Michał Okulewicz Software Engineering

Page 23: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Scrum

Scrum:It’s like playing chess: you learn the rules and

then you play.

Michał Okulewicz Software Engineering

Page 24: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Scrum

Michał Okulewicz Software Engineering

Page 25: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Scrum roles

Product Owner - Defines client’s priorities, maintains medium-level productrequirements (i.e. Project Backlog), empowered to make decisions onbehalf of the client

Scrum Master - Expert on Scrum processes, helps to facilitate (not conduct!) DailyScrum Meetings

Team - Interdisciplinary (analysis, development, deployment, testing skills),self-organizing, motivated group consisting of 5-9 people, committed tothe project at least for a duration of a Sprint

Michał Okulewicz Software Engineering

Page 26: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Scrum processes

Sprint - a single 1-4 weeks long work period concentrated on delivering avaluable and working product

Daily stand-up - A short meeting for a whole Team for answering 3 questions:• What have I done yesterday?• What am I planning to do today?• Do I have any problems?

Stand-up meeting should provide sufficient background for furtherface-to-face interactions and overall knowledge of sprint progress.

Sprint kick-off meeting - a meeting for planning the next sprint, breaking-downproduct backlog items into smaller tasks for sprint backlog, and makingtime estimations of them

Sprint review and retrospective - a meeting(s) concluding the Sprint, and measuringTeam’s velocity

Michał Okulewicz Software Engineering

Page 27: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Scrum processes

Product Backlog - a set of mid-level prioritized tasks

Sprint Backlog - a set of low-level tasks, which the Team chose to complete duringparticular Sprint. Tasks are based on the Product Backlog

Burndown chart - a tool for measuring Team’s performance (aka velocity) during theSprint

Michał Okulewicz Software Engineering

Page 28: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Scrum rules

• Client should be constantly involved

• Team should partake in tasks estimation

• Team commits, as a whole, to delivering a new product within a single sprint

• Individuals are responsible for the quality of their work (code ownership)

Michał Okulewicz Software Engineering

Page 29: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Product backlog

Id Priority Description Est. Compl. Resp.

1 M Create database structure 6h 8h NS2 M Present the data 2h 1h IN5 M Fill in the database 4h 3h AB

3 S Analyze processes involving DB 5h - -

4 C Online data update mechanism 8h - CD

Michał Okulewicz Software Engineering

Page 30: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

eXtreme Programming

• Chrysler Comprehensive Compensation System developement initiated (a payrollsystem supposed to support 87 000 employers, written in SmallTalk) (1994)

• System does not printout a single paycheck (1996)

• Kent Beck hired, Extreme Programming invented (1996)

• System deployed (1997)

• System closed after processing payrolls of around 10 000 people due totechnological and business change (1999)

Sources:https://en.wikipedia.org/wiki/Chrysler_Comprehensive_Compensation_System

Kent Beck’s book on Extreme Programming

Michał Okulewicz Software Engineering

Page 31: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

eXtreme Programming

XP:Take well-known best practices of codedevelopment and testing to the extreme.

Michał Okulewicz Software Engineering

Page 32: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

eXtreme Programming

Michał Okulewicz Software Engineering

Page 33: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Michał Okulewicz Software Engineering

Page 34: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 35: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 36: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 37: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 38: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 39: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 40: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 41: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 42: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 43: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 44: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 45: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 46: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

XP rules

1 Planning2 Small releases3 System metaphor4 Simple design5 Continuous testing6 Refactoring7 Pair Programming8 Collective ownership9 Continuous integration

10 40-hour work week11 Continuous client interaction12 Coding standards

Michał Okulewicz Software Engineering

Page 47: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Project Approach Questionnaire I

Strongly Agree Agree Neutral Disagree Strongly Disagree

• All members of the project understand and accept the DSDM approach(Philosophy, Principles and Practices)

• The Business Sponsor and the Business Visionary demonstrate clear and proactiveownership of the project.

• The business vision driving the project is clearly stated and understood by allmembers of the project team

• All project participants understand and accept that on-time delivery of anacceptable solution is the primary measure of success for the project

Michał Okulewicz Software Engineering

Page 48: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Project Approach Questionnaire II

Strongly Agree Agree Neutral Disagree Strongly Disagree

• The requirements can be prioritized and there is confidence that cost and timecommitments can be met by flexing the scope of what’s delivered.

• All members of the project team accept that requirements should only be definedat a high level in the early phases of the project and that detail will emerge asdevelopment progresses.

• All members of the project team accept that change in requirements is inevitableand that it is only by embracing change that the right solution will be delivered.

Michał Okulewicz Software Engineering

Page 49: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Project Approach Questionnaire III

Strongly Agree Agree Neutral Disagree Strongly Disagree

• The Business Sponsor and Business Visionary understand that active businessinvolvement is essential and have the willingness and authority to commitappropriate business resources to the project.

• It is possible for the business and solution development members of the SolutionDevelopment Team to work collaboratively throughout the project.

• Empowerment of all members of the Solution Development Team is appropriateand sufficient to support the day-to-day decision-making needed to rapidly evolvethe solution in short, focussed Timeboxes

Michał Okulewicz Software Engineering

Page 50: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Project Approach Questionnaire IV

Strongly Agree Agree Neutral Disagree Strongly Disagree

• The DSDM roles and responsibilities are appropriately allocated and all roleholders understand and accept the responsibilities associated with their role.

• The Solution Development team has the appropriate collective knowledge andskills (soft skills and technical skills) to collaboratively evolve an optimal businesssolution.

• Solution Development Team members are allocated to the project at anappropriate and consistent level sufficient to fully support the DSDM timeboxingpractice

Michał Okulewicz Software Engineering

Page 51: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

DSDMDSDM philosophyScrumeXtreme ProgrammingBack to DSDM - verifying agility

Project Approach Questionnaire V

Strongly Agree Agree Neutral Disagree Strongly Disagree

• Tools and collaborative working practices within the Solution Development Teamare sufficient to allow effective Iterative Development of the solution.

• All necessary review and testing activity is fully integrated within the IterativeDevelopment practice.

• Project progress is measured primarily through the incremental, demonstrabledelivery of business value.

• There are no mandatory standards or other constraints in place that will preventthe application of the DSDM Philosophy and Practices on this project.

Michał Okulewicz Software Engineering

Page 52: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Alternatives

What if Agile is not an option?

Michał Okulewicz Software Engineering

Page 53: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Rational Unified Process

Michał Okulewicz Software Engineering

Page 54: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Why RUP is not an Agile framework?

• Does not involve whole team in the analysis phase

• Plans products in all the phases up-front, instead of choosing particular work atthe beginning of each iteration

• Explicitly orders the use-case flows (i.e. functions of the product) to be deliveredby their risk (starting with those with higher risk assessment)

• Measures project progress by completed use-case flows

• Answers common management and development problems by creating variousartifacts: use cases, use-case flows, Software Development Plan, Risk ManagementPlan

Michał Okulewicz Software Engineering

Page 55: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

RUP phases

• Inception

• Elaboration

• Construction

• Transition

Michał Okulewicz Software Engineering

Page 56: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Inception

• Express clearly project scope: to capture context, as well requirements, constraintsand key features for acceptance criterias.

• Plan and prepare business case: to assess alternatives for risk management, teamorganization and project plan.

• Architecture draft: draft architecture through some PoC development.

• Prepare environment: assess project and organizations, select tools and whichparts should be improved.

Michał Okulewicz Software Engineering

Page 57: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Elaboration

• Create baseline architecture: create an executable architecture

• Refine vision

• Create detailed iteration plans and baselines for construction

• Refine use case and prepare construction phase: at the end of the phase 80% ofuse case descriptions should be complete.

Michał Okulewicz Software Engineering

Page 58: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Construction

• Manage resources, control and process optimization.

• Component development and acceptance criteria test development.

• Product release assessment based on acceptance criteria.

Michał Okulewicz Software Engineering

Page 59: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Transition

• Execute implanting plans.

• Finish support material.

• Test released product in development environment.

• Create product release.

• Get user feedback.

• Adjust product based on user feedback.

• Make software available to end user.

Michał Okulewicz Software Engineering

Page 60: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Take away message

Agile practices may be applied without Agileproject management,

but not the other way round

Michał Okulewicz Software Engineering

Page 61: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Take away message

Agile practices may be applied without Agileproject management,

but not the other way round

Michał Okulewicz Software Engineering

Page 62: Software Engineering: Are we Agile enough? · Agile Non-Agile DSDM DSDM philosophy Scrum eXtreme Programming Back to DSDM - verifying agility DSDM / AgilePM Michał Okulewicz Software

AgileNon-Agile

Rational Unified ProcessFurther reading

Further reading

• https://www.agilebusiness.org/content/introduction-0• http://www.agile-process.org/• https://www.versionone.com/agile-101/agile-methodologies/• https://www.ibm.com/developerworks/rational/library/1826.html• https://en.wikibooks.org/wiki/RUP_-_IBM_Rational_Unified_Process/Phases• https://www.martinfowler.com/articles/newMethodology.html• https://en.wikipedia.org/wiki/Chrysler_Comprehensive_Compensation_System• http://alpha.mini.pw.edu.pl/~kaczmars/artykuly/xp-zespol.pdf

Michał Okulewicz Software Engineering