Agile Development
    with Plone
         Sally Kleinfeldt
   Plone 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 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
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?

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 toadopt agile techniques to manage fixed price, flexible scope projects with a distributed, part time team?
  • 6.
    Our Solution • Focuson: • Communication • Collaboration • Stories • Estimates • Work in progress!
  • 7.
    Roles • Project owner •Developer • Designer • PM
  • 8.
    Roles: Project Owner • Single point of contact • Domain expert • Decision maker • Available for meetings
  • 9.
    Roles: Developer • Technical expert • Open minded • Honest
  • 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
  • 13.
    Scheduling: Development Iterations •How many depends on: • Total development hours • Size of team • Go-live date
  • 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!
  • 15.
    Planning • Discovery • Storydevelopment • Technical architecture
  • 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: StoryDevelopment • PM and project owner write stories • PM guides stories to fit Plone functionality • There will be content editor stories and site user stories
  • 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 • Afew 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 • Clientchooses stories, guided by PM • Iteration planning meeting • Task breakdown and estimation • Story/task assignments • Daily standup meetings • Yesterday, today, blockers
  • 22.
    Tools • “Real” agilerelies 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 useClueMapper, 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 arenumerous 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 • Commercialhosted 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
  • 30.
    ScrumDo • Commercial hostedSaaS solution • User friendly, nice feature set • More flexible iteration scheduling and story assignments • Better task breakdown and assignment • Written in Python!
  • 32.
    Dilemma • Clients needa 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
  • 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 toinclude 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 developersmock 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!
  • 38.