the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business...

27
1 © 2005 by International Business Machines; made available under the EPL v1.0 | February 28, 2005 the eclipse way processes that adapt Erich Gamma, John Wiegand Eclipse Project Management Committee Members IBM The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 outline on the way to 3.1 the Eclipse way

Transcript of the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business...

Page 1: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

1

© 2005 by International Business Machines; made available under the EPL v1.0 | February 28, 2005

the eclipse wayprocesses that adapt

Erich Gamma, John WiegandEclipse Project Management Committee MembersIBM

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

outline

on the way to 3.1the Eclipse way

Page 2: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

2

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

on the way to 3.1…

Q1Q42005

M6

Q2Q3

M7 3.1M5M4M3M2M13.0 M6M5M4M3M2M1

EclipseCON2005

M7

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

3.1 themes

scaling upenterprise readydesign for extensibility: be a better platformsimple to userich client platform improvementsJ2SE 5 supportbroadening the community

Page 3: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

3

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

UI

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

CVS

Page 4: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

4

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

Debug

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

J2SE 5

Page 5: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

5

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

JDT Quick Fixes

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

JDT UI

Page 6: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

6

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

JDT NLS support

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

Ant

Page 7: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

7

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

SWT

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

PDE/RCP

Page 8: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

8

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

user assistance

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

outline

on the way to 3.1the Eclipse way

Page 9: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

9

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

why “the eclipse way”?

our process has evolved over timestay aware, adapt, change

our process has helped us (the platform) to achieve:predictability

quality delivery on timeshare what we have learned

influence “by example” – similar as JDT

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

“I've been following the development of Eclipse for some time and I'm continually amazed as the extended team hits each projected milestone and ship date with precision. Until this experience, I was convinced that such a feat was impossible for a software project of any size and complexity.

So... the question is how is this really accomplished?And the immediate follow-up of course is, how can this process be replicated elsewhere?

- a post to the eclipse developer’s mailing list

Page 10: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

10

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

eclipse practices

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

earlyincremental

planning

continuous testing

consume yourown output

componentcentric

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

showprogress

enable

explore

validate

itit’’s all about feedback!s all about feedback!

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

project rhythm

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

earlyincremental

planning

continuous testing

consume yourown output

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

showprogress

enable

explore

validate

componentcentric

Page 11: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

11

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

eclipse release cycles

1.0Nov 2001

2.0.1Sep 2002

2.0June 2002

2.0.3Mar 2003

2.0.2Nov 2002

2.1.1June 2003

2.1Mar 2003

2.1.2Oct 2003

2.1.3Feb 2004 3.0

June 2004

3.0.1Nov 2004

3.0.2Mar 2005 3.1

June 2005

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

milestones first

break down release cycle into milestones

we currently use 6 weekseach milestone is a miniature development cycle

plan, execute, test, retrospectiveteams refer to the release plan when creating milestone plans

assign plan items to a milestonemilestone plans are public

result of a milestonemilestone builds: good enough to be used by the community

at the end of each milestone we do a retrospective

what went well, what did not?

milestones reduce stress!

before/after

t

quality

ready to ship

2.0 3.0

Page 12: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

12

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

continuous integration

fully automated build processbuild quality verified by automatic unit tests staged builds

nightly buildsdiscover integration problems between components

(weekly) integration buildsall automatic unit tests must be successfulgood enough for our own use

milestone buildsgood enough for the community to use

reality: build failures occurrebuild to create acceptable integration, milestone builds.

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

always beta

each build is a release candidate; we expect it to workresults of the build process and the automatic tests

indicate where we areas tool makers we use our own tools

component team – use the latest code daily

project team – use integration builds (weekly)

community – use milestone buildscontinuously Consume Our Own Output

Page 13: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

13

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

community involvement

requires transparencycommunity needs to know what is going on to participate

requires open participationWe value the contributions of the community

we are the community

problem: no one knew what was in a milestone, so there was no incentive to move to milestone builds

so we received minimal feedbackmore stale defect reports

quality sufferedsolution: publish new and noteworthy

advertise what we have been doing

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

testing

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

earlyincremental

planning

continuous testing

consume yourown output

componentcentric

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

showprogress

enable

explore

validate

Page 14: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

14

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

testing

innovate with confidencecontinuous incremental design

> 20,000 JUnit teststightly integrated into the build process

tests run after each build (nightly, integration, milestone)

integration builds are only green when all tests pass

test kindscorrectness tests

assert correct behaviorperformance tests

assert no performance regressionsbased on a database of

previous test run measurements

resource tests, leak testsassert no resource consumption

regressions

Defects Testing

Kent Beck – JUnit Handbook

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

test report

Page 15: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

15

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

performance test report

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

finishing

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

earlyincremental

planning

continuous testing

consume yourown output

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

showprogress

enable

explore

validate

componentcentric

Page 16: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

16

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

endgame

convergence process applied before releasesequence of test-fix passes

community eventwith each pass the costs for fixing are increased

higher burden to work on fix for a problemhigher burden to release a fix for a problemfocus on higher priority problems

# fixed bugs 608301

85 fix passtest pass

time

447

May 21 May 28 June 11 June 20 June 25

