Professional Documents
Culture Documents
development
Erich Gamma
IBM distinguished engineer
IBM rational zurich research lab
Open
Source
Eclipse Lessons
how buildings last
• layers:
• evolve at different rates during the life of a building Site
• shear against each other as they change at different rates
• an adaptive building must allow slippage
¾ a building that lasts is adaptive and can change over time
¾ lasts for generations without total rebuilding
runtime
Extension
Extension point
compatibility layer
I*2 extensions interfaces
extension interface: IAdaptable
restart in a new package
<extension point="org.eclipse.core.runtime.adapters">
<factory
class=“someAdapterFactory"
adaptableType=“someType">
<adapter type="IPersistableElement"/>
Code in public?
Have technical
discussions in public?
Key Lessons
Transparency helps existing
development
Better understanding of current
status
Responding to feedback takes time,
but pays off Transparency
Use same communication channels
inside as outside Developers
API adaptive
component
first planning
centric enable retrospectives
explore
Eclipse Lessons
Our Expanded Practices Today
continuous consume your
continuous
integration validate own output
testing
enable
sign drive with
off open eyes
reduce stress community
end transparency involvement
game
milestones attract
live show progress to latest
first
always have betas
feedback new &
a client update learn noteworthy
validate
API adaptive
component End of iteration
first planning
centric enable retrospectives demos/reviews
Product Backlog
explore
Burndown Stories
dynamic
Daily Standup validate
teams Adoptions
Expectations PMC
Buddy Review
Eclipse Lessons
What is behind the Eclipse Way
Practices underpinned with values
ship quality on time
Used, developed and improved over time
A mix of practices that worked for us
Another mix of practices works for others
Practices are from all kinds of sources
XP, Scrum, Crystal Clear, RUP, …
Patterns - Organizational Patterns of Agile Software Development – Coplien
It is not low ceremony
Approvals, verifications, reviews
It is agile: incremental, iterative, collaborative, transparent, customizable
And it scales up
Eclipse Lessons
In the Past…
Look at calendar.
Effort/
Pain
Level
Heads down
Exhaustion
Time
Eclipse Lessons
Iterative – No hanging rope
fitness
t
In the 3.1 3.2
no “hanging rope”
past
⇒ stress reduction
Eclipse Lessons
3.1
decompression
retrospective
warm-up
initial release plan
plan
release 3.2
M1
develop
Iterative – Time-boxed
6 weeks
stabilize
plan
sign-off
M2
fitness
develop
6 weeks
stabilize
plan
sign-off
develop
6 weeks
stabilize
fix - spit & polish
test
fix
endgame
test
Eclipse Lessons
sign-off
Continuous…
It is all about being continuous
Continuous iterative and adaptive planning
Continuous design/refactoring
Continuous integration/testing
Continuous delivering/demos
Continuous feedback
Continuous learning
Eclipse Lessons
Key Lessons
Agility can scale up to globally distributed teams
… but it would be nice to have better tool support
Eclipse Lessons
Outline
Open
Source
Eclipse Lessons
Reflections from an Eclipse PMC Lead
Eclipse Lessons
But… there are Pain Points…
joining a team
get my environment configured to be productive
what is happening in my team
collecting progress status Collaboration
following the team’s process
ad hoc collaboration/sharing of changes
starting an ad hoc team
Eclipse Lessons
Why are we doing Jazz?
Late
Late 90’s:
90’s: Focus
Focus on
on Point
Point Tools
Tools
Who can build the best Java IDE, the best C IDE, the best Web Tool,…
When
When we
we built
built Eclipse:
Eclipse: Focus
Focus on
on One
One Developer
Developer
Seamless integration across a set of tools to improve the productivity of one developer
Today,
Today, we
we must
must focus
focus on
on the
the Team
Team and
and its
its Collaboration
Collaboration
Geographically Distributed
Accelerated Delivery Demands Seamless
Seamlessintegration
integrationacross
across
all
all the Phases of the SoftwareLifecycle
the Phases of the Software Lifecycle
Agility with Predictability totoimprove
improve
Innovation and Repeatability the
theProductivity
Productivityof
ofthe
theEntire
EntireTeam.
Team.
Increased Need for Transparency
Eclipse Lessons
Jazz and Team Concert
Eclipse Lessons
Team Concert
Collaboration in Context
Team First
Process
Transparency
Eclipse Lessons
Collaboration in Context
Eclipse Lessons
Collaboration with Context
Eclipse Lessons
Collaboration: Builds
Scoped builds
Personal builds
Continuous team builds
Scheduled integration builds
Collaborate in context on build failures
Eclipse Lessons
Rules/Process
All collaborations have underlying
context specific rules
Each project follows a
process
Team’s own their process
Eclipse Lessons
Process
Process manifested through:
artifact types and their states
Scrum
role-specific preconditions
and actions on operations
manipulating artifacts Eclipse Way
role-specific and permissions
OpenUP
Eclipse Lessons
Transparency/Visibility: Dashboards
At a glance view on team artifacts Viewlets
Three dashboard types:
project
team
individual user
Eclipse Lessons
A Personal Dashboard
Eclipse Lessons
A Team Dashboard
Eclipse Lessons
Team of Teams Dashboard
Eclipse Lessons
Team of Teams Dashboard
Eclipse Lessons
Jazz Project Self-Hosting since Oct 2006 Ottawa
Toronto
•Source Control
•Reporting
Jazz
•Community Site
Development
Server
Bangalore
Beaverton
•VS Client
Lexington
Zurich
•Build
•Process
Raleigh
•Source Control
•Requirements •Work Items
•Interop •Agile Planning
•Code Coverage
•Repository
•Web UI
Eclipse Lessons
Summary: Our Journey
Eclipse Way