AgileSoftwareDevSprints

advertisement
A little Software Engineering:
Agile Software Development
C Sc 335
Rick Mercer
Goal and Outline
Main Goal:
– Suggest practices, values, and some process for
completing a final project on time that is better than
any one person could do it in in four times the time
Outline
– Distinguish Waterfall (plan driven) from Agile
– Practices of quality software development
– Moving from User Stories -> Sprints with Tasks
2
Waterfall Model
Waterfall was described by 1970
Understood as
– finish each phase
– don’t proceed
till done
W. W. Royce
criticized this
– proposed an
iterative approach
3
Became Popular
Management (usually software ignorant) likes waterfall
– easily set deadlines
Customers provide all requirements
Analysts translate requirements into specification
Coders implement the specification
Reviews ensure the specification is met
Testing is performed by testers (not devs, QA team)
Maintenance means modifying as little as possible
– old code is good code
Change is hard, and costly
4
A Spiral Approach
Dr Barry Boehm proposed a spiral approach
5
To waterfall or not
Waterfall became popular
– This process is still is used a lot
Craig Larman's book [1] provides proof that waterfall is
a terrible way to develop software
– In his study, 87% of all projects failed
– The waterfall process was the "single largest contributing
factor for failure, being cited in 81% of the projects as the
number one problem."
[1] Agile and Iterative Development:
a Manager's Guide, Addison-Wesley Professional, 2003
6
Cost of change
Waterfall
Cost
of
change
Agile
time7
Agile Software Development
60% of survey 2011 respondents: up to half of
company’s projects are Agile
http://www.versionone.com/state_of_agile_development_survey/11/
Set of SE practices that produce high-quality
software with limited effort
Many books
– Kent Beck
• Extreme Programming–Embrace Change
– Ken Schwaber, Mike Beedle,
• Agile software development with Scrum
8
eXtreme Programming
eXtreme Programming (XP) is
– a disciplined approach to software development
– code centric: no reckless coding, test-first
– successful because it emphasizes customer
involvement and promotes team work
– not a solution looking for a problem
– One of several "agile" (can adapt to change)
software development processes
http://www.agilealliance.org/
9
Essence of XP
Four variables in software development:
– Cost, Time, Quality, Scope (# features)
Four Values
– Communication, Simplicity, Feedback, Courage
Five Principles
– Provide feedback, assume simplicity, make incremental
changes, embrace change, quality work
Practices
– Planning games, small releases, simple designs, automated testing,
continuous integration, refactoring, pair programming, collective
ownership, Continuous Integration, on-site customer, coding standards
10
Cost of the Project
Paraphrasing from two software development
companies I've talked to in Chicago and in
Denmark
When we bid projects, we charge $X for doing it
Waterfall and $X/2 for doing it Agile
11
An Agile Practice:
The Planning Game
The planning game involves user stories
– Short descriptions of desired features
– Testable (and part of your grade, 10 points per sprint)
• Did you get those stories implemented in this 1 week sprint?
Clients write stories and assign story points
– In 335, SLs wrote the stories (see final project specs)
• And have assigned story points to each, which are estimates of
relative complexity: 1 3 5 8 13
Scrum calls these the Product Backlog
– In 335, the project specifications have those User Stories and points
12
An Agile Practice: Estimation
Based on similar stories from the past
You get good at estimation simply by
– just do it
13
An Agile Practice: Sprints
Sprints range from 1 to 4 weeks
– We choose 1 week sprints (because classes end in
4 weeks)
A sprint should make sense as a whole
Need to track stories during a sprint
– Product Backlog is the complete list of stories that
needs to be implemented—see the project specs
– The Iteration/Sprint contains just the things to be
executed during that sprint
14
Sprints continued
Plan a sprint (we will do this three times)
– Meet with you PM each of the next three weeks
– Prioritize: Which “stories” should be developed next
• Move stories from product backlog to the sprint backlog
• Create a list of tasks
– A task is a technical requirement such as implement a
Command hierarchy for 5 commands
• Volunteer for those tasks
• Finish those tasks so the stories are working
– By the end of Sprint (or lose team project points)
15
335 Sprints
Your first planning meeting is next week
– Have Artifacts Complete (10pts)
• Which means you know what you are supposed to do and
have an idea of its architecture (classes and relationships
between major objects)
– Have a Repo set up with access to all on team
– Have a Rally Community edition setup with all story
points in the Product Backlog (can plan the sprint
more quickly next week)
16
– Attendance and Engagement: 13pts
Preview a Sprint in Progress
Ken Schwaber task board mockup
17
Actual Task Board
18
How do we plan and track
We will be using Rally’s Application Lifecycle
Management platform
–
–
–
–
–
Been around a long time
Developed by Agile people
Will help us plan and track the 335 final project
Keeps us on task
Can see who did what
19
ScreenShot of BackLog
20
ScreenShot of Plan
21
ScreenShot of Track
22
Need a Volunteer
Request Rally’s Community License
http://www.rallydev.com/product-features/rally-community-edition
Add a 2nd user (a team member)
– Select Setup > Users > Add
Let Rick edit the Sample project a little
– We only have one project and max of 10 people
23
Download