1. Understanding how #modern-software is developed and how #agile
methodologies are applied in Microsoft to #deliver #great-products
MICROSOFT + AGILE
Andrea Tino (Software Development Engineer)
2. AGILE
TEAM
SCRUM
What are we going to
learn about?
We are going to talk about how Modern
Software Development is carried out in
Software Industry.
Special focus on Microsoft’s own way of
developing great products.
3. Great software is
built by many
When you are in a team of people, you
can do amazing things! Many brains
with many ideas, and you also have
people you can rely on.
A single programmer
can’t do it
When building great software, you need
more than just a programmer.
Alone, you struggle with a lot of work to do.
Also, you make many mistakes, and alone,
you cannot learn much.
5. Development
Methodology
by means of a... A disciplined process upon software
development with the aim of making
software development more
predictable and more efficient
Martin Fowler - The New Methodology (2005)
6. Old vs New
Agile has been recently adopted
by many, but before the Software
Industry was mainly relying on
another methodology.
WATERFALL AGILE
7. GOALSACHIEVED
requirements
1
Define what customer
wants and needs
WATERFALL
explained
design
2
No coding, just thinking
and letting creativity run
implement
3
Deep coding, scripting,
coffe and late hours
verification
4
Is this thing doing what it
is supposed to do?
maintain
5
Keep the software
secure, patch it, fix it
8. Waterfall is no good (anymore)
Even though this methodology had been around for a long time
with very solid adoptions by many companies, it proved to be not
as good as technology evolved and as business started changing.
structured
rigorous
strict
fwd-only
heavy-doc
Very clear process,
clear steps, clear
agenda.
Difficult to react to
problems and
changes.
Deep control of
resources, cannot
escape planning.
Too large planning
horizon! Things can
always go wrong.
Not planned tasks
find no space for
action.
What if something
happens and plans
are to be changed?
Cannot go back,
once a phase is
done, we move on.
What if we spot a
problem in the
previous phase?
Avoids confusion,
facilitates
coordination.
It takes too much
time to write all these
papers!
11. Agile is the new methodology
With complete opposite characteristics compared to Waterfall,
Agile is today’s most adopted process for developing great
software in the world.
WATERFALL
rigorous
strict
heavy-doc
AGILE
flexible
loose
no-doc
12. Waterfall is now obsolete
Before, Waterfall was a good process. However business changed, with it software had to change
too. Agile today is able to support development which can react rapidly to the world out there,
think of it as the Shinkansen bullet trains! Waterfall is an old train which we use no more!
13. What is Agile
Agile is a development
methodology adopted today in the
software industry.
Agile promotes teamwork, flexible
procedures, and sle-organizing
teams.
What is SCRUM
SCRUM is a subset of
Agile, a framework for
developing software.
SCRUM takes advantage of
different techniques to
achieve goals in Agile.
14. SCRUM explained
Every methodology can be broken down into 3 important parts which define
critical aspects of the software development process
software
devcycle
How software
development is
organized time-wise
work
breakdown
How work-items are
defined and how
they are distributed
across team
members
roles &
responsibilities
How team members
relate to each other with
respect to work-items
15. Development cycle
SCRUM promotes an iterative model
where the planning is performed on a
very short term.
1 = 2 weeks
SPRINT
The basic time working unit is the sprint.
SCRUM teams always reason in sprints
and their planning is limited to sprints.
It depends on the software but, typically, 1 year is split into 23 sprints and teams will
work inside them. Planning is done per sprint!
16. Events in one sprint
During a sprint, teams have important events that help them work better and coordinate.
Sprint
planning
Morning
meeting
Morning
meeting
Morning
meeting
Morning
meeting
Morning
meeting
Morning
meeting
Morning
meeting
Morning
meeting
Sprint
review
SPRINTS
WEEKS
DAYS
17. Occurs at the
beginning of
each sprint
Sprint
planning
The team starts the sprint with a
meeting which can last from 1h to
2h at most.
The purpose is planning the work to
do in the sprint.
If some task from the previous sprint
has not been completed, it might
be necessary to continue in this
sprint and move some other task to
the next sprint.
18. Occurs at the
start of the
day, each day
Morning
meeting
Each day of the sprint, the team
meet and discuss about the day.
This happens before starting
working.
Each member, during his turn to
talk, tells about what he did the day
before and what he is going to do
that day.
This meeting allows all members to
stay in sync.
19. Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Ergo ita:
non posse honeste vivi, nisi honeste
vivatur? Utinam quidem dicerent alium
alio beatiorem! Iam ruinas videres. Esse
enim, nisi eris, non potes.
Occurs at the
end of each
sprint
Sprint
review
At the end of the sprint, it is time to
show the managers what the team
has achieved during the sprint.
The teams gives a presentation and
a demo about the latest work it has
done. The demo is necessary
because managers are not
developers.
20. Work breakdown
SCRUM recognizes 2 types of work-item for a team.
BUG
A bug is an anomaly in
the software. The
program is not behaving
as expected and this
needs to be fixed!
DELIVERABLE
A deliverable is
something new that must
be added to the
software like a new
feature or functionality.
21. The backlog
All the work a team needs to
do is in the backlog. Work items
are thrown inside it and
removed from it to be assigned
to team members.
Deliverables and bugs are the
elements that can be found in
the backlog.
BUGDLVBE
22. Bugs, bugs,
bugs!
Fixing bugs is one of the certain
things that team members must
focus on.
No software is bug free, and when
reported, bugs need to be fixed.
Part of the methodology is ZBB (Zero
Bug Bounce) which forces teams
not to neglet bugs.
0
5
10
15
20
ZBB threshold
ZBB
23. Roles & responsibilities
SCRUM recognizes, in teams, 2 groups of members.
CHICKENS
In this group you find
managers, stakeholders,
and everybody who is in
charge of organizational
and management
aspects of projects.
PIGS
In this group you find
developers, programmers,
designers, reviewers, and
everybody who is in
charge of actual
development and code
writing.
24. Meet all members of the family
At Microsoft we have customized roles. So here are the characters you can find in our teams.
Developer UX DesignerArchitect Writer
Manager Program ManagerLead
25. The PM and the Lead
The PM decides where the product should go, the lead decides which items the team should work on.
Program Manager Lead
26. The Lead and
his/her team
The Lead decides who is going
to work on which work item.
Lead
Developer
UX Designer
Architect
Writer
The Lead, however, does not
force work on team members,
typically team members can
pick up work items that suit them
the best, but the Lead must
approve the choice.
27. Chickens
at work
Managers, Leads, and PMs are
part of management and they
work together to ensure that the
product is released on time.
Manager
Program Manager
Lead
Reports to manager about
the status of the team
Work in sinergy to
make the team
productive and in a
good status
Works with
manager to
define/refine the
scope and
strategies to
market the product
30. The End
THANK YOU
Twitter: @_atino
E-Mail: andrea.tino@microsoft.com
This work is distributed under the Creative
Commons
Attribution-NonCommercial-ShareAlike 4.0
International license.
Cover: Agile city This work includes artworks
designed by Graphic River.
This work includes artworks
designed by Freepik.com.
January 2016
v1.0
Keywords
#agile #scrum #microsoft
#development-process
#kanban
Presentation info
Duration: 40-45 mins.
Background: Non technical
Audience: All (6th grade+)
Andrea Tino
Software Development Engineer