eclipse 3.0 Release

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

endgame

endgame endurancewe are only effective for so long

distribute Quality/Polish effort throughout the releaseshared responsibility and commitment

we all Sign off

Page 17: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

17

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

[platform-releng-dev] PDE status for I-20040625-1208

"An enthusiastic GO from PDE" - Cherie "The best build of the year!" - Dejan"An Eclipse build that the whole family can enjoy" - Wassim

Your PDE team.

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

decompression

recover from release retrospective of the last cycle

achievements

failures

process

cross-team collaborationstart to plan the next release and cycle

Page 18: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

18

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

where the time goes

release cycle 12-16 monthsmilestones - 9 months

endgame – 1-2 months

decompression – 1 month milestones

endgame

decompression

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

planning

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

earlyincremental

planning

continuous testing

consume yourown output

componentcentric

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

showprogress

enable

explore

validate

Page 19: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

19

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

early planning

release themes establish big picturecommunity input

requirements council new source of input

component teams define component plans

PMC collates initial project plan draft tradeoff: requirements vs. available resources

Committed, Proposed, Deferred

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

the plan is alive

the project plan is updated quarterly to reflectprogress on items

new items

input from the communitybecomes final at the end of the release

before: static plansaccurate once, but no early feedback: non-existent until late in the cycle.

Page 20: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

20

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

ongoing risk assessment

address high risk items and items with many dependencies early

maintain schedule by dropping items (if necessary)we will drop proposed items

we hate to drop committed items

prefer fewer completed items than more items in progress

high risk items are sandboxed to reduce risk to other itemsprefer to serialize highest risk items (to minimize integration pain)

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

collective ownership

PMC meets at least once a week

all component leads and the PMC meet for a weekly planning callstatusplanningidentification of cross-component issuesmeeting notes posted to the developer mailing lists

dynamic teams are established for solving cross-component issuesone cross-component issue per dynamic teammembers are key developers from all effected componentsfind, implement, and roll-out solution of the assigned cross component issuerepresented in the weekly planning calls

Page 21: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

21

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

built to last

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

earlyincremental

planning

continuous testing

consume yourown output

componentcentric

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

showprogress

enable

explore

validate

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

built to last

deliver on time, every timedecisions in this release impact what we can do next release

must preserve architectural integrity

deliver quality innovation with continuityneed to have a solid foundation

scalableperformantstable

Page 22: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

22

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

how buildings “survive”

Site

• Stewart Brand: how buildings learn– what happens after they're built

• stuff: furniture • services: electrical, plumbing (7-15y)• structure: foundation, load bearing walls (30-300y)• site: geographical setting (forever)

• layers:

• evolve at different rates during the life of a building• 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

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

structure foundation

the eclipse plug-in architectureeverything is a plug-in

simple and consistent

Page 23: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

23

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

services plumbing: APIs

APIs matterdefine consistent, concise API

don’t expose the implementation

develop implementation and client at the same timedefine APIs for stability

binary compatibility is highest priority

we would rather provide less API than desired (and augment) thanprovide the wrong (or unnecessary) API and need to support it indefinitely

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

component centric

component centric developmenta team is responsible for one or more component

dependencies through APIsensures high velocity development inside a componenteclipse 3.1 provides tools support to check for API access violations

define producer/consumer relationships among componentstension among components is healthy for coming up withgood component interfaces/APIs

Page 24: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

24

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

APIs first

APIs don’t just happen; we need to design them

specifications with precisely defined behaviorwhat you can assume (and what you cannot)

it works ≠ API compliant

must have at least one client involved, preferably more

need an API advocatewe all care about having sustainable APIs

need someone who lives and breathes APIs

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

practical extensibility

extensible in ways that are known useful needed by us, requested by others

we don't provide hypothetical generality - we want to be extensible in ways that matter

don't over generalize

Page 25: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

25

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

API tension

conflictAPIs need to be implemented and used to be right

requires iterationneeds external client

stable API necessaryfor widespread adoption

resolutiondon’t commit API before its time

APIs can (and should) change during the release to accommodate new requirements, experience

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

summary

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

earlyincremental

planning

continuous testing

consume yourown output

componentcentric

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

showprogress

enable

explore

validate

Page 26: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

26

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

confessions

ripples - a change in a lower layer that propagates upwe often underestimate the impact on upper layers!

consequence: end game swirls and stressground rule:

you are not done unless the upper most layer has digested the ripple

dynamic teams – not all efforts are successfulrequire leadership, feeling of responsibility

require even more detailed planning we drop features!

but we hate to drop committed items

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

summary: how extreme is eclipse?testing early, often and automatedincremental design

Yes but API stability is important to usdaily deploymentcustomer involvement

even better we have an active communitycontinuous integration

nightly, weekly, milestoneshort development cycles

6 week cycles incremental planning

start with embryonic planrefine after each milestone

Page 27: the eclipse way - EclipseCon Europe 2019 · 2 The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0 on the way to 3.1… Q4 Q1 2005 M6 Q3

27

The Eclipse Way | © 2005 by International Business Machines; made available under the EPL v1.0

conclusion

the team makes the process work

the team defines and evolves the process