microsoft + agile (light)

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

Upload: andrea-tino

Post on 14-Apr-2017

147 views

Category:

Technology


1 download

TRANSCRIPT

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)

AG

ILE

TEAM

SCRU

M

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.

Great software is built by manyWhen 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 itWhen 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.

How to coordinate many developers?

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)

To plan or not to plan?There are many development methodologies out there. One of the most important distinguishing factors is how they treat time and planning of tasks.

Intensive planningHigh cost, lack of flexibility, cannot keep up with changes of modern business

Light planningEasy to handle, flexible, allows fast adjustments to keep up with modern business

Murphy’s lawAnything that can go wrong, will go wrong!

Capt. Edward A. Murphy (1949)

On planningEverybody has a plan... Until they get punched in the face

Mike Tyson

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 SCRUMSCRUM is a subset of Agile, a framework for developing software.

SCRUM takes advantage of different techniques to achieve goals in Agile.

SCRUM explainedEvery methodology can be broken down into 3 important parts which define critical aspects of the software development process

software devcycleHow software development is organized time-wise

work breakdownHow work-items are defined and how they are distributed across team members

roles & responsibilitiesHow team members relate to each other with respect to work-items

Development cycleSCRUM 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!

Events in one sprintDuring 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

Occurs at the beginning of each sprint

Sprint planningThe 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.

Occurs at the start of the day, each day

Morning meetingEach 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.

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

Work breakdownSCRUM 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.

The backlogAll 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

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

Roles & responsibilitiesSCRUM 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.

Meet all members of the familyAt Microsoft we have customized roles. So here are the characters you can find in our teams.

Developer UX DesignerArchitect Writer

Manager Program ManagerLead

The PM and the LeadThe PM decides where the product should go, the lead decides which items the team should work on.

Program Manager Lead

The Lead and his/her teamThe 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.

Chickens at workManagers, 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

What about customers?We get feedback from them. They populate the backlog with bugs!

THANKS

The EndTHANK YOUTwitter: @_atinoE-Mail: [email protected]

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.

April 2016v1.0-b1

Keywords#agile #scrum #microsoft #development-process #kanban

Presentation infoDuration: 30 mins.Background: Non technicalAudience: All (6th grade+)Branched from original

Andrea TinoSoftware Development Engineer