Agile Software Development - ecology...

22
Agile Software Development learning to fly Jane Prusakova @jprusakova

Transcript of Agile Software Development - ecology...

Page 1: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Agile Software Developmentlearning to fly

Jane Prusakova

@jprusakova

Page 2: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Manifesto for

Agile Software Development

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

That is, while there is value in the items onthe right, we value the items on the left more.

We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:

Page 3: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Scrum: Learning to fly

• Exercises are designed for teams of 4 to 5 students

• Make sure you can all hear each other

• Everyone should be taking notes

• You will be playing Scrum roles• Product Owner – 1 person per team

• Team member – the rest of the team

• These exercises are HARD. Try your best, and do not be afraid not to nail the correct answer on the first try.

Page 4: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Scrum

• Create a team• Self-organized

• Cross-functional

•Definition of Done

Page 5: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Example Definition of Done

• 4 to 8 criteria of what it means for a product increment to be complete• Required functionality accomplished

• Unit test coverage for all code at a certain level

• User testing completed for new functionality• or all functionality

• Builds and runs in the test environment

• Required documentation created and published

• Load testing

• Technical debt / code quality criteria met

• …

Page 6: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Initial setup

• SCS• Set up a repository• Start a README.md• Decide on branch strategy

• Integration• Build technology• Build server• Uniform deployment

• Test frameworks

Page 7: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Scrum project

• Dashboard for student work results• Support any number of assignments

• Support multiple kinds of assignments

• Support awards for submitting work early

• Convert to letter grade based on • Cut-off point

• Distribution curve

• Allow to compare results across courses• Raw results

• Letter grade

Page 8: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Vertical slices

Page 9: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes
Page 10: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes
Page 11: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Agile planning

•Highest priority at the momentProduct Owner makes the final decision, with input from the team.

•Slice the work into small pieces• Create stories that you need to implement to satisfy

requirements• Break stories into small tasksTeam is responsible for finding all work. Assume no magic.

• Review

Page 12: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Example Stories and tasks

• Plan enough work for the team during Sprint• User login or data entry isn’t typically a good first story

• Story• Convert summary raw result into a letter grade based on

defined criteria

• Tasks• Build criteria for conversion of raw result into letter grade• Retrieve summary raw result per student per class• Apply criteria to summary raw result • Make letter grade available for consumption

Page 13: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Agile estimation

•What will it take• Break down stories into tasks• Size tasks• Assume any developer on the team could be working on any

task• Size for minimal level of experience anyone on the team has

Team is responsible for finding and estimating all required work.

Share your estimates with Product Owner. Get their feedback.

• Review

Page 14: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Planning Poker- Use Fibonacci numbers to indicate amount

of work and uncertainty

- Every team member makes their estimate independently

- If a wide spread, justify highest and lowest estimate for the team and vote again

Page 15: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

How sizes are assigned

•1 is the smallest item of work there could be. One can’t possibly get it wrong. Or everyone on the team already has done it before.

•2 and 3 are fairly straightforward, but not as simple.It is possible to get it wrong, but with TDD it can be accomplished easily.

•5 is hard and likely requires pairing or entire teamworking together

• Tasks that are larger than 5 should be split and piecesestimated separately

Page 16: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Develop the product

•Daily scrum meeting▪ What have you completed?

▪ Where are you having trouble?

▪ How can we best help you move forward?

Product Owner clarifies the requirements,

but does not offer solutions.

Team members drive the conversation.

No one else is allowed to speak.

Page 17: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Respond to change

• Keep history• Semester, professor, proctor for each result set

• Dashboard for student work results• Support any number of assignments• Support multiple kinds of assignments• Support awards for submitting work early• Convert to letter grade based on

• Cut-off point• Distribution curve

• Allow to compare results across courses• Raw results• Letter grade

Page 18: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Agile Change management• Current Sprint

• Proceed with work as planned

• Next Sprint • Evaluate new requirements• Prioritize against all remaining work• Consider architectural changes need to support new requirements• Plan

Page 19: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Retrospective

• Each Sprint cycle

• What went well?

• What went wrong?

• What could we do to improve?

Only Scrum team participates.

Focus on actionable decisions.

Remember to acknowledge team successes.

Page 20: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Retrospective• How did your team do on each exercise?

•Definition of Done•Agile Planning•Daily Scrum

• The questions: • What went well?

• What went wrong?

• What could we do to improve?

Page 21: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Manifesto for

Agile Software Development

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

That is, while there is value in the items onthe right, we value the items on the left more.

We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:

Page 22: Agile Software Development - ecology labfaculty.cse.tamu.edu/slupoli/notes/ProgrammingStudio/Scrum-Learni… · Agile Software Development Individuals and interactions over processes

Agile Software Developmentlearning to fly

Jane Prusakova

@jprusakova