SlideShare a Scribd company logo
The Eclipse Way
Daniel Megert
Eclipse Platform and JDT Lead
IBM Research - Zurich
2 © 2016 IBM Corporation
Why Did We Do Eclipse?
 Disrupt the growing dominance of Microsoft
 Solve our tool integration problems
 Create a community of plug-in providers
3 © 2016 IBM Corporation
How we Started: Closed development
– The Swiss Bank
approach to software
development
• If it hasn't shipped
it doesn’t exist
– Strong firewall
between developers
and customers
4 © 2016 IBM Corporation
History
 1998 - IBM conceives idea of universal tool integration platform
– Work starts on SWT
 1999 - IBM team starts work to build Eclipse Platform and Java IDE
– Based on 10 years experience with Smaltalk, VA/Java, VA/MicroEdition
 2001 - IBM donates Eclipse Platform and Java IDE to open source ($40M)
 2001 - IBM Eclipse team leads Eclipse evangelism and seeds community
– IBM funded receptions and Eclipse community events
– Keynotes, conference talks, articles by IBM technical leaders
– 55 Full time developers improving Eclipse and fully engaged with community
– First Eclipse-based products
5 © 2016 IBM Corporation
November 2001: “Open Source”
Reaction from the development team
You want us
to do what?
Code in public?
Have technical
discussions in public?
Answer all those
dumb questions?
Why are we doing
this again?
6 © 2016 IBM Corporation
Key Lessons
– Transparency helps existing development
• Better understanding of current status
• Responding to feedback takes time, but pays off
– Use same communication channels inside as
outside
CommunityCommunity
Transparency
Feedback
and Support
DevelopersDevelopers
7 © 2016 IBM Corporation
Open Commercial Development
– Open Commercial Development is more than publishing
the source code
• Open, transparent process, from feature requests and
planning through delivery
– What can the community members do:
• Download milestones, try them, and provide feedback on
betas and incubators, including source code
• Access, Create, and update defects
• Access milestone and component iteration plans
• Access the development wiki
• Participate in discussions on the development community
newsgroups
– Example: www.jazz.net
8 © 2016 IBM Corporation
The Eclipse Way
 The secret of the success of the Eclipse team
 An agile software development process
 Used, developed and improved over time by the Eclipse team
9 © 2016 IBM Corporation
The Success of the Process
 The Eclipse team is shipping high quality
software on-time for many years now
–Continuous nightly builds on-time
–Weekly integration builds on-time
–Six week milestones on-time
–Yearly releases on-time
–Service releases on-time
 A healthy project
–Works on this high-level over years
–Continuously improving the process
Eclipse 1.0 Nov 2001
Eclipse 2.0 June 2002
Eclipse 2.0.1 Sept 2002
Eclipse 2.0.2 Nov 2002
Eclipse 2.0.3 Mar 2003
Eclipse 2.1 Mar 2003
Eclipse 2.1.1 June 2003
10 © 2016 IBM Corporation
Getting Started
 Milestones first
–Small cycles (+/- six weeks)
 Early incremental planning
–Essential for many agile processes
 Continuous testing, Continuous integration
–Essential for many agile processes
 Endgame
–Stabilizing the product at the end of the release cycle
– No feature work allowed
 Decompression
–Essential to recover and improve the process over time
11 © 2016 IBM Corporation
In the Past…
Time
Effort/
Pain
Level
Look at calendar
All the time in the world
Heads down
Say goodbye to your loved ones
Exhaustion
12 © 2016 IBM Corporation
Iterative – No hanging rope
fitness
no “hanging rope”
⇒ stress reduction
3.1
t
3.2In the
past
13 © 2016 IBM Corporation
Milestones First
 Break down release cycle into milestones
– We currently use 6 weeks
 Each milestone is a miniature
development cycle
– Plan, execute, test
– Teams refer to the release plan when
creating milestone plans
• Assign plan items to a milestone
• Milestone plans are public
 Result of a milestone
– Milestone builds: good enough to be
used by the community
 Milestones reduce stress!
