At Jazkarta, our Plone projects typically consist of a mix of custom functionality and theming. The client's budget is usually fixed and their requirements are imperfectly defined at the start of the project. This cries out for an agile, iterative approach, however our development environment is not what most agile experts would recommend. No one is co-located - our clients are remote and our developers are distributed, and they are not working full time on a single project.
Sally Kleinfeldt describes Jazkarta's approach to managing a Plone website development project in an agile fashion, with a part time, distributed team. Topics include roles, scheduling, estimation, and project management tools.
Links to videos of the presentation are here: http://weblion.psu.edu/symposium/talks/agile-development-with-plone
Human Factors of XR: Using Human Factors to Design XR Systems
Agile Development with Plone
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!