In this talk given at the 2012 Gilbane Conference, Sally Kleinfeldt describes an approach to managing website development projects in an agile fashion, with a part time, distributed team. Topics include roles, scheduling, release planning, writing user stories, and estimation. The value of these techniques are very clear to stakeholders - they get full ownership of their project, choosing what is delivered at every step along the way. And by working with the CMS rather than against it, they get the system they envisioned while minimizing development costs.
2. Your Website Project
• You’ve chosen a CMS
• Lined up the budget and developers
• Selected a design firm
• Extracted requirements from
stakeholders
• How are you going to manage it?
3. Your Website Project
• Medium to large website
• Custom functionality
• Custom theme
• Fixed budget
• Vague or changing requirements
• ==> Agile!
4. Your Website Project
• Distributed Environment
• Everyone (client, developers, PM) in
separate locations
• No full time staff
• Developers typically work 10 to 20
hours/week on a project
• ==> Not Agile!
5. Challenge
How to adopt agile techniques to manage
fixed price, flexible scope projects with a
distributed, part time team?
6. Solution
• Adapt and refine agile techniques
• Focus on:
• Communication
• Collaboration
• Stories
• Estimates
11. Designer
• Part of development team
• Needs feedback on design implications
12. Project Manager
• Facilitate communication
• Record decisions
• Understand both client and developer
worlds
• Translate client requests into developer
language
• Knowledge of CMS key!
14. You’re Starting the
Project
• Fixed budget, fixed number of hours
• First step: create a high level schedule
• Provides a framework for what you need
to do when
15. High Level Schedule
• Divide budget among 3 phases
• Planning - varies with uncertainty
• Development - timeboxed iterations
• Deployment - varies with complexity
17. Development Iterations
• One or two week iterations ideal
• For a team of 2 developers
• 5-10 hours PM time
• 15-40 hours developer time
• Timeboxed! Must hold to those
hours
18. Evaluation Periods
• Schedule an evaluation week
between each development iteration
• Clients need the time to test, reflect,
meet, adjust priorities
19. Deployments
• Several smaller deployments are
preferable to one mega-deployment
• Easy to run out of time for fixing bugs if
postpone deployment to end of project
24. Discovery Outcomes
• Prioritized requirements
• Technology recommendations
• High level data model
• Information architecture
• Roadmap of iterations
• Budget estimates
25. User Stories
• Describe a system feature in user terms -
content editors, site users, site admins...
• As a [role], I need to [do task] so that
[business value]
• Self contained, testable, one to three
days of work
26. User Story Development
• PM and project owner write stories
• An index card worth of information, will
get fleshed out during development
• PM guides stories to fit CMS functionality
- work with the CMS not against it
27. Story Estimation
• How big is each story? How long will it
take?
• Critical information for client - informs
prioritization
• Developers learn about the project
through understanding and estimating
stories
28. Planning Poker
• Developers, project owner and PM
• PM reads story, developers ask
questions, project owner answers
• Developers simultaneously “play a card”
with relative story points (not hours)
• Define and estimate stories as you need
them, not all at once
29. Planning Poker
• Time consuming, but planning poker
• Makes developers understand
requirements
• Makes clients understand development
trade offs
• Informed clients can get what they really
need while minimizing costs
30. Distributed
Planning Poker
• How to play planning poker with a
remote team?
• Plugins available for Pivotal Tracker,
Scrumdo, Jira
• Free online planning poker from
Mountain Goat Software:
http://www.planningpoker.com/
31. Distributed
Planning Poker
• Android and iPhone apps available
(Google for "free online planning poker")
• Use a Google Spreadsheet: http://
fourkitchens.com/blog/2012/07/16/
scrum-playing-planning-poker-scattered-
team
32. Story Prioritization
• Stories are the “backlog”
• Have project owner arrange stories in
backlog in priority order
33. Technical Architecture
• Define high level technical architecture
after planning poker
• How to do theming, what add-ons are
necessary, approach to custom
development, etc.
35. Anatomy of an Iteration
• Client chooses stories based on points
and priority
• Iteration planning meeting
• Task breakdown and estimation
• Story/task assignments
• Daily standup meetings
• Yesterday, today, blockers
36. Designers
• How to integrate UX/UI design into
development process?
• A CMS is not a blank slate, some
designs are easy to implement and some
not
• Clients can bring designers to a project
that don’t know the CMS
37. Tips for Working With
Designers
• Try to include designers in the dev team
• Have developers review preliminary
wireframes and graphic designs before
client sees them
• Have designers work on wireframes for a
story at the same time as developers
38. Designers
• Have developers mock up functionality
first using available add-ons and use that
as basis for wireframe
• Have designer style all tags and classes
the CMS will output
• Make sure designers will be available for
theming questions for entire project!