14 © 2016 IBM Corporation
Iterative – Time-boxed
endgame
Release 4.6
fitness
M1
plan
develop
stabilize
6 weeks
warm-up
retrospective
initialreleaseplan
decompression
4.5
M2
plan
develop
stabilize
…
plan
develop
stabilize
sign-offsign-off sign-off
6 weeks 6 weeks
fix
test
fix
test
15 © 2016 IBM Corporation
Early Planning
 Establish big picture
– Team input
– Community input
 Sub-projects define their plans
 PMC collates initial draft project plan
– Tradeoff: requirements vs. available resources
16 © 2016 IBM Corporation
The Plan is Alive
 The sub-project plans are updated as we go
– Progress on items
– New items
– Input from the community
 The project plan is updated quarterly
 Becomes final at the end of the release
 Before, and still practiced by many: static plans
– Accurate once, but no early feedback: non-existent until late
in the cycle.
17 © 2016 IBM Corporation
Continuous Integration
 Fully automated build process
 Build quality verified by automated unit tests
 Staged builds
– Nightly builds
• Discover integration problems between components
– Weekly integration builds
• All automated unit tests must be successful
• Good enough for our own use
– Milestone builds
• Good enough for the community to use
18 © 2016 IBM Corporation
Always Beta
 Each integration build is a release candidate; we expect it to work
 Results of the build process and the automated tests
– Indicate where we are
 As tool makers we use our own tools
– Developers use weekly integration builds
– Community uses release and milesone builds
 Continuously Consume Our Own Output
aka Eat your own dog food
19 © 2016 IBM Corporation
Community Involvement
 Problem: no one knew what was in a milestone,
– So there was no incentive to move to milestone builds
– So we received minimal feedback
• More stale defect reports
– Quality suffered
 Solution: publish New and Noteworthy
– Advertise what we have been doing
 Requires transparency
– Community needs to know what is going on to participate
 Requires open participation
– We value the contributions of the community
 We are the community
20 © 2016 IBM Corporation
Testing
 Innovate and refactor code with confidence
– Continuous incremental design
 Over 100'000 JUnit tests
 Tightly integrated into the build process
– Tests run after each build (nightly, integration, milestone)
– Milestone builds are only green when all tests pass
 Test / Report kinds
– Correctness tests: Assert correct behavior
– Performance tests: Allow to see performance regressions
• Based on a database of previous test run measurements
– Resource tests: no leaks and no resource consumption regressions
– API verification - breakage
– API verification - illegal use of internal/non API
21 © 2016 IBM Corporation
Endgame
 Convergence process applied before release
– Sequence of test-fix passes (RCs)
• Community event
 With each pass the costs for fixing are increased
– Higher burden to release a fix for a problem
– Focus on higher priority problems and trivial fix/polish items
 Endgame endurance
– We are only effective for so long
– Distribute Quality/Polish effort throughout the release
– Shared responsibility and commitment
– We all sign off
22 © 2016 IBM Corporation
Fixed Bugs
23 © 2016 IBM Corporation
Decompression
 Recover from release
 Retrospective of the last cycle
– Achievements
– Failures
– Process
– Cross-team collaboration
 Explore new stuff
 Start to plan the next release and cycles
24 © 2016 IBM Corporation
Our Practices – The Eclipse Way
milestones
first
API
first
end
game
retrospectives
always have
a client
continuous
integration
community
involvement
new &
noteworthy
adaptive
planning
continuous
testing
consume your
own output
component
centric
drive with
open eyes
validate
reduce stress
learn
enable
attract
to latest
transparency
validate
update
dynami
c
teams
show progress
enable
explore
validate
live
betas
feedback
sign
off
common agile practices
common Open Source practices
scaling-up practices
25 © 2016 IBM Corporation
Conclusion
 The team makes the process work
 The team defines and evolves the process

More Related Content

PDF
테크니컬 리더
PDF
Jeu gestion de projet
PDF
Unleashing the Power of Automated Refactoring with JDT
PPT
Comunas Rurales
PDF
Managers Introduction to Agile
PDF
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
PDF
Technology Vision 2016 - Infographic
PDF
How to build an agile organisation
테크니컬 리더
Jeu gestion de projet
Unleashing the Power of Automated Refactoring with JDT
Comunas Rurales
Managers Introduction to Agile
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Technology Vision 2016 - Infographic
How to build an agile organisation

Viewers also liked (6)

