<<

Eclipse and its Corona Inside a Large Scale Open Source Project - What Can we Learn From Open Source

Aldo Eisma Consulting IT Specialist IBM Global Services aldo_eisma@nl..com

© 2004 IBM Corporation What is ?

© 2004 IBM Corporation What is Eclipse?

• Eclipse - an open extensible IDE for anything and nothing in particular… + out-of-box function and quality to attract developers a development environment for itself + endorsement (i.e, products) by some major tool vendors + open-source and supports open source development

¾ industry standard tools platform

© 2004 IBM Corporation Why Should You Care?

• as a tool developer… – seamless tool integration – you no longer have to start from scratch – everybody can become a tool smith ¾ Eclipse changes the way tools are built • as a developer… – you get a state-of-the-art Java IDE that you can tweak ¾ but Eclipse is more than a Java IDE • as a user… • you get tools from different suppliers to make a tool environment the way you want it ¾ freedom of choice © 2004 IBM Corporation The Way to Eclipse

1997 1998 19992000 2001 2002 2003 2004 VisualAge/Java

VisualAge Micro Edition

Eclipse

June Oct Nov June March June Tech 1.0 Open 2.0 2.1 3.0 Preview Source announcement

© 2004 IBM Corporation Goals • Provide open platform for application development tools – run on a wide range of operating systems – GUI and non-GUI • Language-neutral – permit unrestricted content types – HTML, Java, /C++, JSP, EJB, XML, GIF, … • Facilitate seamless tool integration – add new tools to existing installed products • Attract community of tool developers – including independent vendors (ISVs) – capitalize on popularity of Java for writing tools

© 2004 IBM Corporation Why Open Source? • Full life cycle tool support requires contributions from partners • Options: 1. proprietary APIs 2. defined APIs plus Open Source • Partners want Open Source – less dependency on IBM – freedom of action for partners: • complement IBM products • implement their own products ¾ Platform rule: the more ISVs - the more relevant is the platform

© 2004 IBM Corporation eclipse.org • Eclipse Project – builds the Platform – adapt, evolve to meet needs of the community • Eclipse Tools Project – best of breed tools • Eclipse Technology Project – research, incubation, education • Web Tools Platform Project – build tooling for enterprise applications © 2004 IBM Corporation – just forming… eclipse.org • Eclipse Project Project – Platform – JDT: Java Development Tools Subprojects – PDE: Plug-in Development Environment • Eclipse Tools – GEF: Graphical Editing Framework – EMF, VE, UML2: Modeling frameworks and tools – Hyades: Test, Trace and Monitoring tools – CDT, Cobol: programming tools • Technology – AJDT: Aspect-oriented Java development tools

– Equinox: new more dynamic plug-in architecture © 2004 IBM Corporation – … Eclipse Community • Open Source is a “community thing” – an active community is the major asset of an OS project • OS project gives and takes: – OS developer gives: • listen to feedback and react • demonstrate continuous progress • transparent development – OS developer takes: • answer user questions so that developers do not have to do it • report defects and feature requests • validate technology by writing plug-ins • submit patches and enhancements • Give and take isn’t always balanced – community isn’t shy and is demanding © 2004 IBM Corporation Community (Cont’d)

• Increase the knowledge-level of the community • Requires intense communication – mailing list, newsgroups • news group now mostly self supporting – user maintained wiki • Community events – code camps – work with committers on your projects – “sprints” – committers meet to work on the OS project – EclipseCon – tech community conference

© 2004 IBM Corporation Growth of a Community • Vendors are committing to Eclipse –Over 175 vendors including significant commitments from Rational, TogetherSoft, Serena, QNX, Merant – C/C++ IDE plug-in for being led by QNX with RedHat, Rational, and MontaVista •Over 600 open source or plug-in projects available – 450+ plug-ins at: www.eclipse-plugins.info – 150+ plug-ins at: www.eclipse-workbench.com • 50 Eclipse Innovation Grants Approved © 2004 IBM Corporation Open Source Questions

• Impact of transition to Open Source? • Is Open Source chaotic? • What are the contributions? • Open Source and quality? • Planning an Open Source project? • Open Source and business?

© 2004 IBM Corporation Transitioning to Open Source

• Challenges – transparency • the community has to be able to observe what is going on to participate – educate community ¾ this takes time and conflicts with the IBM “shipping software” goal • not all developers enjoy Open Source exposure – loss of the product support “firewall” • developers interact with customers directly ¾ initial slow-down due to community engagement but increased transparency

© 2004 IBM Corporation Adopting Open Source Tools

• Open Source projects use a common set of tools • : – version configuration management: CVS – build system: Ant – unit testing: JUnit ¾ Integrate OS tools into Eclipse • Collaboration: – bug tracking: Bugzilla – newsgroups/mailing list – user collaboration: Wiki Web •FAQ © 2004 IBM Corporation Open Source Tools (Cont’d)

• Open Source tools are Open Source – high quality – validated for distributed development • Transition to OS tools was (surprisingly) smooth

