Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently...

36
Distributed Planning Poker Integrating IBM Rational Team Concert and Google Wave for distributed effort estimation Florian Georg [email protected] Jörg Möller [email protected] Stefan Hufnagl [email protected] IBM Software Group - Rational

Transcript of Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently...

Page 1: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

Distributed Planning PokerIntegrating IBM Rational Team Concert and Google Wave for distributed effort estimation

Florian Georg [email protected]örg Möller [email protected] Hufnagl [email protected] Software Group - Rational

Page 2: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

2

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

Page 3: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

3

Agile Estimation...

Planning PokerCommon 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

Improves predictability and estimation quality

Improves comparability over time

http://www.flickr.com/photos/11085191@N03/1073094268/

Page 4: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

4

... distributed ?

Collaborative game for co-located agile teams....

We have Offshoring with

different Timezones

Small Teams skilled in agile practicesIn IBM we have 40,000 developersMany “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

Page 5: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

5

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

Page 6: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

6

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

do estimating sessions !

Page 7: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

7

What do we need ?

Integration with collaboration tool for performing distributed Planning PokerSupport both synchronous and asynchronous collaboration patternHidden estimates, until all participants have votedTeam 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

Page 8: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

8

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

Page 9: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

9

Rational Team Concert

Integrated Team Collaboration PlatformSCMWork ItemsAgile PlanningBuild EngineProcess EnactmentDashboards, Reports

Why ?Wide adoption inside IBM and

customersAgile (Scrum) Process

SupportIntegrated PlanningExtensible (OSGi)Jazz Integration Architecture

(REST)

What ?Work Items (Story)Agile PlanningProcess Advisor

http://jazz.net

Page 10: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

10

Plan structure in RTC

Product Backlog

Sprint 1 Plan

Sprint 2 Plans

Release Backlog

Team Backlog

Sprint 1 Plan

Page 11: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

11

Google Wave

http://wave.google.com

Online Collaboration and CommunicationReal-time

communicationRich media

discussionsShared

document editingCombines Chat,

Mail, Forum metaphors

Why ?Supports

sync/async communicationExtensible

(Robots, Gadgets)Open ProtocolReviewable

(Playback)

What ?GadgetPoker Robot

Page 12: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

12

Google Wave: Robots and Gadgets (I)

Wave Robots„Listeners“ to

Wave ActivityReact on

document changesAbility to

modify/annotate Wave oAuth for

„Active“ operationsJSON based

wire protocol

Realized as GAE web application AbstractRobot

„Servlet“appengine-

web.xmlWave API libsServlet Mapping

(/_wave/*)

/_wave/capabilities.xml (generated)

http://appengine.google.com

Page 13: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

13

Google Wave: Robots and Gadgets (II)

Wave GadgetsJavaScript / DHTML /

JSONPrivate / shared state

objectsJSON data formats(OpenSocial gadgets

planned)

Embeddable HTML <div> + JavascriptInsert into Wave by

URLXML DocumentLoad special Google

JS libraries

Page 14: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

14

Open Services for Lifecycle Collaboration

Common Development Lifecycle ServicesDefine common

formats, services and protocolsTool interoperabilityRESTful interfacesIndustry cooperation

(IBM, Tasktop ...)

Why ?CM Spec implemented

by RTC 2.0REST-approach good fit

for Wave integration

What ?OSLC CM 1.0 SpecRTC specific format

extension

http://open-services.net

Page 15: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

15

What you can do with OSLC...Discover and use RESTful CM services, e.g.

Creation Factory ServiceQuery ServiceEmbeddable UI Providers („Link Picker“)...

OSLC specifies Formats, Services and ProtocolsCommon resource representations (XML, JSON)Services (Can/Must)Service Discovery mechanism

Different OSLC specifications are currently developed

Change ManagementRequirements ManagementArchitecture Management...

RTC SDK 2.0

Page 16: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

16

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

Page 17: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

17

Solution Overview

RTC Client/Server (with custom Plug-ins) Google Wave, using Robot and Gadget

Robot and gadget Code hosted on AppEngine Robot talking „OSLC CM“ to RTC Server

Page 18: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

18

Supported Process

Page 19: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

19

Scrum Process Enactment

RTC Plug-InsProcess

Precondition (server)Quick

Fix (client)

Operations can be extended by custom pre-conditions

By project

By teamBy roleBy Iteration

Page 20: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

20

Process Enactment Plug-In (Server-side)

Process specification (source)

Server-side Plug-In (OSGI)

Provided by RTC SDK

Page 21: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

21

Process Enactment Plug-In (Client-Side)

Generated by server-side Advisor report

Client-Side Plug-In (Eclipse)

Provided by RTC SDK

Page 22: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

22

DEMO: Process Enactment

Page 23: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

23

Wave Components: CardPicker Gadget

Track votes from participantsCalculate estimation resultsProvide flippable „Card UI“Notify Robot about commit state change when done

Page 24: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

24

CardPicker Gadget Code

Page 25: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

25

DEMO: CardPicker Gadget

Page 26: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

26

Wave Component: PokerBot

Implemented in JavaHosted on GAEPython also possible

Active RobotAllowed to create new WavesoAuth Security

„Custom“ HTTP POST interfaceRESTful Wave FactoryCalled from RTC client

Page 27: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

27

OSLC Change Management - Usage

Used for updating Story Work Item from Robot

Robot reacts on Gadget „commit“ event

RTC Simple Query ServiceGET XML

representationUpdate

„estimate“ attributePUT XML

representation

Need to deal with RTC auth, HTTP specifics, OSLC protocol & formats

Page 28: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

28

Page 29: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

29

Page 30: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

30

Update Story Work Item

Send back (partial) representation of Work ItemPUT HTTP RequestETag to detect concurrent modifications

Page 31: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

31

Demo: OSLC Update

Page 32: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

32

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

Page 33: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

33

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)

Page 34: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

34

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

Page 35: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

Florian Georg www.ibm.com/chIBM Switzerland [email protected]

Stefan Hufnagl www.ibm.com/deIBM Germany [email protected]

Page 36: Distributed Planning Poker · Rational Team Concert (RTC) Team development environment Currently used by approx. 13,000 IBM developers Used in distributed teams inside and outside

36

How do we want to play ?

The “Playing Poker” Process– Started manually or triggered by

Process– IDE integration offers to create &

link to a new Poker Session– Session is about informal

communication and voting from all team members

– Team commits results back into RTC, e.g. update the story estimation attribute.