PPTX
Scrum@accenture
PDF
Strategic Workforce Planning Finally Gets Strategic
PDF
Digital Disruption: Embracing the Future of Work
PDF
The Uncharted - Tech Vision 2017 Trend 5
PDF
Technology Vision 2017 - Overview
PDF
Technology Vision 2017 infographic
Scrum@accenture
Strategic Workforce Planning Finally Gets Strategic
Digital Disruption: Embracing the Future of Work
The Uncharted - Tech Vision 2017 Trend 5
Technology Vision 2017 - Overview
Technology Vision 2017 infographic
Ad

Similar to The Eclipse Way (20)

PDF
Eclipse Way
PDF
Eclipse Way
PPTX
From Continuous Integration to DevOps - Japan Innovate 2013
PPT
The Dancing Agile Elephant
PDF
Fariz Saracevic, IBM | Agile Turkey Summit 2013
PPT
Together in Eclipse
PDF
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
PPTX
Introducing the Rational Solution for Agile ALM
PPTX
Introducing agilealm
PDF
DevOps @ Enterprise - Lessons from the trenches
PPTX
Continuous Delivery in the Enterprise
PPTX
4.9.2013 Continuous Delivery - Extending Agile Development; A Lean Approach
PDF
All About Jazz Team Server Technology
PDF
What Industry and Research can learn from Open Source
PDF
IBM DevOps Enabling continuous integration & delivery
PPTX
Continuous Integration & the Release Maturity Model
PPT
The Agile Revolution of IBM
PDF
Continuous Delivery in the Enterprise - with IBM UrbanCode
PDF
IBM Agile ALM Overview
PDF
Agility at Scale: WebSphere’s Agile Transformation
Eclipse Way
Eclipse Way
From Continuous Integration to DevOps - Japan Innovate 2013
The Dancing Agile Elephant
Fariz Saracevic, IBM | Agile Turkey Summit 2013
Together in Eclipse
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Introducing the Rational Solution for Agile ALM
Introducing agilealm
DevOps @ Enterprise - Lessons from the trenches
Continuous Delivery in the Enterprise
4.9.2013 Continuous Delivery - Extending Agile Development; A Lean Approach
All About Jazz Team Server Technology
What Industry and Research can learn from Open Source
IBM DevOps Enabling continuous integration & delivery
Continuous Integration & the Release Maturity Model
The Agile Revolution of IBM
Continuous Delivery in the Enterprise - with IBM UrbanCode
IBM Agile ALM Overview
Agility at Scale: WebSphere’s Agile Transformation
Ad

More from Naresh Jain (20)

PDF
Problem Solving Techniques For Evolutionary Design
PDF
Agile India 2019 Conference Welcome Note
PDF
Organizational Resilience
PDF
Improving the Quality of Incoming Code
PDF
Agile India 2018 Conference Summary
PDF
Agile India 2018 Conference
PDF
Agile India 2018 Conference
PDF
Agile India 2018 Conference
PDF
Pilgrim's Progress to the Promised Land by Robert Virding
PDF
Concurrent languages are Functional by Francesco Cesarini
PDF
Erlang from behing the trenches by Francesco Cesarini
PDF
Anatomy of an eCommerce Search Engine by Mayur Datar
PDF
Setting up Continuous Delivery Culture for a Large Scale Mobile App
PDF
Value Driven Development by Dave Thomas
PDF
No Silver Bullets in Functional Programming by Brian McKenna
PDF
Functional Programming Conference 2016
PDF
Agile India 2017 Conference
PDF
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
PDF
MVP Design Hacks
PDF
Functional Conf 2015
Problem Solving Techniques For Evolutionary Design
Agile India 2019 Conference Welcome Note
Organizational Resilience
Improving the Quality of Incoming Code
Agile India 2018 Conference Summary
Agile India 2018 Conference
Agile India 2018 Conference
Agile India 2018 Conference
Pilgrim's Progress to the Promised Land by Robert Virding
Concurrent languages are Functional by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
Anatomy of an eCommerce Search Engine by Mayur Datar
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Value Driven Development by Dave Thomas
No Silver Bullets in Functional Programming by Brian McKenna
Functional Programming Conference 2016
Agile India 2017 Conference
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
MVP Design Hacks
Functional Conf 2015

