I've prepared and used this presentation for my Engineering Management master program graduation project in 16th of June, 2017 at IZTECH, Engineering Management department.
It is a topic i've been very interested in, and a topic I spent a good amount of time and effort to learn about.
Below topics are covered in this presentation:
What is Agile?
Agile Manifesto and Principles
Flavors of Agile Development
Why go Agile and What is Scrum?
Implementing Scrum.
In Implementing Scrum part, a small case studty/scenario may be found with a step by step guide to implement Scrum.
I'm open for feedback and correcting anything wrong in the presentation. I hope it helps someone out there who wishes to learn about Agile and Scrum. :)
2. Overview
▰Introduction
▰What is Agile?
▰Agile Manifesto and Principles
▰Flavors of Agile Development
▰Why go Agile and What is Scrum?
▰Implementing Scrum
▰Conclusion
▰Q&A
Agile Development and
Implementing Scrum
3. Software Development
Can be more challenging than other industries
Why?
Young industry
Mathematical methods cannot be used as a proof
Customers have difficulty explaining their needs
Never the same
Changing requirements, needs, businesses
Introduction
Agile Development and
Implementing Scrum
4. What is Agile?
Philosophy
Time-boxed, iterative and incremental approach
Agile Development and
Implementing Scrum
History
Deming’s Toyota Production System
Waterfall’s failures
A reaction to failures
Agile manifesto was published in 2001
Early delivery, continuous improvement, adaptive
planning, embrace change
5. Agile Manifesto and Principles
Agile Development and
Implementing Scrum
Individuals and interactions
Manifesto for Agile Development
We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
Working software
Customer collaboration
Responding to change
Processes and tools
Comprehensive documentation
Contract negotiation
Following a plan
over
That is, while there is value in the items on the
right, we value the items on the left more.
7. Flavors of Agile Development
Agile Development and
Implementing Scrum
Agile Methodologies/Frameworks
Extreme Programming
Scrum
Kanban
Lean
And more...
8. Why go Agile?
Survey conducted in 2017 by VersionOne, Inc.
Shows that Adopting agile
Increases the ability to manage changing
priorities, project visibility and team productivity
Agile Development and
Implementing Scrum
Agility
Increases productivity and quality,
improves employee job satisfaction and
lowers costs.
9. Why go Agile?
Agile Development and
Implementing Scrum
Project Management Institute, Inc. 2015.
Pulse of the Profession®: Capturing the Value of Project Management
Winter, Robert. 2015. Agile Performance Improvement:
The New Synergy of Agile and Human Performance Technology
10. What is Scrum?
The same survey by
VersionOne, Inc. shows that
Scrum is used far more than
any other Agile framework
Agile Development and
Implementing Scrum
Scrum
Well-defined framework
Huge community
Well-documented
A lot of experts around the world
14. What is Scrum?
Agile Development and
Implementing Scrum
Scrum Events and Artifacts
Artifacts in Orange
Events in Blue
15. IMPLEMENTING SCRUM
Case Study: Create a web application that can be used by
teachers to enter students’ exam results and that can be used by
students to display their exam results.
Agile Development and
Implementing Scrum
16. Agile Development and
Implementing Scrum
Implementing Scrum
Scrum Team
Name Role Responsibility
PO
Product
Owner
Manage Product Backlog, maximize the value of the product
SM
Scrum
Master
Assist the PO, coach the DT and make sure Scrum is well-
understood and applied accordingly, remove impediments.
D1 Developer Work towards the Sprint Goal, estimate tasks with other developers
D2 Developer Work towards the Sprint Goal, estimate tasks with other developers
D3 Developer Work towards the Sprint Goal, estimate tasks with other developers
Get a Scrum
Team Together
Pick the Roles
• Product Owner
• Scrum Master
• The Development Team
17. P Item Est. Notes
1
As a user, I want to be able to log in to the system with my user
id and password on a web browser so that I can use the system.
2
User creation is not required as it
is handled via university's system
2
As a teacher, I want to be able to generate students list for an
exam result list so that I don't have to type all the names.
2
Students are already registered
for courses and can be copied for
an exam result list
3
As a teacher, I want to be able to enter students' exam results
so that I don't have to send an e-mail or share with a hard-copy.
2
4
As a student, I want to be able to see my exam results for all
courses I'm taking so that I don't have to go to school to check
my notes or send an e-mail to my teacher.
3
5
As a student, I want to be able to see the average of class’s
exam result so that I can see if I have done well in this exam.
3
Agile Development and
Implementing Scrum
Implementing Scrum
Product Backlog
D1
Create the
Product Backlog
PO owns the PB
Product Backlog Refinement
meeting
Write user stories
Make relative estimates
Review priorities
18. Agile Development and
Implementing Scrum
Implementing Scrum
Plan the Sprint
Determine capacity/velocity
Velocity
The number of story points(relative sizing unit)
delivered by the team in a Sprint
A new team needs several sprints to determine
its Velocity
Capacity
Calculated amount of time the Development
Team can spend in one sprint(off-days excluded)
3 people, 5 days, 8 hours per one day
Capacity per week: (3 x 5 x 8) x 0.7 = 84 hours
19. Agile Development and
Implementing Scrum
Implementing Scrum
Plan the Sprint
Determine capacity/velocity
Sprint Planning Meeting
• Decide the Sprint Length
Sprint Duration
1 week
Capacity
84 hours
Meeting Name Ideal Duration
Sprint Planning Meeting 2 hours
Daily Scrum 15 minutes
Sprint Review 1 hour
Sprint Retrospective 45 minutes
20. Agile Development and
Implementing Scrum
Implementing Scrum
Plan the Sprint
Determine capacity/velocity
Sprint Planning Meeting
• Decide the Sprint Length
• Discuss the Sprint Goal
Discuss the Sprint Goal
PO says that
«implementing the basic mechanism that will let
users log in, enter and display exam results
online» should be the goal.
21. Agile Development and
Implementing Scrum
Implementing Scrum
Plan the Sprint
Determine capacity/velocity
Sprint Planning Meeting
• Decide the Sprint Length
• Discuss the Sprint Goal
• Decide what can be delivered
What can be delivered
The first 4 items from the top of the Product
Backlog
Craft the Sprint Goal
Scrum Team crafts the Sprint Goal as
«implement the mechanism that will allow users
to log in, enter exam results and display exam
results online»
22. Priority Item Estimation Notes
1
As a user, I want to be able to log in to the system with my user
id and password on a web browser so that I can use the system.
2
User creation is not required as it
is handled via university's system
2
As a teacher, I want to be able to generate students list for an
exam result list so that I don't have to type all the names.
2
Students are already registered
for courses and can be copied for
an exam result list
3
As a teacher, I want to be able to enter students' exam results
so that I don't have to send an e-mail or share with a hard-copy.
2
4
As a student, I want to be able to see my exam results for all
courses I'm taking so that I don't have to go to school to check
my notes or send an e-mail to my teacher.
3
Agile Development and
Implementing Scrum
Implementing Scrum
Product Backlog
23. Agile Development and
Implementing Scrum
Implementing Scrum
Plan the Sprint
Determine capacity/velocity
Sprint Planning Meeting
• Decide the Sprint Length
• Discuss the Sprint Goal
• Decide what can be delivered
• Decide how items can be delivered
How items will be delivered
Break down into small tasks
Estimate in hours
24. PBI Tasks Estimation(in hours) Developer
As a user, I want to be able to log in to the system with my user id and password on a
web browser so that I can use the system.
Design and Code UI 4 D1
Design and Code DB 4 D2
Prepare test cases run 5 D3
Prepare automated tests 3 D1
As a teacher, I want to be able to generate students list for an exam result list so that
I don't have to type all the names.
Design and Code UI 4 D1
Design and Code DB 4 D2
Prepare test cases run 5 D3
Prepare automated tests 3 D1
As a teacher, I want to be able to enter students' exam results so that I don't have to
send an e-mail or share with a hard-copy.
Design and Code UI 5 D1
Design and Code DB 5 D2
Prepare test cases run 5 D3
Prepare automated tests 3 D2
As a student, I want to be able to see my exam results for all courses I'm taking so
that I don't have to go to school to check my notes for send an e-mail to my teacher.
Design and Code UI 8 D1
Design and Code DB 8 D2
Prepare test cases run 10 D3
Prepare automated tests 3 D2
Sprint Backlog
25. Agile Development and
Implementing Scrum
Implementing Scrum
Sprint
Daily Scrum
Daily Scrum
What did I do yesterday for the Sprint Goal?
What will I do today for the Sprint Goal?
Is there any impediments that prevents the team to move
towards the Sprint Goal?
26. Agile Development and
Implementing Scrum
Implementing Scrum
Sprint
Daily Scrum
Track the progress
Estimated work remaining in hours
after the Daily Scrum in the 3rd day
Day 1 Day 2 Day 3 Day 4 Day 5
79 62 44
0
20
40
60
80
100
Day 1 Day 2 Day 3 Day 4 Day 5
Sprint Burndown Chart
28. Agile Development and
Implementing Scrum
Implementing Scrum
Sprint
Daily Scrum
Track the progress
Refine the PB when needed
Sprint Review
Sprint Review
PO can invite stakeholders
D1, D2 and D3 shows a demo of the web page
Collaboratively discuss what to do next and revise the Product
Backlog if needed
29. Agile Development and
Implementing Scrum
Implementing Scrum
Sprint
Daily Scrum
Track the progress
Refine the PB when needed
Sprint Review
Sprint Retrospective
Sprint Retrospective
SM, D1, D2, D3, PO(optional) join this meeting
This meeting is for the Scrum Team only
30. Implementing Scrum
Agile Development and
Implementing Scrum
Get a Scrum
Team Together
Create the
Product Backlog
Plan the Sprint Sprint
Repeat!
Pick the Roles
• Product Owner
• Scrum Master
• The Development Team
PO owns the PB
Product Backlog Refinement
meeting
Write user stories
Make relative estimates
Review priorities
Determine capacity/velocity
Sprint Planning Meeting
• Decide the Sprint Length
• Discuss the Sprint Goal
• Decide what can be delivered
• Decide how items can be
delivered
Daily Scrum
Track the progress
Refine the PB when needed
Sprint Review
Sprint Retrospective
33. CREDITS
https://www.linkedin.com/pulse/12-agile-principles-kazem-spahi
http://www.woolpertlabs.com/wp-content/uploads/2013/10/The-Agile-Manifesto.jpg
http://www.clipartpanda.com/categories/challenge-clip-art-free
Project Management Institute, Inc. 2015. Pulse of the Profession®: Capturing the Value of Project Management
Winter, Robert. 2015. Agile Performance Improvement: The New Synergy of Agile and Human Performance Technology
VersionOne, Inc. 2017. The 11th Annual State of AgileTM Report
https://www.scrum.org/resources/blog/updates-scrum-guide-5-scrum-values-take-center-stage
https://www.slideshare.net/cesaridrovo/20150808-tune-into-signals-scrum-day-chile-2015
Stacia Viscardi. 2013. The Professional ScrumMaster's Handbook: A Collection of Tips, Tricks, and War Stories to Help the Professional
ScrumMaster Break the Chains of Traditional Organization and Management. Packt Publishing.
Kenneth S. Rubin. 2012. Essential Scrum: A Practical Guide to the Most Popular Agile Process. Addison Wesley.
http://www.jhouseconsulting.com/2008/10/30/what-the-customer-really-needed-156
33
Editor's Notes
Software Development can be more challenging than other industries
Agile’s roots go back to Deming’s Toyota Production System after World War II.
In 90s Waterfall was failing a lot due to changing requirements and needs. Customers were getting to see the first results years after requesting something. [what the customer really needed]
And Agile was born as a reaction to the failures of traditional project management methods
In 2001, in Utah, Agile manifesto was published.
Agile is a philosophy, not a method.
In traditional management methods, process and tools, comprehensive documentation, contract negotiation and following a plan is a base and valued.
In agile, the base of the philosophy is individuals and interactions, working software, customer collaboration and responding to change.
When seen this way, one may think that there is no documentation in Agile then? The answer is no.
Agile does not say «forget the items on the right side», Agile says that there is vaue in the items on the right side and we value the items on the left more.
1. Highest priority is to satisfy the customer through early and continous delivery
2. Welcome changing environments, use it for the customer’s advantage
3. Deliver working software frequently
4. Working software the primary measure of progress
5. Sustainable development
6. Business people and developers should work together
7. Work with motivated individuals, give them the environment and support and trust them.
8. Most effective way of communication is face-to-face.
9. Technical excellence.
10. Make it simple.
11. Self-organize.
12. Inspect and adapt.
XP: short, incremental cycles with frequent testing. Collaborative and self-organizing team. Pair programming and refactoring. Communication, simplicitiy, feedback and courage
Scrum: simple, flexible and concentrated on management aspects rather than engineering. Time-boxed, fixed length, Sprint. Prioritized backlog. Release early and often.
Kanban: Originally used in automotive industry. Core concept is visualizing workflow, limiting WIP and measuring lead time.
Lean: pioneered by Toyota as Lean manufacturing which is later used for software development. The purpose is to achieve quality, speed and customer alignment.
Agile is an umbrella term and there are more Agile methodologies.
PMI’s survey in 2015 shows that organizations that are more agile are more successful than their less agile counterparts.
And Robert Winter shows that only 14% of projects managed with waterfall are successful while this is 42% for Agile managed projects.
Scrum has 5 values also listed in the Scrum Guide by Ken Schwaber and Jeff Sutherland
Courage: Have the courage to change when needed.
Focus: Focused to achieve goals.
Commitment: Committed to succeed.
Respect: Respect each other.
Openness: Transparent and available for inspection and improvement.
A Scrum Team can achieve a goal together efficiently and use Scrum successfully if it embraces, learns and lives by these values. The Scrum Team will learn these values more and more by using the Scrum Artifacts and participating in the Scrum Events.
Pillars of Scrum
Transparency: Presenting the facts as is, being open and letting everyone involved see what is going on.
Inspection: Everyone in the Scrum Team can inspect the parts of the project for improvement.
Adaptation: Continous improvement. Adapting based on the results of inspection.
No team leaders, task managers or product managers like in traditional methods.
Three roles and coequal, must work closely.
Together they make the Scrum Team and they are all responsible for delivering a complete and quality product.
Product Owner: Sets the vision of the project, owns the Product Backlog.
Scrum Master: Keeper of the process. Makes sure Scrum process is followed correctly. Removes impediments. Servant leader.
Development Team: Consists of the professionals who do the work and work towards the Sprint Goal. No-one tells them how to do their job. Optimal size is 5 to 9. Scrum Guide also mentions it shouldn’t be fewer than 3 and more than 9.
Sprint: The looping arrow which is a container of all other events, time-boxed, ideally 2 to 4 weeks.
Sprint Planning Meeting: A meeting held at the beginning of every sprint to create the Sprint Goal and the Sprint Backlog, time-boxed.
Daily Scrum: Every 24 hours a a time-boxed(15 minutes) daily stand-up meeting is held ideally at the same time, at the same place. Anyone can join this meeting but only the Development Team can participate. It is the Development Team’s responsibility to have this meeting and the SM needs to make sure the DT has this meeting every day. 3 questions;
What did I do yesterday for the Sprint Goal?
What will I do today for the Sprint Goal?
Is there any impediments that prevents the team to move towards the Sprint Goal?
Sprint Review: Time-boxed, product owner can invite key end users. The DT presents what they prepared during the Sprint. An informal meeting to bring people together and discuss what should be done next.
Sprint Retrospective: Time-boxed, inspect and improve. The Scrum Team joins this meeting, PO optional. 2 questions;
What went well?
What could be improved?
Oranges are the artifacts
Blues are the events
Product Backlog: List of features, functionalities, requirements etc. Owned by the PO, prioritized list. Prepared by the PO by communicating with key stakeholders and end-users.
Sprint Backlog: Set of items selected from the Product Backlog to be implemented in the Sprint along with a plan about how they will be implemented. Created during the Sprint planning meeting.
Increment: is the actual software delivered at the end of the Sprint. It is integrated with the increments of all prior Sprints.
Definition of Done: is used to have a common understanding among the Scrum Team to decide when a PBI is done. For instance; when a PBI is done everyone understands that it is coded, tested and matches coding standards.
Product Backlog creation and prioritization is PO’s job. However, it is a good practice to create the PB as a whole Scrum Team in Product Backlog Refinement.
The input to Sprint Planning Meeting is the capacity/velocity of the Development Team.
The Development Team does not have a planned off-day in the following month.
The output of Sprint Planning Meeting is the Sprint Goal and Sprint Backlog.
The first thing to do in the Sprint Planning Meeting is to decide the Sprint Length.
The Scrum Team together agrees to have 1 week Sprints
Since the Development Team does not know its velocity they want to take as few items as possible to not disappoint PO at the end of the Sprint
They need to make sure that they take enough items to be busy until the end of the Sprint as well.
The output of Sprint Planning Meeting is the Sprint Goal and Sprint Backlog.
79 hours of work.
D1 will handle user interface,
D2 will handle database design,
D3 will handle manual tests,
D1 and D2 will prepare automated tests.
Talk about Workspace and Tools at the end of this slide.