introduction to agile software developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf ·...

32
Introduction to Agile Software Development Andrea Polini Software Project Management MSc in Computer Science University of Camerino A.Y. 2016/2017 Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 1 / 18

Upload: others

Post on 23-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction to Agile Software Development

Andrea Polini

Software Project ManagementMSc in Computer Science

University of Camerino

A.Y. 2016/2017

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 1 / 18

Page 2: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

What is agile?

ObservationsNo single recipe that results in perfect software every time. Agileteams have ideas and ground rules that help to guide the team tomake the right choices and avoid problems, or deal with themwhen they emerge.A good developer almost always has opinions about the wholedirection of the projectChanges are unavoidableSoftware is an highly added value artefact, quality is stronglydependent from people

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 2 / 18

Page 3: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Bibliography

Textbook

Andrew Stellman and Jennifer GreeneLearning Agile Understanding Scrum, XP, Lean, and KanbanO’Reilly 2015.

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 3 / 18

Page 4: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

What is agile?

Set of methods and methodologiesmore effective workmore efficient workmake better decisions

Different mindset, based on ideas, values, and principlesfocus on teams over individuals

sharing knowledgetaking responsibilitiestaking decisionsfeeling commitment

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 4 / 18

Page 5: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Agile values

A group of highly skilled and innovative people started agile as arevolution against the “waterfall mindset”.

Agile valuesIndividuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 5 / 18

Page 6: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Can waterfall work?

Good communicationGood practicesIt’s more important the creation of the plan than sticking to it

The big issue . . . Requirements up-front!

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 6 / 18

Page 7: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Can waterfall work?

Good communicationGood practicesIt’s more important the creation of the plan than sticking to it

The big issue . . . Requirements up-front!

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 6 / 18

Page 8: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Better-than-not-doing-it

For a “waterfall” team one of the most complex issue in PM is thetransition toward an Agile mindset

Going agile is not equal to becoming an agile teamNot just tools, techniques, and practices (can just lead to abetter-than-not-doing-it effect)

Agile tools, practices, techniquestest driven development, automated build script, build server,scrum, iterations, task board, velocity, burndown charts, userstories, product owner, release plan

In a fractured perspective everyone has a different view of theagile practice

Often team’s members just improve their individual capabilities inactivities for which they were already good at

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 7 / 18

Page 9: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Better-than-not-doing-it

For a “waterfall” team one of the most complex issue in PM is thetransition toward an Agile mindset

Going agile is not equal to becoming an agile teamNot just tools, techniques, and practices (can just lead to abetter-than-not-doing-it effect)

Agile tools, practices, techniquestest driven development, automated build script, build server,scrum, iterations, task board, velocity, burndown charts, userstories, product owner, release plan

In a fractured perspective everyone has a different view of theagile practice

Often team’s members just improve their individual capabilities inactivities for which they were already good at

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 7 / 18

Page 10: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Better-than-not-doing-it

For a “waterfall” team one of the most complex issue in PM is thetransition toward an Agile mindset

Going agile is not equal to becoming an agile teamNot just tools, techniques, and practices (can just lead to abetter-than-not-doing-it effect)

Agile tools, practices, techniquestest driven development, automated build script, build server,scrum, iterations, task board, velocity, burndown charts, userstories, product owner, release plan

In a fractured perspective everyone has a different view of theagile practice

Often team’s members just improve their individual capabilities inactivities for which they were already good at

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 7 / 18

Page 11: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Individuals and interactions over processes and tools

A great tool can sometimes help you do the wrong thing faster

It is important to understand people in the team:how they work togetherhow each person’s work impact everyone else

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 8 / 18

Page 12: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Working software over comprehensive documentation

ValueOften complex software documents have no readers. Agilemethodologies aim at providing working software that adds value tothe organization

Obviously this does not mean that no documentation should beprovided. Instead documentation should save more ant time and effortthan it costs:

commentsjavadocstest-driven development

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 9 / 18

Page 13: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Customer collaboration over contract negotiation

The objective is to provide valuable software to the customer, sosoftware that he/she really needs.