Recently uploaded (20)

PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
medical staffing services at VALiNTRY
PPTX
history of c programming in notes for students .pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Introduction to Artificial Intelligence
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Digital Strategies for Manufacturing Companies
PPTX
Online Work Permit System for Fast Permit Processing
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administraation Chapter 3
Operating system designcfffgfgggggggvggggggggg
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
medical staffing services at VALiNTRY
history of c programming in notes for students .pptx
top salesforce developer skills in 2025.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PTS Company Brochure 2025 (1).pdf.......
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
CHAPTER 2 - PM Management and IT Context
2025 Textile ERP Trends: SAP, Odoo & Oracle
Introduction to Artificial Intelligence
Wondershare Filmora 15 Crack With Activation Key [2025
Digital Strategies for Manufacturing Companies
Online Work Permit System for Fast Permit Processing
How Creative Agencies Leverage Project Management Software.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administraation Chapter 3

The Eclipse Way

  • 1. The Eclipse Way Daniel Megert Eclipse Platform and JDT Lead IBM Research - Zurich
  • 2. 2 © 2016 IBM Corporation Why Did We Do Eclipse?  Disrupt the growing dominance of Microsoft  Solve our tool integration problems  Create a community of plug-in providers
  • 3. 3 © 2016 IBM Corporation How we Started: Closed development – The Swiss Bank approach to software development • If it hasn't shipped it doesn’t exist – Strong firewall between developers and customers
  • 4. 4 © 2016 IBM Corporation History  1998 - IBM conceives idea of universal tool integration platform – Work starts on SWT  1999 - IBM team starts work to build Eclipse Platform and Java IDE – Based on 10 years experience with Smaltalk, VA/Java, VA/MicroEdition  2001 - IBM donates Eclipse Platform and Java IDE to open source ($40M)  2001 - IBM Eclipse team leads Eclipse evangelism and seeds community – IBM funded receptions and Eclipse community events – Keynotes, conference talks, articles by IBM technical leaders – 55 Full time developers improving Eclipse and fully engaged with community – First Eclipse-based products
  • 5. 5 © 2016 IBM Corporation November 2001: “Open Source” Reaction from the development team You want us to do what? Code in public? Have technical discussions in public? Answer all those dumb questions? Why are we doing this again?
  • 6. 6 © 2016 IBM Corporation Key Lessons – Transparency helps existing development • Better understanding of current status • Responding to feedback takes time, but pays off – Use same communication channels inside as outside CommunityCommunity Transparency Feedback and Support DevelopersDevelopers
  • 7. 7 © 2016 IBM Corporation Open Commercial Development – Open Commercial Development is more than publishing the source code • Open, transparent process, from feature requests and planning through delivery – What can the community members do: • Download milestones, try them, and provide feedback on betas and incubators, including source code • Access, Create, and update defects • Access milestone and component iteration plans • Access the development wiki • Participate in discussions on the development community newsgroups – Example: www.jazz.net
  • 8. 8 © 2016 IBM Corporation The Eclipse Way  The secret of the success of the Eclipse team  An agile software development process  Used, developed and improved over time by the Eclipse team
  • 9. 9 © 2016 IBM Corporation The Success of the Process  The Eclipse team is shipping high quality software on-time for many years now –Continuous nightly builds on-time –Weekly integration builds on-time –Six week milestones on-time –Yearly releases on-time –Service releases on-time  A healthy project –Works on this high-level over years –Continuously improving the process Eclipse 1.0 Nov 2001 Eclipse 2.0 June 2002 Eclipse 2.0.1 Sept 2002 Eclipse 2.0.2 Nov 2002 Eclipse 2.0.3 Mar 2003 Eclipse 2.1 Mar 2003 Eclipse 2.1.1 June 2003
  • 10. 10 © 2016 IBM Corporation Getting Started  Milestones first –Small cycles (+/- six weeks)  Early incremental planning –Essential for many agile processes  Continuous testing, Continuous integration –Essential for many agile processes  Endgame –Stabilizing the product at the end of the release cycle – No feature work allowed  Decompression –Essential to recover and improve the process over time
  • 11. 11 © 2016 IBM Corporation In the Past… Time Effort/ Pain Level Look at calendar All the time in the world Heads down Say goodbye to your loved ones Exhaustion
  • 12. 12 © 2016 IBM Corporation Iterative – No hanging rope fitness no “hanging rope” ⇒ stress reduction 3.1 t 3.2In the past
  • 13. 13 © 2016 IBM Corporation Milestones First  Break down release cycle into milestones – We currently use 6 weeks  Each milestone is a miniature development cycle – Plan, execute, test – Teams refer to the release plan when creating milestone plans • Assign plan items to a milestone • Milestone plans are public  Result of a milestone – Milestone builds: good enough to be used by the community  Milestones reduce stress!
  • 14. 14 © 2016 IBM Corporation Iterative – Time-boxed endgame Release 4.6 fitness M1 plan develop stabilize 6 weeks warm-up retrospective initialreleaseplan decompression 4.5 M2 plan develop stabilize … plan develop stabilize sign-offsign-off sign-off 6 weeks 6 weeks fix test fix test
  • 15. 15 © 2016 IBM Corporation Early Planning  Establish big picture – Team input – Community input  Sub-projects define their plans  PMC collates initial draft project plan – Tradeoff: requirements vs. available resources
  • 16. 16 © 2016 IBM Corporation The Plan is Alive  The sub-project plans are updated as we go – Progress on items – New items – Input from the community  The project plan is updated quarterly  Becomes final at the end of the release  Before, and still practiced by many: static plans – Accurate once, but no early feedback: non-existent until late in the cycle.
  • 17. 17 © 2016 IBM Corporation Continuous Integration  Fully automated build process  Build quality verified by automated unit tests  Staged builds – Nightly builds • Discover integration problems between components – Weekly integration builds • All automated unit tests must be successful • Good enough for our own use – Milestone builds • Good enough for the community to use
  • 18. 18 © 2016 IBM Corporation Always Beta  Each integration build is a release candidate; we expect it to work  Results of the build process and the automated tests – Indicate where we are  As tool makers we use our own tools – Developers use weekly integration builds – Community uses release and milesone builds  Continuously Consume Our Own Output aka Eat your own dog food
  • 19. 19 © 2016 IBM Corporation Community Involvement  Problem: no one knew what was in a milestone, – So there was no incentive to move to milestone builds – So we received minimal feedback • More stale defect reports – Quality suffered  Solution: publish New and Noteworthy – Advertise what we have been doing  Requires transparency – Community needs to know what is going on to participate  Requires open participation – We value the contributions of the community  We are the community
  • 20. 20 © 2016 IBM Corporation Testing  Innovate and refactor code with confidence – Continuous incremental design  Over 100'000 JUnit tests  Tightly integrated into the build process – Tests run after each build (nightly, integration, milestone) – Milestone builds are only green when all tests pass  Test / Report kinds – Correctness tests: Assert correct behavior – Performance tests: Allow to see performance regressions • Based on a database of previous test run measurements – Resource tests: no leaks and no resource consumption regressions – API verification - breakage – API verification - illegal use of internal/non API
  • 21. 21 © 2016 IBM Corporation Endgame  Convergence process applied before release – Sequence of test-fix passes (RCs) • Community event  With each pass the costs for fixing are increased – Higher burden to release a fix for a problem – Focus on higher priority problems and trivial fix/polish items  Endgame endurance – We are only effective for so long – Distribute Quality/Polish effort throughout the release – Shared responsibility and commitment – We all sign off
  • 22. 22 © 2016 IBM Corporation Fixed Bugs
  • 23. 23 © 2016 IBM Corporation Decompression  Recover from release  Retrospective of the last cycle – Achievements – Failures – Process – Cross-team collaboration  Explore new stuff  Start to plan the next release and cycles
  • 24. 24 © 2016 IBM Corporation Our Practices – The Eclipse Way milestones first API first end game retrospectives always have a client continuous integration community involvement new & noteworthy adaptive planning continuous testing consume your own output component centric drive with open eyes validate reduce stress learn enable attract to latest transparency validate update dynami c teams show progress enable explore validate live betas feedback sign off common agile practices common Open Source practices scaling-up practices
  • 25. 25 © 2016 IBM Corporation Conclusion  The team makes the process work  The team defines and evolves the process