Download - Agile Project Management

Transcript
Page 1: Agile Project Management

1

Agile Project ManagementTHE ART OF MANAGING PROJECTS WITHOUT PROJECT MANAGERS

Giampiero Bonifazi

17/10/2016

Page 2: Agile Project Management

2

Agile Project ManagementTopics:

1. 10 key AGILE´s principles (15 min)

2. How SCRUM implements AGILE (25min)

3. Q&A ((15 min)

Page 3: Agile Project Management

3

Agile Project Management

Agile development is a different way of managing IT development teams and projects.

Page 4: Agile Project Management

4

Page 5: Agile Project Management

5

Agile principles1. Active user

involvement is the first principle of agile development.

Page 6: Agile Project Management

6

Responsibility is shared

• Requirements are clearly communicated and understood (at a high level)• Requirements are prioritised appropriately based on the needs of the user • Requirements can be clarified on a daily basis with the entire project team

and the user/business/sponsor• The user/business/sponsor sees the commitment of the team• Developers are accountable, sharing progress openly with the

user/business/sponsor every day• There is complete transparency as there is nothing to hide• Responsibility is shared• When the going gets tough, the whole team – business and technical – work together!

Page 7: Agile Project Management

7

Agile principles

2. An agile development team must include all the necessary team members to make decisions, and make them on a timely basis.

Page 8: Agile Project Management

8

All team members make decisions.

The team must establish and clarify the requirements together, prioritise them together, agree to the tasks required to deliver them together, and estimate the effort involved together.

Page 9: Agile Project Management

9

Agile principles

3. In agile development, requirements evolve, but timescales are fixed.

Page 10: Agile Project Management

10

Requirements evolve, but timescales are fixed. In a traditional development project, one of the earliest goals is to capture all known requirements and baseline the scope so that any other changes are subject to change control.• Agile Development works on the premise that requirements emerge

and evolve. Traditional projects fight change, with change control processes designed to minimise and resist change wherever possible. • By contrast, agile development projects accept change; in fact they

expect it. Because the only thing that’s certain in life is change. So to include a new requirement, or to change a requirement, the user or product owner must remove a comparable amount of work from the project in order to accommodate the change.

• In Agile Development, it is always the scope (or features) that are variable, not the cost and timescale. For this philosophy to work, it’s imperative to start development (dependencies permitting) with the core, highest priority features, making sure they are delivered in the earliest iterations.

Page 11: Agile Project Management

11

Requirements evolve, but timescales are fixed.

Page 12: Agile Project Management

12

Agile principles

4. Agile development teams capture requirements at a high level and on a piecemeal basis, just-in-time for each feature to be developed.

Page 13: Agile Project Management

13

Capture requirements at a high level.

• Requirements should be captured at the outset should be captured at a high level and in a visual format, perhaps for example as a storyboard of the user interface.

• Each requirement should be represented a use case or user story, on a card and use a T-card system to allow stories to be moved around easily as the user/business representative on the project adjusts priorities.

• Requirements are broken down into very small pieces in order to achieve this; and actually the fact it’s going on a card forces it to be broken down small.

Page 14: Agile Project Management

14

Agile principles

5. Agile development projects are delivered in small pieces, delivering small, incremental releases and iterating.

Page 15: Agile Project Management

15

Deliver small, incremental releases and iterate.

•Analyse, Develop, Test; Analyse, Develop, Test; and so on... doing each step for each feature, one feature at a time.•Another practicality is to make sure features are developed in priority order. Only when you’ve completed all your must-have features, move on to the should-haves, and only then move on to the could-haves.

MoSCoW terms (Must-have, Should-have, Could-have, Won’t-have)

Page 16: Agile Project Management

16

Agile principles

6. Agile development is all about frequent delivery of features.

Page 17: Agile Project Management

17

Frequent delivery of features. •A regular release cycle allows you to learn more effectively. Your estimating might be good, it might be bad. Hopefully it’s at least consistent.• If you estimate features at a granular level (ideally less than 1 day) and track your velocity (how much of your estimate you actually delivered in each sprint*), you’ll begin to understand your *normal* delivery rate

*SCRUM says break things into 15 or 30 days sprints

Page 18: Agile Project Management

18

Agile principles

7. In agile development, “done” should really mean “DONE!”

Page 19: Agile Project Management

19

”Done” should really mean “DONE!”

• Features developed within an iteration (Sprint in Scrum), should be 100% complete by the end of the Sprint.Too often in software development, “done” doesn’t really mean “DONE!”. It doesn’t mean tested. It doesn’t necessarily mean styled. And it certainly doesn’t usually mean accepted by the product owner. It just means developed.

• Make sure that each feature is fully developed, tested, styled, and accepted by the product owner before counting it as “DONE!

DONE = Production ready!

Page 20: Agile Project Management

20

Agile principles

8. *Typically* 80% of your results may actually come from only 20% of your efforts!

Page 21: Agile Project Management

21

Apply the 80/20 rule

In agile development, we should try to apply the 80/20 rule, seeking to focus on the important 20% of effort that gets the majority of the results.

Page 22: Agile Project Management

22

Agile principles

9. In agile development, testing is integrated throughout the lifecycle.

Page 23: Agile Project Management

23

Test the software continuously throughout its development

Agile development does not have a separate test phase as such. Developers are much more heavily engaged in testing, writing automated repeatable unit tests to validate their code.

Page 24: Agile Project Management

24

Agile principles

10. Agile development relies on close cooperation and collaboration between all team members and stakeholders.

Page 25: Agile Project Management

25

Cooperation and collaboration between all

Agile development principles include keeping requirements and documentation lightweight, and acknowledging that change is a normal and acceptable reality in software development.

Page 26: Agile Project Management

26

SCRUM Scrum is an agile way to manage a project, rather than viewing as methodology, think of it as a framework for managing a process.

How SCRUM implements AGILE?

Page 27: Agile Project Management

27

Page 28: Agile Project Management

28

But how SCRUM implements AGILE?

Scrum relies on a self-organizing, cross-functional TEAM. The scrum team is self-organizing in that there is no overall team leader who decides which person will do which task or how a problem will be solved. Those are issues that are decided by the team as a whole

Page 29: Agile Project Management

29

But how SCRUM implements AGILE?

•Within agile development, Scrum teams are supported by two specific roles. The first is a Scrum Master, who can be thought of as a coach for the team, helping team members use the Scrum process to perform at the highest level.•The Product Owner (PO) is the other role and he represents the business, customers or users, and guides the team toward building the right product.

Page 30: Agile Project Management

30

Page 31: Agile Project Management

31

Page 32: Agile Project Management

32

Page 33: Agile Project Management

33

Page 34: Agile Project Management

34

Page 35: Agile Project Management

35

Page 36: Agile Project Management

36

Page 37: Agile Project Management

37

Page 38: Agile Project Management

38

Page 39: Agile Project Management

39

How to implement Scrum in 10 easy steps

1. Get your backlog in order2. Estimate your product backlog3. Sprint Planning/clarify requirements4. Sprint Planning/Estimate tasks5. Create a collaborative workspace6. Sprint!7. Stand up and be counted!8. Track progress with a daily burndown chart9. Finish when you said you would10.Review, reflect, repeat…

Page 40: Agile Project Management

40

The heart of Scrum is a Sprint

• A sprint, is a time-box of one month or less (usually 2 weeks) during which a “Done”, useable, and potentially releasable product increment is created. Sprints best have consistent durations throughout a development effort. • A new Sprint starts immediately after the conclusion of the previous Sprint. Sprints contain and consist of the Sprint Planning, Daily Scrums, the development work, the Sprint Review, and the Sprint Retrospective.

Page 41: Agile Project Management

41

The heart of Scrum is a Sprint

During the Sprint:• No changes are made that would endanger the Sprint Goal;• Quality goals do not decrease;• Scope may be clarified and re-negotiated between the Product Owner and Development Team as more is learned.

Page 42: Agile Project Management

42

Page 43: Agile Project Management

43

Page 44: Agile Project Management

44

Page 45: Agile Project Management

45

Page 46: Agile Project Management

46

Page 47: Agile Project Management

47

Page 48: Agile Project Management

48

Page 49: Agile Project Management

49

Page 50: Agile Project Management

50

Page 51: Agile Project Management

51

Page 52: Agile Project Management

52

Do you think going agile is for everyone?

Why? Or why not?

Page 53: Agile Project Management

53

Yes! Agile is for everybody.

Agile main benefit lies in the communication with the team and other stakeholders.

Because you can do it in such a flexible manner and in so many different ways – Scrum, Kanban, etc. going agile helps and allows everyone to be fully involved. Therefore, for that reason alone, it could be helpful and useful for everyone..