OHJ-1860 Software Systems Seminar:
Global Software Development Global Software Development Open-source software development
11.12.2007
By Antti Rasmus
Outline
• Open-source software (OSS) development
• Motivation: IDC study on open source in global software
• Case GNOME
• Architecture
• Architecture
• Organization
• Communication
• Case Apache
Open-Source Software
• Open-source software (OSS) is built by potentially large number of voluntary people
• “a great babbling bazaar of differing agendas and approaches”
–E. Raymond [1]
• There are supporting companies and paid developers as well
• Extreme case of globally distributed development
• Developer roles are not clearly defined or tasks aren't assigned
• Developers in arbitrary locations - rarely or never meet face to face
• Communication by means of mailing lists, forums, IRC, IM
• Lacks coordination: no plans, system-level design, schedules or defined processes? [2]
• However, software development management systems
• GNU Savannah, SourceForge, BountySource
• continues..
Open-Source Software
• Extreme case of globally distributed development
• Unknown people
• Multiple cultures and languages
• “Because open source works in a distributed environment, it presents an opportunity for developing countries to participate in frontier innovation” [3]
in frontier innovation” [3]
• Political differences
• Competition between developers
• Volunteers and company paid developers
• Despite of the bazaar nature, still high quality software!
• Apache, Linux kernel, GCC, Mozilla, Perl, GNOME,...
• Open-source ideology works great in distributed environment
• However, challenge for companies to fully exploit
• Different drivers, processes, licenses => Isolate OSS! [4]
IDC study on open-source in GSD
• IDC is global market intelligence firm
• Open Source in Global Software: Market Impact, Disruption, and Business Models, July 2006 [5]
• Surveyed 5,000 developers in 116 countries
• Conclusions
• Conclusions
• OSS is “the most significant all-encompassing and long-term trend that the software industry has seen since the early
1980s."
• OSS "play a role in the life-cycle of every major software
category, and will fundamentally change the value proposition of packaged software for customers."
• OSS is being used by 71 percents of developers worldwide
• OSS is "in production" at 54 percent of the surveyed
developers' organizations
Case GNOME
• Based on GNOME, a case of open source global software development by Daniel German, 2003 [6]
• GNOME project was founded in 1996
• In 2003, 500 developers around the world, 2+ MLOCs
• Infrastructure
• Infrastructure
• GNU toolkit (gcc, make, emacs, etc.)
• CVS
• Bugzilla
• GNU Mailman
• Unix as development platform
Case GNOME - Requirement sources
• Vision:
• “GNOME should be completely free software”
• "free as in free speech" not "free as in free beer” -Free Software Foundation
• Reference applications:
• Reference applications:
• “GNOME should have most if not the same functionality as these reference applications”
• MS Excel, gv, Outlook, Lotus Notes
• Asserted requirements
• Requirements gathered from general discussion on mailing lists, not necessarily from particular requirement analysis
• A prototype
• New feature ideas are frequently proposed in a form of a
implemented prototypes. The rest decides whether to adapt it
or not
Case GNOME - Architecture
• Big project is divided into manageable modules
• Four main groups of modules
• Libraries (19 modules)
• Core applications (4)
• Applications (16)
• Applications (16)
• Other (several dozens)
• At least one maintainer per module
• Oversees the development
• Coordinates and integrates the contributions of other developers
• If a module grows too big, it is broken into submodules
• Evolution (mail client) is broken into more than 20 modules
• UI, mail libraries, filter, importers, documentation, translation,...
Case GNOME - Module maintainer
• Module maintainers serve the roles of leaders
• provide vision
• divide their module into tasks
• attract developers to the project
• keep the project together and prevent forking
• keep the project together and prevent forking
• The success of OSS project depends on the ability of its maintainers to divide it into parts which are small enough and independent, so that
• developers do not have to communicate
• developers' work has minimal impact to work of others
Case GNOME - The paid employees
• Several companies involved
• RedHat, Sun Microsystems, Ximian
• Paid employees are usually responsible for project design and coordination, testing, documentation and bug-fixing
bug-fixing
• Usually less attractive to volunteers
• Companies make sure that development continues at a steady pace
• “In the case of Evolution, the top 10 contributors (which account for almost 70% of the CVS commits) are all Ximian employees.”
• Volunteers still play very important role
• maintainers, contributors, bug hunters, documenters, beta testers, etc.
• internationalization is only done by volunteers in GNOME
Case GNOME - Foundation
• In 2000, the GNOME Foundation was instituted
• Four entities
• members (any contributor)
• board of directors (11 democratically selected people)
• advisory board (non-profit organizations and companies)
• advisory board (non-profit organizations and companies)
• executive director
• Committees
• consist of volunteer developers
• for organizing conference, web site updating, system administration of GNOME machines, maintaining the membership list of the Foundation, etc.
• Release teams
• schedules module releases
• keeps track overall development of the project
Case GNOME - Communication
• Developers are distributed around the world
• Mailing lists for different purposes
• end users, particular modules, announcements
• is where the decision making happens
• IRC
• IRC
• informal discussion without agenda
• Web sites
• lots of information for contributors
• GUADEC, the GNOME conference
• discussion, interaction and training
• GNOME summaries
• Posted to a mailing list in every two weeks
• news, most active modules and developers, numbers of bugs
Case Apache (in 2002)
• Apache is the most widely deployed web server [2]
• Almost 400 people contributed code
• CVS commits managed by Apache Group
• Apache Group started with 8 members in 1995
• In 2002, 25 members in AG
• In 2002, 25 members in AG
• used exclusively mailing lists to communicate, and a minimal voting system
• A bug reporting system and a newsgroup that anyone could use were lower priority communication channels
• One AG member volunteers to be a release manager
• identifies critical problems preventing the release
• coordinates fixes and declares a version stable
References
• [1]The Cathedral and the Bazaar
• E.S. Raymond, http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral- bazaar/
• [2] Two Case Studies of Open Source Software Development: Apache and Mozilla
• A. Mockus et al., ACM Transactions on Software Engineering and Methodology, Vol. 11, No. 3, July 2002, pp 309–346.
• [3] Open-Source Software Development and Distributed Innovation
• [3] Open-Source Software Development and Distributed Innovation
• B. Kogut, A. Metiu, Oxf Rev Econ Policy Vol. 17, No. 2, June 2001, pp. 248-264
• [4] Global software development
• R Granat, Software Platforms, Nokia, August 2007
• Online http://www.jyu.fi/it/laitokset/cs/en/infwest/global_swd
• [5] Open Source in Global Software: Market Impact, Disruption, and Business Models
• Anthony C. Picardi, et al., July 2006
• Summarized on Linuxdevices.com
• (http://www.linuxdevices.com/news/NS8982719739.html)
• [6] The GNOME project: a case study of open source, global software development, Daniel M. German