Agile Project Management

Click here to load reader

  • date post

    11-Apr-2017
  • Category

    Technology

  • view

    50
  • download

    1

Embed Size (px)

Transcript of Agile Project Management

Agile Project Management

Agile Project ManagementThe art of managing projects without project managers

Giampiero Bonifazi17/10/2016

1

Agile Project Management

Topics:10 key AGILEs principles (15 min)How SCRUM implements AGILE (25min)Q&A ((15 min)2

2

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

4

Agile principlesActive user involvement is the first principle of agile development.5

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/sponsorThe user/business/sponsor sees the commitment of the teamDevelopers are accountable, sharing progress openly with the user/business/sponsor every dayThere is complete transparency as there is nothing to hideResponsibility is sharedWhen the going gets tough, the whole team business and technical work together!6

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

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.8

Agile principlesIn agile development, requirements evolve, but timescales are fixed.9

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 thats 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, its imperative to start development (dependencies permitting) with the core, highest priority features, making sure they are delivered in the earliest iterations.10

Requirements evolve, but timescales are fixed.

11

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

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 its going on a card forces it to be broken down small.13

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

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 youve 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, Wont-have)15

Agile principlesAgile development is all about frequent delivery of features.16

Frequent delivery of features.

A regular release cycle allows you to learn more effectively. Your estimating might be good, it might be bad. Hopefully its 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*), youll begin to understand your *normal* delivery rate

*SCRUM says break things into 15 or 30 days sprints

17

Agile principlesIn agile development, done should really mean DONE!18

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 doesnt really mean DONE!. It doesnt mean tested. It doesnt necessarily mean styled. And it certainly doesnt 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!19

Agile principles*Typically* 80% of your results may actually come from only 20% of your efforts!20

Apply the 80/20 ruleIn 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.21

Agile principlesIn agile development, testing is integrated throughout the lifecycle.22

Test the software continuously throughout its developmentAgile 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.23

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

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.25

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?26

27

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 whole28

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 theScrum 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.29

30

31

32

33

34

35

36

37

38

How to implement Scrum in 10 easy stepsGet your backlog in orderEstimate your product backlogSprint Planning/clarify requirementsSprint Planning/Estimate tasksCreate a collaborative workspaceSprint!Stand up and be counted!Track progress with a daily burndown chartFinish when you said you wouldReview, reflect, repeat39

39

The heart of Scrum is a SprintA 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. 40

The heart of Scrum is a SprintDuring 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.41

42

43

44

45

46

47

48

49

50

51

Do you think going agile is for everyone?

Why? Or why not?

52

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..53