traditional commercial software development open source
play

Traditional Commercial Software Development Open Source Development - PowerPoint PPT Presentation

Traditional Commercial Software Development Open Source Development Producing consumer-oriented software is often done in much the same way as for tangible mass-produced Dr. James A. Bednar products, such as furniture or cars. E.g., a company:


  1. Traditional Commercial Software Development Open Source Development Producing consumer-oriented software is often done in much the same way as for tangible mass-produced Dr. James A. Bednar products, such as furniture or cars. E.g., a company: jbednar@inf.ed.ac.uk • Designs the product http://homepages.inf.ed.ac.uk/jbednar • Produces copies of it • Provides a copy to any consumer willing to pay for it Most software products with widespread name recognition, e.g. from Microsoft, fit into this model. SAPM Spring 2012: Open Source 1 SAPM Spring 2012: Open Source 2 Traditional Assumptions Intangible Goods Software and other intangible goods like music and text Implicit assumptions applying to tangible goods like furniture: can be duplicated for essentially zero cost, by consumers 1. Making each copy costs money, and so it makes and companies alike, and so any restrictions on copying sense for customers to pay for each copy must be enforced artificially. 2. Customers and other companies cannot easily make Software costs are for development and for support, their own copies, so they have an incentive to independent of the number of copies produced, and so purchase from the company are not well-matched to per-copy revenue models. 3. Development costs can most efficiently be recouped Unlike tangible goods, software can be modified by users (and profits made) by charging per-copy fees to meet their needs better and then redistributed, without 4. It’s reasonable to expect improvements to the product needing the original company to produce the result. to come only from the company SAPM Spring 2012: Open Source 3 SAPM Spring 2012: Open Source 4

  2. Free/Libre/Open Source Software Open Source vs. Free Software The Open Source Software (OSS) and Free Software Roughly, the difference between the two main movements is: movements are focused on how software can be • Free Software is based on a firm principle that all distributed in a way more suited to intangible goods, with: software should be free (see gnu.org) • Free redistribution: both free of cost (free beer) and • Open Source focuses on the practical, free of restriction (free speech, aka “libre”) business-friendly advantages to having freely • Freely available source code: to allow fixes and distributable and modifiable code (see opensource.org) changes Projects in either category can be understood as • Freedom to redistribute modified versions examples of highly distributed large-scale software FLOSS is a shorthand for all of these aspects. development methodologies. SAPM Spring 2012: Open Source 5 SAPM Spring 2012: Open Source 6 Licences Advantages of OSS: For Users Licences are highly significant here: • No restrictions on how software can be used: copying to new machines, sharing with co-workers, porting to • GPL is viral: affects derivative works, including new platforms, etc. packages using libraries • Can trust the software to do what it says, not to have • Many producers prefer a weaker licence which allows spyware, etc. – because source code is visible companies to link (for example) machine-generated parser source. Hence even the FSF have LGPL. • Can count on their data created by the program being readable in the long, long term, on future platforms, • Dual licensing: many products (e.g. Berkeley DB) are although they themselves may have to maintain it dual licensed, so use in commercial software faces the user with a choice between going open source • Because development is driven by users, features are themselves, or paying a commercial licence. likely to match what (those) users actually want SAPM Spring 2012: Open Source 7 SAPM Spring 2012: Open Source 8

  3. Advantages of OSS: Disadvantages of OSS For developers • Difficult to make money from OSS • No need to worry about piracy (but can sell support, customization, services) • Users act as legions of beta-testers: • Less interesting tasks tend to get less work, Linus’ Law = given enough eyeballs, all bugs are shallow e.g. documentation, newbie usability • Security holes can be found quickly, tested rigorously • Hard for upper management to control (but is that necessarily a problem?) • Huge number of users working in parallel can help make development faster (but can also be overwhelming) • Difficult to coordinate corporate and user efforts • Companies can pool resources on a common good • Users don’t have anyone to hold accountable (e.g. Linux, Java, GCC, X.org, Android) (but in reality they can never do that anyway) SAPM Spring 2012: Open Source 9 SAPM Spring 2012: Open Source 10 Cathedral vs. Bazaar OSS Success Stories Major SW development methodologies (Raymond 2001): • The Internet/WWW (Microsoft did not invent it!) Cathedral: Master plan controlled by one person, all • Apache — the most popular web server in the world implementers follow it. Suited to small projects, large • Linux and *BSD *NIXes projects run by one organization, and/or projects with • Sun/Oracle Open Office – released to encourage only one customer. purchase of hardware Bazaar: No master plan. Many users contribute ideas, • SourceForge (more than 230,000 hosted OSS changes, features. Often the principal maintainers’ projects as of 2/2009) role is just to make sense of it all. • Mozilla/Firefox, eventually Successful OSS projects of both types exist, but bazaar is • Google Chrome particularly suited to OSS. • GCC, Emacs, GNOME, KDE, Python, Eclipse, etc., etc. SAPM Spring 2012: Open Source 11 SAPM Spring 2012: Open Source 12

  4. Linux Linux Development Environment • Implementation of a UNIX-like OS kernel Leader • Main competition: MS Windows Top−level Developers • Final code is controlled completely by Linus Torvalds who operates a “benevolent dictatorship” Sub−developers • For years, used no VC tools — patches submitted and controlled by Linus; then used Bitkeeper and now git KEY Weakly Connected Other Developers • Two versions of the code-base are maintained at the Strongly Connected same time: stable and development branches • Developers synchronise by e-mail, mailing lists • 2009: 75% of patches came from paid developers SAPM Spring 2012: Open Source 13 SAPM Spring 2012: Open Source 14 Apache Apache Development Environment • Extremely successful web server product (2/2009: 49%) • Main competition: Microsoft (2/2009: 29% share) Release Manager Vote Coordinator • Development coordinated by team of core developers • No central leader Core Developers • All major decisions voted upon by the core KEY developers: 3+, 0- required Resource Passing • Selection of core developers is a form of meritocracy Other Developers Voting • Code revision is controlled by Subversion (formerly CVS) • Bug tracking via BugZilla (formerly GNATS) • Developers synchronise via e-mail, mailing lists, web, and newsgroups SAPM Spring 2012: Open Source 15 SAPM Spring 2012: Open Source 16

  5. Mozilla Firefox/Thunderbird Mozilla Development Environment • OSS version of Netscape Navigator/Messenger Mozilla Organisation • Main competition: MS Internet Explorer/Outlook • Difficult transition to OSS; years before stable release Arbiter Release Manager • Didn’t seem to help Netscape the company survive • Development is co-ordinated by the Mozilla Module Owners Organization (MO), (see www.mozilla.org/mission.html) • MO operates a “benevolent dictatorship” like Linux Usurper • Each module has an owner, designated by MO, but Peers owner can be usurped • Code revision controlled by CVS, bug-tracking by Bugzilla SAPM Spring 2012: Open Source 17 SAPM Spring 2012: Open Source 18 GCC Debian organigram • GNU Compiler Collection (C/C++ and related compilers) • Started in 1984, released yearly or so since 1987 • Part of Richard Stallman’s GNU project • Experimental branch forked in 1997 as EGCS, later usurping to become official maintainers • Guided by GCC Steering Committee • Many ports are funded or supplied by hardware industry • Large test suite, nightly regression testing, builds, snapshots • Code revision by Subversion (formerly CVS) Things are even more complicated when you’re • Bug-tracking by Bugzilla an “aggregator” (Krafft 2005) SAPM Spring 2012: Open Source 19 SAPM Spring 2012: Open Source 20

  6. Summary References • Software is not like tangible goods Krafft, M. F . (2005). The Debian System — Concepts and Techniques . Open Source Press. • Difficult to devise appropriate revenue models Mockus, A., Fielding, R., & Herbsleb, J. D. (2002). Two case studies • Open Source projects are examples of highly of open source software development: Apache and Mozilla. ACM Transactions on Software Engineering and Methodology , 11 (3), distributed, parallel, user-driven development 309–346. • Both cathedral, bazaar styles can work Raymond, E. S. (2001). The Cathedral and the Bazaar: Musings on Required reading: Linux and Open Source by an Accidental Revolutionary . O’Reilly. http://www.catb.org/˜esr/writings/cathedral-bazaar/ Recommended: Mockus et al. 2002 SAPM Spring 2012: Open Source 21 SAPM Spring 2012: Open Source 21

Recommend


More recommend