Agile Development with Plone
-
Upload
sally-kleinfeldt -
Category
Technology
-
view
449 -
download
0
description
Transcript of Agile Development with Plone
![Page 1: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/7.jpg)
Roles
• Project owner
• Developer
• Designer
• PM
![Page 8: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/9.jpg)
Roles:Developer
• Technical expert
• Open minded
• Honest
![Page 10: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/15.jpg)
Planning
• Discovery
• Story development
• Technical architecture
![Page 16: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/18.jpg)
![Page 19: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/23.jpg)
Tools:Communication
• Skype
• IRC
• Chat
• Google Calendar
![Page 24: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/29.jpg)
![Page 30: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/31.jpg)
![Page 32: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/34.jpg)
![Page 35: Agile Development with Plone](https://reader033.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/reader033/viewer/2022052617/547999cdb379593a2b8b480a/html5/thumbnails/38.jpg)
Questions, Discussion?