This document discusses how to adopt agile techniques for managing Plone projects with distributed, part-time teams on a fixed budget. Key points include:
- Defining roles like project owner, developer, designer, and project manager
- Scheduling projects into planning, deployment, and development iterations
- Using tools like Trac, Pivotal Tracker, ScrumDo, and Google Docs to facilitate communication, tracking stories and tasks, and planning iterations
- Integrating UX/UI design by including designers in the team and having them work closely with developers
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
Agile Development with Plone for Distributed Teams
1. Agile Development
with Plone
Sally Kleinfeldt
Plone Symposium East 2011
2. The Accidental PM
• I am not an expert!
• No PM or Agile training
• The developer with domain knowledge
• But small business == many hats
• So now I manage projects
• Use this session to share
3. Our Plone Projects
• Medium to large websites
• Custom functionality
• Custom theme
• Fixed budget
• Vague or changing requirements
• ==> Agile!
4. Our Environment
• Distributed
• Everyone (client, each developers, me) in
separate locations
• Not full time
• Developers typically 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. Our Solution
• Focus on:
• Communication
• Collaboration
• Stories
• Estimates
• Work in progress!
10. Roles:
Designer
• Part of development team
• Needs feedback on design implications
11. Roles:
Project Manager
• Facilitate communication
• Record decisions
• Understand both client and developer
worlds
• Translate client requests into developer
language
• Knowledge of Plone key!
12. Scheduling the Project
• Fixed budget, fixed number of hours
• Divide between
• Planning - varies with uncertainty
• Deployment - varies with complexity
• Development iterations
14. Scheduling:
Development Iterations
• One or two week iterations ideal
• 5-10 hours PM
• 15-30 hours devlopers
• Important to hold to those hours
• Schedule evaluation weeks between
iterations!
16. Planning:
Discovery
• Varies depending on size of project and
what client has done
• Minimum: 5-10 hours gathering materials
and discussions with project owner
• Could be many hours of meetings, analysis,
and a formal report
17. Planning:
Story Development
• PM and project owner write stories
• PM guides stories to fit Plone functionality
• There will be content editor stories and
site user stories
18.
19. Planning:
Planning Poker
• Developers, project owner and PM
• We use modified Fibbonacci - 0, .5, 1, 2, 3,
5, 8, 13, 20, 40, 100
• Trust developers to be independent
• Time consuming, but planning poker
discussions make developers understand
requirements and clients understand
development trade offs
20. Planning:
Technical Architecture
• A few hours of high level technical planning
after planning poker
• Developers and PM
• How to do theming, what add-ons are
necessary, approach to custom
development, etc.
21. Development Iterations
• Client chooses stories, guided by PM
• Iteration planning meeting
• Task breakdown and estimation
• Story/task assignments
• Daily standup meetings
• Yesterday, today, blockers
22. Tools
• “Real” agile relies on co-located teams,
index cards, white boards
• We need tools that substitute for these
things
23. Tools:
Communication
• Skype
• IRC
• Chat
• Google Calendar
24. Tools:
Agile Development
• Many contenders
• Jira, Rally,VersionOne, ...
• We’ve tried a few
25. Tools:
Agile Development
• Trac and plugins
• Pivotal Tracker
• Scrumdo
• Google Docs
26. Trac
• We use ClueMapper, with its easy Trac/
Subversion integration
• Project staff access management
• Project documentation, including ReST
formatted Readme files in svn
• Support tickets after development
27. Trac
• There are numerous Agile plugins - Agilo,
Itteco, ScrumBurndown, etc.
• Mostly clunky, too many pieces
• We do not use Trac for development
iterations - stories and tasks
28. Pivotal Tracker
• Commercial hosted SaaS solution
• User friendly, nice feature set
• BUT built for full time agile teams with
back to back, same size iterations
• Does not match our process
29.
30. ScrumDo
• Commercial hosted SaaS solution
• User friendly, nice feature set
• More flexible iteration scheduling and story
assignments
• Better task breakdown and assignment
• Written in Python!
31.
32. Dilemma
• Clients need a tool like ScrumDo that
provides overview of stories and easy drag
and drop prioritization and iteration
planning
• But for developers it doesn’t have the
flexibility and see-everything-at-once feeling
of a whiteboard
33. Google Docs
To The Rescue
• We use a Google Doc for each iteration
• Easily record stories, tasks, estimates,
assignments, and actuals
• Everyone can see it and see each other
editing it during meetings
• It’s the closest thing to a white board and
index cards
34.
35. Design
• Perennial question: how to integrate UX/UI
design into this process
• Plone is not a blank slate, some designs are
easy to implement and some not
• Clients often bring designers to a project,
and they don’t know Plone
36. Design
• 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
37. Design
• Have developers mock up functionality first
using available add-ons and use that as basis
for wireframe
• Create a sample Plone Page using all
WYSIWYG editor features and make sure
designer styles them all
• Make sure designer will be available for
theming questions for entire project!