Managing Agile CMS Projects


Published on

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.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Managing Agile CMS Projects

  1. 1. Managing Agile CMS Projects Sally Kleinfeldt Gilbane Conference November 2012
  2. 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. 3. Your Website Project• Medium to large website• Custom functionality• Custom theme• Fixed budget• Vague or changing requirements• ==> Agile!
  4. 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. 5. ChallengeHow to adopt agile techniques to managefixed price, flexible scope projects with adistributed, part time team?
  6. 6. Solution• Adapt and refine agile techniques• Focus on: • Communication • Collaboration • Stories • Estimates
  7. 7. Roles
  8. 8. Roles• Project owner• Developer• Designer• PM
  9. 9. Project Owner• Single point of contact• Domain expert• Decision maker• Available for meetings
  10. 10. Developer• Technical expert• Open minded• Honest
  11. 11. Designer• Part of development team• Needs feedback on design implications
  12. 12. Project Manager• Facilitate communication• Record decisions• Understand both client and developer worlds• Translate client requests into developer language• Knowledge of CMS key!
  13. 13. Initial Scheduling
  14. 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. 15. High Level Schedule• Divide budget among 3 phases • Planning - varies with uncertainty • Development - timeboxed iterations • Deployment - varies with complexity
  16. 16. Development Iterations• How many depends on: • Available hours • Size of team • Go-live date
  17. 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. 18. Evaluation Periods• Schedule an evaluation week between each development iteration• Clients need the time to test, reflect, meet, adjust priorities
  19. 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
  20. 20. Planning Phase
  21. 21. Planning• Discovery• Story development• Technical architecture
  22. 22. Discovery• Clarify problem, solution, expected benefits• Uncover issues• Agree to priorities• Build working relationships
  23. 23. Discovery Tools• Research, interviews, analysis• Brainstorming session• Prioritization exercise• Card sorting exercise
  24. 24. Discovery Outcomes• Prioritized requirements• Technology recommendations• High level data model• Information architecture• Roadmap of iterations• Budget estimates
  25. 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. 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. 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. 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. 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. 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:
  31. 31. Distributed Planning Poker• Android and iPhone apps available (Google for "free online planning poker")• Use a Google Spreadsheet: http:// scrum-playing-planning-poker-scattered- team
  32. 32. Story Prioritization• Stories are the “backlog”• Have project owner arrange stories in backlog in priority order
  33. 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.
  34. 34. Development Iterations
  35. 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. 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. 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. 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!
  39. 39. Tools
  40. 40. Tools• “Real” agile relies on co-located teams, index cards, white boards• We need tools that substitute for these things
  41. 41. Communication• Skype• IRC• Chat• Calendar
  42. 42. Agile Development• Many contenders • Jira, Rally, VersionOne, ...• Hosted SaaS solutions worth checking out • Pivotal Tracker, Scrumdo
  43. 43. Questions, Discussion?