Distributed Planning Poker Integrating IBM Rational Team Concert and Google Wave for distributed effort estimation Florian Georg florian.georg@ch.ibm.com Jörg Möller joerg.moeller@de.ibm.com Stefan Hufnagl hufnagl@de.ibm.com IBM Software Group - Rational
AGENDA > Agile Estimation... distributed ? > Solution Requirements > Technologies – Rational Team Concert – Google Wave – Open Services for Lifecycle Collaboration > Technical Solution Overview – Scrum Process Enactment – Wave Components – OSLC CM Protocol Usage > Lessons learned, Q&A 2
Agile Estimation... Planning Poker Common approach to estimate work items in agile projects Played with the team against backlog Relative (story points) or absolute (ideal days) 1+ rounds until consensus reached Improves common understanding of tasks and thus reduces risks http://www.flickr.com/photos/11085191@N03/1073094268/ Improves predictability and estimation quality Improves comparability over time 3
... distributed ? Collaborative game for co-located agile teams.... We have Offshoring with different Timezones Small Teams skilled in agile practices In IBM we have 40,000 developers Many “traditional” teams, wanting to become more agile How to scale Planning Poker and guide developers through the process ? Example: IBM Rational teams involved in RTC development 4
AGENDA > Agile Estimation... distributed ? > Solution Requirements > Technologies – Rational Team Concert – Google Wave – Open Services for Lifecycle Collaboration > Technical Solution Overview – Scrum Process Enactment – Wave Components – OSLC CM Protocol Usage > Lessons learned, Q&A 5
What do we have? Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside IBM Based on Eclipse and Jazz technology Supports process enactment Supports Agile iteration planning using work items (Scrum Process Template) Story Work Items… “Estimate” as an attribute… …but no support to actually 6 do estimating sessions !
What do we need ? Integration with collaboration tool for performing distributed Planning Poker Support both synchronous and asynchronous collaboration pattern Hidden estimates, until all participants have voted Team decides to commit. Team members may enter or leave the session at any time. Participants can vote/redraw votes at any time (until committed) Discussion should be auditable 7
AGENDA > Agile Estimation... distributed ? > Solution Requirements > Technologies – Rational Team Concert – Google Wave – Open Services for Lifecycle Collaboration > Technical Solution Overview – Scrum Process Enactment – Wave Components – OSLC CM Protocol Usage > Lessons learned, Q&A 8
Rational Team Concert Integrated Team Collaboration Platform SCM http://jazz.net Work Items Agile Planning Build Engine Process Enactment Dashboards, Reports Why ? Wide adoption inside IBM and customers Agile (Scrum) Process Support Integrated Planning Extensible (OSGi) Jazz Integration Architecture (REST) What ? Work Items (Story) Agile Planning 9 Process Advisor
Plan structure in RTC Product Backlog Release Backlog Sprint 1 Plan Sprint 2 Plans Team Backlog Sprint 1 Plan 10
Google Wave Online Collaboration and Communication Real-time communication http://wave.google.com Rich media discussions Shared document editing Combines Chat, Mail, Forum metaphors Why ? Supports sync/async communication Extensible (Robots, Gadgets) Open Protocol Reviewable (Playback) What ? 11 Gadget Poker Robot
Google Wave: Robots and Gadgets (I) Wave Robots „Listeners“ to Wave Activity http://appengine.google.com React on document changes Ability to modify/annotate Wave oAuth for „Active“ operations JSON based wire protocol Realized as GAE web application AbstractRobot „Servlet“ appengine- web.xml Wave API libs 12 Servlet Mapping (/_wave/*) /_wave/capabilities.xml (generated)
Google Wave: Robots and Gadgets (II) Wave Gadgets JavaScript / DHTML / JSON Private / shared state objects JSON data formats (OpenSocial gadgets planned) Embeddable HTML <div> + Javascript Insert into Wave by URL XML Document Load special Google JS libraries 13
Open Services for Lifecycle Collaboration Common Development Lifecycle Services Define common formats, services and protocols http://open-services.net Tool interoperability RESTful interfaces Industry cooperation (IBM, Tasktop ...) Why ? CM Spec implemented by RTC 2.0 REST-approach good fit for Wave integration What ? OSLC CM 1.0 Spec RTC specific format extension 14
What you can do with OSLC... Discover and use RESTful CM services , e.g. Creation Factory Service Query Service Embeddable UI Providers („Link Picker“) ... OSLC specifies Formats, Services and Protocols Common resource representations (XML, JSON) Services (Can/Must) Service Discovery mechanism RTC SDK 2.0 Different OSLC specifications are currently developed Change Management Requirements Management Architecture Management ... 15
AGENDA > Agile Estimation... distributed ? > Solution Requirements > Technologies – Rational Team Concert – Google Wave – Open Services for Lifecycle Collaboration > Technical Solution Overview – Scrum Process Enactment – Wave Components – OSLC CM Protocol Usage > Lessons learned, Q&A 16
Solution Overview Robot and gadget Code hosted on AppEngine RTC Client/Server (with custom Plug-ins) Robot talking „OSLC CM“ to RTC Server Google Wave, using Robot and Gadget 17
Supported Process 18
Scrum Process Enactment RTC Plug-Ins Process Precondition (server) Quick Fix (client) Operations can be extended by custom pre-conditions By project By team By role By Iteration 19
Process Enactment Plug-In (Server-side) Provided by RTC SDK Server-side Plug-In (OSGI) Process specification (source) 20
Process Enactment Plug-In (Client-Side) Provided by RTC SDK Client-Side Plug-In (Eclipse) Generated by server-side Advisor report 21
DEMO: Process Enactment 22
Wave Components: CardPicker Gadget Track votes from participants Calculate estimation results Provide flippable „Card UI“ Notify Robot about commit state change when done 23
CardPicker Gadget Code 24
DEMO: CardPicker Gadget 25
Wave Component: PokerBot Implemented in Java Hosted on GAE Python also possible Active Robot Allowed to create new Waves oAuth Security „Custom“ HTTP POST interface RESTful Wave Factory Called from RTC client 26
OSLC Change Management - Usage Used for updating Story Work Item from Robot Robot reacts on Gadget „commit“ event RTC Simple Query Service GET XML representation Update „estimate“ attribute PUT XML representation Need to deal with RTC auth, HTTP 27 specifics, OSLC protocol & formats
28
29
Update Story Work Item Send back (partial) representation of Work Item PUT HTTP Request ETag to detect concurrent modifications 30
Demo: OSLC Update 31
AGENDA > Agile Estimation... distributed ? > Solution Requirements > Technologies – Rational Team Concert – Google Wave – Open Services for Lifecycle Collaboration > Technical Solution Overview – Scrum Process Enactment – Wave Components – OSLC CM Protocol Usage > Lessons learned, Q&A 32
Lessions Learned OSGi, REST, and OSLC offer a great approach for heterogenious tool integration and extensibility OSLC spec is very generic and basic (e.g. „Estimate“ attribute not standard) Google changes beta API and running systems quite often (breaks working code) No official client lib to simplify OSLC usage (we‘re working on it) Google Wave still in early stages, hard to debug robots and gadgets (no local install) RTC mature, but SDK takes some time to setup Google documentation is much better, RTC SDK needs more „learning from code“ OSLC XML formats are quite verbose; take a closer look at RDF Be aware of AppEngine restrictions (e.g. self-signed HTTPS/SSL certs) 33
Links http://jazz.net/projects/rational-team-concert/ – IBM Rational Team Concert Project Page http://jazz.net/wiki/bin/view/Main/RtcSdk20 – RTC 2.0 SDK (Wiki) http://wave.google.com – Everything about Google Wave http://code.google.com/intl/de-DE/apis/wave/guide.html – Google Wave API Overview http://code.google.com/intl/de-DE/apis/wave/extensions/robots/protocol.html – Robot Wire Protocol http://open-services.net – Collaborative Wiki and Whitepapers for OSLC http://open-services.net/bin/view/Main/CmSpecificationV1 – OSLC Specification for Change Management, Version 1 http://jazz.net/library/article/352 – How to consume the Rational Team Concert change management services 34
Florian Georg www.ibm.com/ch IBM Switzerland fgeo@ch.ibm.com Stefan Hufnagl www.ibm.com/de IBM Germany hufnagl@de.ibm.com
Recommend
More recommend