Transcript
Page 1: Agile Development with Plone

Agile Development with Plone

Sally KleinfeldtPlone Symposium East 2011

Page 2: Agile Development with Plone

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

Page 3: Agile Development with Plone

Our Plone Projects

• Medium to large websites

• Custom functionality

• Custom theme

• Fixed budget

• Vague or changing requirements

• ==> Agile!

Page 4: Agile Development with Plone

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!

Page 5: Agile Development with Plone

Challenge

• How to adopt agile techniques to manage fixed price, flexible scope projects with a distributed, part time team?

Page 6: Agile Development with Plone

Our Solution

• Focus on:

• Communication

• Collaboration

• Stories

• Estimates

• Work in progress!

Page 7: Agile Development with Plone

Roles

• Project owner

• Developer

• Designer

• PM

Page 8: Agile Development with Plone

Roles:Project Owner

• Single point of contact

• Domain expert

• Decision maker

• Available for meetings

Page 9: Agile Development with Plone

Roles:Developer

• Technical expert

• Open minded

• Honest

Page 10: Agile Development with Plone

Roles:Designer

• Part of development team

• Needs feedback on design implications

Page 11: Agile Development with Plone

Roles:Project Manager

• Facilitate communication

• Record decisions

• Understand both client and developer worlds

• Translate client requests into developer language

• Knowledge of Plone key!

Page 12: Agile Development with Plone

Scheduling the Project

• Fixed budget, fixed number of hours

• Divide between

• Planning - varies with uncertainty

• Deployment - varies with complexity

• Development iterations

Page 13: Agile Development with Plone

Scheduling:Development Iterations

• How many depends on:

• Total development hours

• Size of team

• Go-live date

Page 14: Agile Development with Plone

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!

Page 15: Agile Development with Plone

Planning

• Discovery

• Story development

• Technical architecture

Page 16: Agile Development with Plone

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

Page 17: Agile Development with Plone

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

Page 18: Agile Development with Plone
Page 19: Agile Development with Plone

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

Page 20: Agile Development with Plone

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.

Page 21: Agile Development with Plone

Development Iterations

• Client chooses stories, guided by PM

• Iteration planning meeting

• Task breakdown and estimation

• Story/task assignments

• Daily standup meetings

• Yesterday, today, blockers

Page 22: Agile Development with Plone

Tools

• “Real” agile relies on co-located teams, index cards, white boards

• We need tools that substitute for these things

Page 23: Agile Development with Plone

Tools:Communication

• Skype

• IRC

• Chat

• Google Calendar

Page 24: Agile Development with Plone

Tools:Agile Development

• Many contenders

• Jira, Rally, VersionOne, ...

• We’ve tried a few

Page 25: Agile Development with Plone

Tools:Agile Development

• Trac and plugins

• Pivotal Tracker

• Scrumdo

• Google Docs

Page 26: Agile Development with Plone

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

Page 27: Agile Development with Plone

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

Page 28: Agile Development with Plone

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

Page 29: Agile Development with Plone
Page 30: Agile Development with Plone

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!

Page 31: Agile Development with Plone
Page 32: Agile Development with Plone

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

Page 33: Agile Development with Plone

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

Page 34: Agile Development with Plone
Page 35: Agile Development with Plone

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

Page 36: Agile Development with 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

Page 37: Agile Development with Plone

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!

Page 38: Agile Development with Plone

Questions, Discussion?


Top Related