agile development with plone
DESCRIPTION
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-ploneTRANSCRIPT
![Page 1: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/1.jpg)
Agile Development with Plone
Sally KleinfeldtPlone Symposium East 2011
![Page 2: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/3.jpg)
Our Plone Projects
• Medium to large websites
• Custom functionality
• Custom theme
• Fixed budget
• Vague or changing requirements
• ==> Agile!
![Page 4: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/6.jpg)
Our Solution
• Focus on:
• Communication
• Collaboration
• Stories
• Estimates
• Work in progress!
![Page 7: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/7.jpg)
Roles
• Project owner
• Developer
• Designer
• PM
![Page 8: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/8.jpg)
Roles:Project Owner
• Single point of contact
• Domain expert
• Decision maker
• Available for meetings
![Page 9: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/9.jpg)
Roles:Developer
• Technical expert
• Open minded
• Honest
![Page 10: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/10.jpg)
Roles:Designer
• Part of development team
• Needs feedback on design implications
![Page 11: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/13.jpg)
Scheduling:Development Iterations
• How many depends on:
• Total development hours
• Size of team
• Go-live date
![Page 14: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/15.jpg)
Planning
• Discovery
• Story development
• Technical architecture
![Page 16: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/18.jpg)
![Page 19: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/23.jpg)
Tools:Communication
• Skype
• IRC
• Chat
• Google Calendar
![Page 24: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/24.jpg)
Tools:Agile Development
• Many contenders
• Jira, Rally, VersionOne, ...
• We’ve tried a few
![Page 25: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/25.jpg)
Tools:Agile Development
• Trac and plugins
• Pivotal Tracker
• Scrumdo
• Google Docs
![Page 26: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/29.jpg)
![Page 30: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/31.jpg)
![Page 32: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/34.jpg)
![Page 35: Agile Development with Plone](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/38.jpg)
Questions, Discussion?