Open Source Software Erik Doernenburg


Published on

  • Be the first to comment

  • Be the first to like this

Open Source Software Erik Doernenburg

  1. 1. Open Source Software Erik Doernenburg
  2. 2. About ThoughtWorks <ul><li>ThoughtWorks delivers complex projects using agile methods </li></ul><ul><li>ThoughtWorks has about 650 people in the US, Australia, Canada, India and the UK </li></ul><ul><li>Revenue: $80M </li></ul><ul><li>Areas of expertise: </li></ul><ul><ul><li>Java, Microsoft .NET </li></ul></ul><ul><ul><li>Open Source Software </li></ul></ul><ul><ul><li>SOA, EAI </li></ul></ul><ul><ul><li>Agile Development </li></ul></ul>
  3. 3. ThoughtWorks has a track record of creating and supporting Open Source Software (OSS) <ul><li>ThoughtWorks funds entire OSS projects and a majority of employees contribute to OSS projects </li></ul><ul><ul><li>CruiseControl (the first Continuous Integration tool) </li></ul></ul><ul><ul><li>Overview at: </li></ul></ul><ul><li>ThoughtWorks manages OSS projects for clients </li></ul><ul><ul><li>EHCache (now the standard cache for Hibernate) </li></ul></ul><ul><ul><li>Neo (one of the first persistence layers for .NET) </li></ul></ul><ul><li>ThoughtWorks supports the OSS movement </li></ul><ul><ul><li>Sponsorship of The Codehaus portal </li></ul></ul><ul><ul><li>Provisioning of CCNetLive </li></ul></ul><ul><ul><li>Promotion of OSS at conferences and in white papers </li></ul></ul>
  4. 4. Agenda <ul><li>The Open Source movement </li></ul><ul><li>Open Source Software adoption </li></ul>
  5. 5. How did it start? <ul><li>1984 GNU project started by Richard Stallman at MIT </li></ul><ul><ul><li>Computing should not be dominated by a few companies </li></ul></ul><ul><ul><li>Software should be free (as in speech, not beer) </li></ul></ul><ul><ul><li>Source code must always be available </li></ul></ul><ul><ul><li>Redistribution must be allowed </li></ul></ul><ul><ul><li>GNU Public License deliberately designed to work against proprietary software </li></ul></ul><ul><li>1997 Open Source Software (OSS) defined by informal group of leaders in the free software community </li></ul><ul><ul><li>Create a marketing campaign to win mindshare </li></ul></ul><ul><ul><li>Attempt to address anti-business message of GPL </li></ul></ul><ul><ul><li>Open Source Definition allows greater liberties with licensing, mixes with proprietary software </li></ul></ul>
  6. 6. Why are people and companies interested in OSS? <ul><li>Innovation – Sharing source code allows collaboration similar to that of scientific communities </li></ul><ul><ul><li>Faster progress as effort is not duplicated </li></ul></ul><ul><ul><li>More variety due lower barrier to entry </li></ul></ul><ul><ul><li>More creativity as complimentary work is leveraged </li></ul></ul><ul><ul><li>More focus as features are driven by end-user needs </li></ul></ul><ul><ul><li>Greater robustness as more developers work on code </li></ul></ul><ul><li>Pursuit of knowledge in scientific tradition </li></ul><ul><li>Stimulation and respect for solving complex problems </li></ul><ul><li>New business models; mainly commercial support for OSS </li></ul><ul><li>Reduced cost due to lack of license fees </li></ul>
  7. 7. How does an OSS project work? <ul><li>Starts as a one-person show (the project leader) </li></ul><ul><li>Others are recruited on the basis of their skills, motivations, or connections </li></ul><ul><li>A trusted few users are given responsibility for the organisation of work: committers </li></ul><ul><li>Many users contribute code, fixes or documentation, but their work is screened by committers </li></ul><ul><li>The founder may step down and pass on the torch </li></ul><ul><li>Can stay small or grow enormously </li></ul>
  8. 8. What makes a successful OSS project? <ul><li>Software is useful and/or interest is generated </li></ul><ul><li>Committers and contributors do most of the actual work </li></ul><ul><li>The project lead provides </li></ul><ul><ul><li>Some high-level direction and goals </li></ul></ul><ul><ul><li>Approval or otherwise of proposed directions </li></ul></ul><ul><ul><li>Release schedules </li></ul></ul><ul><li>Start-up for users is as easy as possible </li></ul><ul><ul><li>Good documentation, simple code, installers, etc. </li></ul></ul><ul><li>No promises, but constant progress and regular releases </li></ul>
  9. 9. How is OSS distributed? <ul><li>Some very large projects have independent web sites: </li></ul><ul><ul><li>Linux, FreeBSD, Eclipse, etc. </li></ul></ul><ul><li>OSS portals with a specific focus </li></ul><ul><ul><li>Apache, Codehaus, Tigris, etc. </li></ul></ul><ul><li>Open OSS portals that provide general infrastructure </li></ul><ul><ul><li>SourceForge </li></ul></ul><ul><li>Corporate websites </li></ul><ul><ul><li>JBoss, Resin, Apple </li></ul></ul><ul><li>CD-ROM/DVD through retail channels </li></ul>
  10. 10. How is OSS supported? <ul><li>Informal community support </li></ul><ul><ul><li>Successful OSS projects have good documentation. </li></ul></ul><ul><ul><li>Mailing lists provide direct support from other users and the developers. </li></ul></ul><ul><ul><li>No guaranteed response time but usually very fast and pragmatic. </li></ul></ul><ul><ul><li>Mailing lists are archived and searchable. </li></ul></ul><ul><li>Formal professional support </li></ul><ul><ul><li>Companies provide support for specific OSS projects on commercial terms. </li></ul></ul><ul><li>Source code is available… </li></ul>
  11. 11. Agenda <ul><li>The Open Source movement </li></ul><ul><li>Open Source Software adoption </li></ul>
  12. 12. (Perceived) barriers to OSS adoption <ul><li>Quality </li></ul><ul><ul><li>OSS model works and produces high quality software </li></ul></ul><ul><li>Lack of support </li></ul><ul><ul><li>Formal and informal support are available </li></ul></ul><ul><li>Velocity of change </li></ul><ul><ul><li>Quicker releases mean more stability and security </li></ul></ul><ul><li>Lack of product roadmap </li></ul><ul><ul><li>Progress is transparent </li></ul></ul><ul><ul><li>Some projects have roadmap </li></ul></ul><ul><li>Licensing caveats </li></ul><ul><ul><li>Must be considered </li></ul></ul>
  13. 13. Open Source Java application stack Business Data Integration Presentation Client Software Building Blocks Software Servers Operating Systems Mozilla Velocity WebWork Spring Framework Castor SiteMesh Turbine Apache Commons, OSCore, Log4J SWT iBATIS Custom Software Hardware Network Linux, BSD JDOM Hibernate Axis PostgreSQL MySQL MaxDB OpenAdaptor OpenJMS Tomcat Geronimo Apache Web Server JBoss
  14. 14. OSS evaluation and selection <ul><li>Find a reputable open source solution that fulfils your </li></ul><ul><ul><li>immediate functional needs </li></ul></ul><ul><ul><li>likely non-functional needs (scalability, reliability, etc.) </li></ul></ul><ul><ul><li>basic legal needs: will you be permitted to use, modify, and distribute? </li></ul></ul><ul><li>Look under the hood </li></ul><ul><ul><li>Join mailing lists and learn what's going on; this is the usual support channel </li></ul></ul><ul><ul><li>Review the documentation and possibly the source code </li></ul></ul><ul><li>When considering replacing commercial products </li></ul><ul><ul><li>Evaluate a shortlist of open source alternatives </li></ul></ul><ul><ul><li>Measure the cost of change (existing contractual commitments, skills gaps, implementation costs, etc.) </li></ul></ul>
  15. 15. OSS adoption models <ul><li>Use OSS at build-time only </li></ul><ul><ul><li>Development team uses OSS tools for testing, building, integration to support development process </li></ul></ul><ul><ul><li>Production system does not contain any OSS </li></ul></ul><ul><li>Use OSS at build-time and run-time </li></ul><ul><ul><li>Application is built with OSS building blocks </li></ul></ul><ul><ul><li>Deployed on OSS application server / operating system </li></ul></ul><ul><ul><li>Data stored in OSS database </li></ul></ul><ul><li>Create new OSS project (build-time or run-time) </li></ul><ul><ul><li>Reusable tools or building blocks developed in-house are open sourced </li></ul></ul>
  16. 16. OSS adopters <ul><li>Companies of all sizes adopt OSS to </li></ul><ul><ul><li>avoid vendor lock-in </li></ul></ul><ul><ul><li>cut license costs </li></ul></ul><ul><ul><li>get access to technology that may not be available commercially </li></ul></ul><ul><li>Fortune 100 companies adopt OSS for additional reasons: </li></ul><ul><ul><li>Prefer a model in which they can assert influence on the development of a product </li></ul></ul><ul><ul><li>Benefit from sharing non-critical software </li></ul></ul><ul><li>Every company I have worked in over the last 3 years used Open Source Software in one form or another. </li></ul>
  17. 17. Thank You Erik Doernenburg [email_address]