mozilla

Uploaded from authorPOINTLite
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Lessons from Open Source Software Development: The Mozilla Experience: 

Lessons from Open Source Software Development: The Mozilla Experience Frank Hecker frank@collab.net +1-301-953-2898

Mozilla in a Nutshell: 

Mozilla in a Nutshell Project began in 1998 with Netscape decision to release browser source code Cross-platform open source web browser, email/news client, HTML editor, etc. ~2 million lines of source code ~60 core developers, >1,000 contributors from Netscape, IBM, Sun, Red Hat, general public

Mozilla Project Characteristics: 

Mozilla Project Characteristics Corporate-initiated and funded project core people are full-time paid employees Graphical (GUI) end-user application high complexity stringent goals for performance, usability, etc. Many contributors are not developers do bug reporting, formal testing, UI design, etc.

Aspects of Mozilla project: 

Aspects of Mozilla project Technical: architecture, code, documentation Procedural: bug reporting, code review, commit access approval, module ownership Infrastructure: code/data repository, bug system Financial/political: funding, project governance, institutional influence and oversight Legal: licensing, IP ownership, etc. Social: peer recognition, meetings and conferences, contributor recruitment, project “marketing”

Success factors: Technical: 

Success factors: Technical Ship something, get feedback on it, repeat Design for add-ons and customizability allows more people to contribute and add value Mozilla examples: MathML, language localization Make underlying architecture general enough to allow unanticipated uses and extensions

Success factors: Procedural: 

Success factors: Procedural Making processes work is everyone’s work less distinction between “managers,” “workers” Must approach from the viewpoint of a person trying to get work done on limited time budget “just enough process as needed, but no more” makes participation in project easier for part-time contributors and volunteer contributors

Success factors: Infrastructure: 

Success factors: Infrastructure Key components version control (code/data/document repository) issue tracking discussion forums and web sites Use technology that is familiar to contributors Ensure it’s widely available and accessible take into account people on different platforms, low-speed vs. high speed networks, etc.

Success factors: Financial/Political: 

Success factors: Financial/Political Funders should exercise oversight, influence goals/policies, but not micro-manage project Align authority with responsibility wherever possible, decisions made by those who do the work and are held accountable for results “technical meritocracy” Acknowledge institutional interests, but also promote loyalty to project, other contributors

Success factors: Legal: 

Success factors: Legal Keep licensing arrangements simple complexity imposes “transaction costs” on people using code and data or contributing to project Decide up-front on IP ownership policies Use formal agreements where legal risk exists e.g., terms of use for write access to repository, grants of permission to include material

Success factors: Social: 

Success factors: Social Promote inclusion of all actual/potential contributors e.g., move off-line discussions on-line Specialize roles to increase opportunities developers, testers, UI designer, technical writers, release engineers, domain experts Build “pyramid of participation” casual observer  occasional contributor  core contributor  “module owner”  “board member”

Summary: 

Summary Mozilla project initiated a new phase in free software/open source development Has had major influence on “next generation” of collaborative software development projects rich source of “lessons learned” for other projects new technology for supporting distributed collaborative software development (e.g., issue tracking) instructive approaches to all aspects of running a large and complex public software development project