1
Agile Project ManagementTHE ART OF MANAGING PROJECTS WITHOUT PROJECT MANAGERS
Giampiero Bonifazi
17/10/2016
2
Agile Project ManagementTopics:
1. 10 key AGILE´s principles (15 min)
2. How SCRUM implements AGILE (25min)
3. Q&A ((15 min)
3
Agile Project Management
Agile development is a different way of managing IT development teams and projects.
4
5
Agile principles1. Active user
involvement is the first principle of agile development.
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!
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.
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.
9
Agile principles
3. In agile development, requirements evolve, but timescales are fixed.
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.
11
Requirements evolve, but timescales are fixed.
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.
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.
14
Agile principles
5. Agile development projects are delivered in small pieces, delivering small, incremental releases and iterating.
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)
16
Agile principles
6. Agile development is all about frequent delivery of features.
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
18
Agile principles
7. In agile development, “done” should really mean “DONE!”
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!
20
Agile principles
8. *Typically* 80% of your results may actually come from only 20% of your efforts!
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.
22
Agile principles
9. In agile development, testing is integrated throughout the lifecycle.
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.
24
Agile principles
10. Agile development relies on close cooperation and collaboration between all team members and stakeholders.
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.
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?
27
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
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.
30
31
32
33
34
35
36
37
38
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…
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.
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.
42
43
44
45
46
47
48
49
50
51
52
Do you think going agile is for everyone?
Why? Or why not?
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..
Top Related