© 2004 IBM Corporation Chaotic?

• OS projects are highly structured – with explicit rules • Commit right rules: public “meritocracy” – only a small number of developers can modify the source base – key architecture defined by a small team of lead developers – peer pressure among committers – continuous reviewing – contributions from outside (patches) have to be reviewed by committers

© 2004 IBM Corporation Contributions? Who is Reporting Bugs? • Eclipse 2.1 (6 months) – Consortium organizations: 7100 defects (= 1185 / m) month) • 341 reporters – Open source community: 3560 defects (= 595 / m) • 1212 reporters

© 2004 IBM Corporation Contributions? Code

• Eclipse 2.1 – 42 contributions • Expectation level for contributions is high – platform contributions have to have product quality – conforming to all the conventions is difficult • Larger contributions usually start as independent plug-ins • Products can introduce certification process for external plug-ins – Example: “Ready for WebSphere Studio Software plug-in ”

© 2004 IBM Corporation Quality? Continuous Integration

• Fully automated build process – Ant based • Build quality verified by JUnit tests – for a successful Eclipse build > 10’000 JUnit tests have to pass • Staged builds – nightly builds, weekly integration builds, monthly mile stone builds • “Eat your own dog food”

© 2004 IBM Corporation Planning

Product requirements suggest improvements Eclipse Products Committers commit to plan

Project Management Committee posts draft plan ¾plans start in embryonic form PlanPlan and are revised throughout the Community release cycle ¾milestones/time boxes enhancements are fixed early on feature requests bug votes

© 2004 IBM Corporation Business?

• Business opportunities – support – services and education – enhancements, e.g., easy install, better documentation – customization • Who are those guys? – BCG study of 678 Open Source Developers • 58% professional IT • 30% Open Source is their job!

© 2004 IBM Corporation Extending Eclipse for Fun and Profit…

Commercial Development Environments

IBM SAP Websphere Studio family NetWeaver Developer Studio

Eclipse SDK Eclipse SDK

Commercial Add-Ons

IBM SAP Websphere Studio family NetWeaver Developer Studio

Eclipse SDK Eclipse SDK

© 2004 IBM Corporation Instantiations, Borland, Sitraka, SlickEdit… Business? Complementary Products Generate Revenue

Enterprise Developer • Enterprise

XDE development

Rational Rational Application Developer – Integration Edition organizations • Advanced • Web services J2EE based Application Developer developers enterprise modernization • J2EE • Flow developers composition • Enterprise Site Developer modeling and • Visual • Relational RAD • Professional Web, Java, and DB tools adapter Device Developer creation Web services developers • Embedded • Java, XML, Rich media, and WebSphere • Business Web services Application rule support Server

WebSphere Studio Workbench IBM’s commercially supported version of the Eclipse Workbench

© 2004 IBM Corporation Is it Paying Off?

• Internal: tool strategies have aligned – all IBM tools build on top of Eclipse • Perception: Eclipse has a significant impact – “IBM is cool” • Products: a complete set of integrated tools is now available – enterprise application development – modeling (Rational) –C/C++ IDE ⇒ not built by IBM ¾ 175 tool vendors are providing plug-ins for Eclipse • Community: a growing asset – testing, feedback, contributions

• Costs: fixed cost ⇒ IBM needs such a platform anyways© 2004 IBM Corporation So? (easy…)

• Join the Eclipse community and use Eclipse as… – … your tools platform • vendor support available if desired • “now any Joe Engineer can take the Eclipse product and be productive” – CIO Magazine Apr 15 ¾listen to your top developers – … a platform for building your own products • CPL license allows shipping commercial products • freedom about adding to WS studio or build your own tools –… a Rich Client Platform for your own applications • leverage the proven Eclipse architecture and UI for your own rich client applications ¾ don’t be afraid of Open Source products © 2004 IBM Corporation So? (increasing aggressiveness…)

• Consider “Community Source” Development – use Open Source practices and tools for internal development • you get more transparent processes • more agile development • OS can make a large organization act like a smaller one ¾more control to the developers ¾information flows are nakedly visible

© 2004 IBM Corporation So? (most aggressive)

• Consider Open Source development for your products – split your product into • commodity (platform) layer • differentiator (application) layers ¾ keep the application layer small • become fully transparent • don’t hide your bugs and plans anymore • start to open source once you have something “interesting” ¾ invest into building a community – manage your expectations • your software will not be written by contributors

• community building takes time © 2004 IBM Corporation Eclipse Wants You

• Use Eclipse (any way you like) – learn about OS (Bugzilla, newsgroups, mailing lists) – enter defect reports • Be your own tool smith - develop plug-ins • Show what you know – participate in the newsgroups • Fix it – provide patches • Grow it – provide plug-ins • Get nominated – become a committer © 2004 IBM Corporation Questions?

! ?

© 2004 IBM Corporation Credits

Special thanks for being able to reuse material from:

• Erich Gamma - Java Development Tools Lead; Eclipse PMC Member.

© 2004 IBM Corporation