Agile Software Development learning to fly Jane Prusakova @jprusakova
Agile Software Developmentlearning to fly
Jane Prusakova
@jprusakova
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:
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.
Scrum
• Create a team• Self-organized
• Cross-functional
•Definition of Done
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
• …
Initial setup
• SCS• Set up a repository• Start a README.md• Decide on branch strategy
• Integration• Build technology• Build server• Uniform deployment
• Test frameworks
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
Vertical slices
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
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
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
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
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
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.
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
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
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.
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?
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:
Agile Software Developmentlearning to fly
Jane Prusakova
@jprusakova