Download - Agile Development with Plone
Agile Development with Plone
Sally KleinfeldtPlone Symposium East 2011
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
Our Plone Projects
• Medium to large websites
• Custom functionality
• Custom theme
• Fixed budget
• Vague or changing requirements
• ==> Agile!
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!
Challenge
• How to adopt agile techniques to manage fixed price, flexible scope projects with a distributed, part time team?
Our Solution
• Focus on:
• Communication
• Collaboration
• Stories
• Estimates
• Work in progress!
Roles
• Project owner
• Developer
• Designer
• PM
Roles:Project Owner
• Single point of contact
• Domain expert
• Decision maker
• Available for meetings
Roles:Developer
• Technical expert
• Open minded
• Honest
Roles:Designer
• Part of development team
• Needs feedback on design implications
Roles:Project Manager
• Facilitate communication
• Record decisions
• Understand both client and developer worlds
• Translate client requests into developer language
• Knowledge of Plone key!
Scheduling the Project
• Fixed budget, fixed number of hours
• Divide between
• Planning - varies with uncertainty
• Deployment - varies with complexity
• Development iterations
Scheduling:Development Iterations
• How many depends on:
• Total development hours
• Size of team
• Go-live date
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!
Planning
• Discovery
• Story development
• Technical architecture
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
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
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
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.
Development Iterations
• Client chooses stories, guided by PM
• Iteration planning meeting
• Task breakdown and estimation
• Story/task assignments
• Daily standup meetings
• Yesterday, today, blockers
Tools
• “Real” agile relies on co-located teams, index cards, white boards
• We need tools that substitute for these things
Tools:Communication
• Skype
• IRC
• Chat
• Google Calendar
Tools:Agile Development
• Many contenders
• Jira, Rally, VersionOne, ...
• We’ve tried a few
Tools:Agile Development
• Trac and plugins
• Pivotal Tracker
• Scrumdo
• Google Docs
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
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
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
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!
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
Google DocsTo 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
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
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
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!
Questions, Discussion?