IssuesUp-front requirements reduce customer involvement and the possibilityto revise the plan after the contract is signed

Agile methodologies foster inclusion of the customer in thedevelopment team and strict cooperation.

Give customers what they really nead, and not just what they ask forIf I had asked people what they wanted, they would have said faster horses

Henry Ford

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 10 / 18

Page 14: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Responding to change over following a plan

A plan provides a comfortable path toward the development of apossible wrong software. Agile methodologies ask for taking intoconsideration any change that could emerge.

Task boardThe use of a task board is a practice helping the team to take the rightdecision when a change emerge. Three sections each one contaninguser stories (in general) in on of the possible three different states (Todo, In progress, Done).

electronic format vs. paper based

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 11 / 18

Page 15: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Interesting questions

When the agile manifesto talks about not having comprehensivedocumentation, does that mean we don’t have to write anythingdown?I’ve definitively heard that agile means doing any planning, andinstead jumping straight into programming. Isn’t that moreefficient?Can I have the developers on the team go agile, but leave the restof the team alone?If I’m not using Scrum, XP, Lean, Kanban, does that mean myteam isn’t agile?

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 12 / 18

Page 16: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Interesting questions

When the agile manifesto talks about not having comprehensivedocumentation, does that mean we don’t have to write anythingdown?I’ve definitively heard that agile means doing any planning, andinstead jumping straight into programming. Isn’t that moreefficient?Can I have the developers on the team go agile, but leave the restof the team alone?If I’m not using Scrum, XP, Lean, Kanban, does that mean myteam isn’t agile?

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 12 / 18

Page 17: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Interesting questions

When the agile manifesto talks about not having comprehensivedocumentation, does that mean we don’t have to write anythingdown?I’ve definitively heard that agile means doing any planning, andinstead jumping straight into programming. Isn’t that moreefficient?Can I have the developers on the team go agile, but leave the restof the team alone?If I’m not using Scrum, XP, Lean, Kanban, does that mean myteam isn’t agile?

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 12 / 18

Page 18: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Interesting questions

When the agile manifesto talks about not having comprehensivedocumentation, does that mean we don’t have to write anythingdown?I’ve definitively heard that agile means doing any planning, andinstead jumping straight into programming. Isn’t that moreefficient?Can I have the developers on the team go agile, but leave the restof the team alone?If I’m not using Scrum, XP, Lean, Kanban, does that mean myteam isn’t agile?

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 12 / 18

Page 19: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Agile principles

Principle motivationsThe Agile manifest signers identified ground rules and ideas that helpthe team to make the right choices and avoid problems. 12 principleswere then defined.

Principles can be organized according to four sections:deliverycommunicationexecutionimprovement

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 13 / 18

Page 20: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Delivering the project

1 Our highest priority is to satisfy the customer through early andcontinuous delivery of valuable software.

2 Welcome changing requirements, even late in development. Agileprocesses harness change for the customer’s competitiveadvantage

Nobody get’s in trouble when there’s a changeWe are all in this together, including the customerChanges are not solutions to previous mistakesLearn from the changes

3 Deliver working software frequently, from a couple of weeks to acouple of months, with a preference to the shorter timescale.

Practice of timeboxed iterations

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 14 / 18

Page 21: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Delivering the project

1 Our highest priority is to satisfy the customer through early andcontinuous delivery of valuable software.

2 Welcome changing requirements, even late in development. Agileprocesses harness change for the customer’s competitiveadvantage

Nobody get’s in trouble when there’s a changeWe are all in this together, including the customerChanges are not solutions to previous mistakesLearn from the changes

3 Deliver working software frequently, from a couple of weeks to acouple of months, with a preference to the shorter timescale.

Practice of timeboxed iterations

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 14 / 18

Page 22: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Delivering the project

1 Our highest priority is to satisfy the customer through early andcontinuous delivery of valuable software.

2 Welcome changing requirements, even late in development. Agileprocesses harness change for the customer’s competitiveadvantage

Nobody get’s in trouble when there’s a changeWe are all in this together, including the customerChanges are not solutions to previous mistakesLearn from the changes

3 Deliver working software frequently, from a couple of weeks to acouple of months, with a preference to the shorter timescale.

