designing the process - kirkwood · scrum artifacts user stories (customer requirements) – used...

28
Designing the Process A Brief Introduction to Agile Programming

Upload: others

Post on 13-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Designing the Process

A Brief Introduction to Agile Programming

Page 2: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

In the beginning, there was the waterfall ...

● AAnalysis, DDesign, IImplementation, TTesting & EEvaluation:– Discrete, linear tasks

– Each step completed before the next step can proceed

Page 3: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Waterfall

● Highly structured● Not very adaptable

Page 4: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Agile: a new paradigm

● Process model that recognizes the significance of change and responsiveness

● Emphasis on adaptability● Same basic “steps” are involved (ADITE), but

throw out linearity and discreteness

Page 5: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Agile view of programming process

● Feedback at each stage– Linkage

– Collaboration

Page 6: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Scrum: Agile for software development

● Scrum is the most prominent example of agile model in the programming world

● Scrum describes both the process and the participants in the process

Page 7: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Scrum as process framework

● Sprint: basic work cycle– 1-4 weeks in duration (assuming 40+ hour weeks)

– Tasks pulled from prioritized list of requirements (top first)

– Working software delivered at end of each sprint

– Fixed duration: end at predefined end date, whether successful or not

Page 8: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Scrum artifacts

● Product backlog– Prioritized list of desired features:

● Customer requirements● Engineering improvements

– Changes frequently● As work gets done● As requirements change● Created & maintained by product owner (more on this

later)

Page 9: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Product backlog: example

Source: onproductmanagement.net

Page 10: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Product backlog: example

Source: http://www.mountaingoatsoftware.com/blog/a-sample-format-for-a-spreadsheet-based-product-backlog

Page 11: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Scrum artifacts

● Sprint backlog (aka release backlog)– Detailed document describing requirements to be

met during current sprint

– Includes time estimates (programmer-hours) for completion of each task

● No more than 16 hours per task● Larger tasks broken down into smaller tasks if estimate

exceeds this limit

Page 12: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Product backlog vs. Sprint Backlog

Source: www.altexsoft.com

Page 13: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Product backlog vs. Sprint backlog

Source: agile.dzone.com

Page 14: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Sprint backlog example

Source: www.mountaingoatsoftware.com/uploads/blog/SprintBacklog.jpg

Page 15: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Scrum artifacts

● User stories (customer requirements)– Used in lieu of conventional (long, detailed)

requirements docs

– Generated by customer (user)● Describe what system needs to do for them● Not limited to UI● Short – 2-3 sentences – non-technical

– Serve purpose similar to use cases● Product owner prioritizes these, may tweak them● Programming team uses these to create time estimates

for sprint

Page 16: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

User stories

● Suggested formats:– As a [role], I want [feature] because [reason]

– As a [role], I can [feature]

– As a [role], I can [feature] so that [reason]

● Examples:– As a student, I want to see a list of classes so that I

can register

– As account owner, I can check my balance online

– As a user, I want to search for my customers by their first and last names.

Page 17: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Scrum artifacts

● Burndown chart– Shows ongoing (cumulative) work done &

remaining in sprint

– Updated daily

– Guide for team: on-time delivery of working product

Page 18: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Burndown chart: example

Source: http://upload.wikimedia.org/wikipedia/commons/0/05/SampleBurndownChart.png

Page 19: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Burndown chart: example

Source: http://agilesoftwaredevelopment.com/files/apostimages/Scrum/simple-sprint-backlog.png

Page 20: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Kanban board

● Not really a Scrum artifact (Scrum & Kanban are really two different Agile methodologies) but often associated with Scrum projects

● Visual tool (like burndown chart in that sense) for monitoring project progress

● May be used to visualize sprint backlog

Page 21: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Kanban board examples

Source: http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Simple-kanban-board-.jpg/400px-Simple-kanban-board-.jpg

Source: http://www.infoq.com/resource/articles/agile-kanban-boards/en/resources/Fig1_task-board.jpg

Page 22: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Scrum roles

● Product owner: in charge of project backlog; acts as the voice of the customer

● Scrum team: develops the product– Cooperative, self-organizing

– Cross-functionsal

● Scrum master: facilitates meetings, protects & serves the team

Page 23: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

The process

● Start with product backlog● Sprint planning meeting

– Product owner & team review high priority items, decide what to implement during this sprint – goal is for team to understand what product owner wants

– Team then focuses on detailed task planning:● Time estimates● Ordering of tasks to maximize both speed & quality of

production

Page 24: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

The process

● Daily scrum– Short meeting; team members report

● What they did since last meeting● What they plan to do before next meeting● Any problems getting in the way of progress – scrum

master responsible for helping solve these

Page 25: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

The process

● Sprint backlog & burndown chart updated daily● Product owner works with team to “groom”

product backlog on a regular basis:– Refining requirement details

– Splitting large tasks into smaller ones

– Time estimation for new items

– Re-estimation of exising items

Page 26: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

The process

● Ending the sprint– Duration is preset – sprint is not extended

– Sprint review: team & product owner inspect & adapt whatever team has produced

– Sprint retrospective: team review of sprint:● What went well● What could be improved● Things to try● Issues to escalate

● Start next sprint cycle

Page 27: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Problems with Scrum

● Mostly, it doesn't work if you don't do it right, e.g.:– Meeting rules not followed

– Goals are unclear

– Key players not available to answer questions

– Product backlog not prioritized well

– Not everyone contributes

Page 28: Designing the Process - Kirkwood · Scrum artifacts User stories (customer requirements) – Used in lieu of conventional (long, detailed) requirements docs – Generated by customer

Benefits of Scrum

● Puts the “agile” in agile development:– Sensitive to changing requirements

– Doesn't attempt to understand entire project before it's started – emphasizes learning along the way

● Delivers a working product quickly– Customers (via product owner) set priorities

– Products developed according to these priorities