Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf ·...
Transcript of Introduction to Agile Software Developmentdidattica.cs.unicam.it/lib/exe/...1617:intro2agile.pdf ·...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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