Practice of timeboxed iterations

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 14 / 18

Page 23: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Communicating and working together

Objective is somehow to suggest the definition of as muchdocumentation as you need to run the project. ANd this depends fromcommunications habits. Waterfall real practices on changes often donot reflect theory

4 The most efficient and effective method of conveying informationto and within a development team is face-to-face conversation.

5 Businesspeople and developers must work together dailythroughout the project.

6 Build projects around motivated individuals. Give them theenvironment and support they need, and trust them to get the jobdone.

rewards on bug metrics for individuals is not a good ideaCYA attitude

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 15 / 18

Page 24: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Communicating and working together

Objective is somehow to suggest the definition of as muchdocumentation as you need to run the project. ANd this depends fromcommunications habits. Waterfall real practices on changes often donot reflect theory

4 The most efficient and effective method of conveying informationto and within a development team is face-to-face conversation.

5 Businesspeople and developers must work together dailythroughout the project.

6 Build projects around motivated individuals. Give them theenvironment and support they need, and trust them to get the jobdone.

rewards on bug metrics for individuals is not a good ideaCYA attitude

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 15 / 18

Page 25: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Communicating and working together

Objective is somehow to suggest the definition of as muchdocumentation as you need to run the project. ANd this depends fromcommunications habits. Waterfall real practices on changes often donot reflect theory

4 The most efficient and effective method of conveying informationto and within a development team is face-to-face conversation.

5 Businesspeople and developers must work together dailythroughout the project.

6 Build projects around motivated individuals. Give them theenvironment and support they need, and trust them to get the jobdone.

rewards on bug metrics for individuals is not a good ideaCYA attitude

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 15 / 18

Page 26: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Project execution

7 Working software is the primary measure of progress.8 Agile processes promote sustainable development. The sponsors,

developers, and users should be able to maintain a constant paceindefinitely.

9 Continuous attention to technical excellence and good designenhances agility.

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 16 / 18

Page 27: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Project execution

7 Working software is the primary measure of progress.8 Agile processes promote sustainable development. The sponsors,

developers, and users should be able to maintain a constant paceindefinitely.

9 Continuous attention to technical excellence and good designenhances agility.

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 16 / 18

Page 28: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Project execution

7 Working software is the primary measure of progress.8 Agile processes promote sustainable development. The sponsors,

developers, and users should be able to maintain a constant paceindefinitely.

9 Continuous attention to technical excellence and good designenhances agility.

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 16 / 18

Page 29: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Costantly improving the project andthe team

10 Simplicity – the art of maximizing the amount of work not done – isessential.

11 The best architectures, requirements, and designs emerge fromself-organizing teams.

the work generally starts from user storiesincremental design, instead of big design architecture covering allrequirements

12 At regular intervals, the team reflects on how to become moreeffective, then tunes and adjusts its behavior accordingly.

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 17 / 18

Page 30: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Costantly improving the project andthe team

10 Simplicity – the art of maximizing the amount of work not done – isessential.

11 The best architectures, requirements, and designs emerge fromself-organizing teams.

the work generally starts from user storiesincremental design, instead of big design architecture covering allrequirements

12 At regular intervals, the team reflects on how to become moreeffective, then tunes and adjusts its behavior accordingly.

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 17 / 18

Page 31: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Principles list – Costantly improving the project andthe team

10 Simplicity – the art of maximizing the amount of work not done – isessential.

11 The best architectures, requirements, and designs emerge fromself-organizing teams.

the work generally starts from user storiesincremental design, instead of big design architecture covering allrequirements

12 At regular intervals, the team reflects on how to become moreeffective, then tunes and adjusts its behavior accordingly.

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 17 / 18

Page 32: Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf · Introduction Bibliography Textbook Andrew Stellman and Jennifer Greene Learning

Introduction

Bibliography

Andrew Stellman and Jennifer GreeneLearning Agile Understanding Scrum, XP, Lean, and KanbanO’Reilly 2015.

Chapters 1, 2 and 3

Andrea Polini Introduction to Agile Software Development SPM – A.Y. 2016/2017 18 / 18