1 / 59

Free/Open Source Software Development: Recent Research Results and Emerging Opportunities

Free/Open Source Software Development: Recent Research Results and Emerging Opportunities. Walt Scacchi Institute for Software Research University of California, Irvine ESEC-FSE07 State of the Art Seminar 8 September 2007 http://www.ics.uci.edu/~wscacchi/Presentations/ESEC-FSE07/. Overview.

cerelia
Download Presentation

Free/Open Source Software Development: Recent Research Results and Emerging Opportunities

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Free/Open Source Software Development: Recent Research Results and Emerging Opportunities Walt Scacchi Institute for Software Research University of California, Irvine ESEC-FSE07 State of the Art Seminar 8 September 2007 http://www.ics.uci.edu/~wscacchi/Presentations/ESEC-FSE07/

  2. Institute for Software Research, UCI Overview • Background • Individual participation • Resources supporting activities • Cooperation, coordination and control • Alliances and social networking across projects • FOSS as multi-project software ecosystems • FOSS as social movement • Discussion and limitations • Research opportunities

  3. Institute for Software Research, UCI Background

  4. Institute for Software Research, UCI What is free/open source software development? • Free (as in “freedom” or liberty) vs. open source • Freedom to access, browse/view, study, modify and redistribute the source code • Free is always open, but open source is not always free • FOSSD is not “software engineering” • Different: FOSSD can be faster, better, and cheaper than SE in some circumstances • FOSSD teams use 10-50 OSSD tools and communications applications to support their development work

  5. Institute for Software Research, UCI SourceForge.net info Sept 2007

  6. Institute for Software Research, UCI FOSSD Project Characteristics • Operational code early and often--actively improved and continuously adapted • Short-cycle (FOSS) vs. long-cycle (SLC) time processes • Post-facto software system requirements and design • FOSSD has its own “-ilities” which differ from those for SE • Caution: the vast majority (>90%) of FOSSD projects fail to grow or to produce a software release.

  7. Institute for Software Research, UCI FOSSD Project Characteristics • FOSS developers are typically users of what they build, while FOSS users (~1%) are also FOSS developers • Requires “critical mass” of contributors and FOSS components connected through socio-technical interaction networks • FOSSD projects can emerge/evolve via bricolage • Unanticipated architectural (de)compositions • Multi-project component integrations

  8. Institute for Software Research, UCI OSS Development Models • Free Software (GPL) • Open Source (BSD/MIT, Mozilla, Apache) • Corporate Source (Hewlett-Packard) • Consortium/Alliance (OSDL, SugarCRM) • Corporate-Sponsored (IBM-Eclipse, Sun-Netbeans, Sun-OpenOffice, HP-Gelato) • Community Source (Sakai, Westwood) ---------------------------------------------------------- • Shared Source with Non-Disclosure (Microsoft) • Open Systems (open APIs, closed components)

  9. Institute for Software Research, UCI OSS Business Revenue Streams • Consulting and Migration services • On-site custom development and support • Subscription support services • Ongoing maintenance services 24/7 • Email or phone help desk • Indemnification • Access to Operations Network • Training services • Web-based how-to’s, tutorials (also retail books) • On-site customer training (Direct or via Certified Partners) • Services sold on a direct basis (e.g., in North America and Europe), and via Certified Partners (globally)

  10. Institute for Software Research, UCI Research methodology • Early empirical case studies of FOSSD Projects • Mockus, Fielding, Herbsleb, 2000, 2002, Apache httpd server • Reis and Fortes, 2002, Mozilla Web browser • Schach et al., 2002; Holt et al., 2000, Linux Kernel • Koch and Schneider 2001; German 2002, GNOME User Interface • Jorgensen, 2001, FreeBSD operating system • Garg et al., 2002, OSSD (“progressive open source”) within HP • Jensen and Scacchi, 2003-04, NetBeans IDE • etc.

  11. Institute for Software Research, UCI Research methodology • Individual case studies • significant details, contextualization, and nuance • little/no comparative analysis • limited (and premature) generalization • Few studies that examine multipleOSSD projects in multiple domains • Such studies offer higher degree of comparative analyses and generalization of results • Scacchi 2002: requirements processes in FOSSD projects for (a) Internet infrastructure (b) networked computer games, (c) astrophysics, and (d) academic software engineering

  12. Institute for Software Research, UCI Research methodology • Comparative (case) studies • Multiple open software development projects • Within and across multiple communities • Qualitative techniques • Analyzing and modeling • development processes • work practices and roles • development artifacts and tools • community structures and process dynamics

  13. Institute for Software Research, UCI Individual participation

  14. Institute for Software Research, UCI Individual participation in FOSSD projects: motives and consequences • FOSS developers want to: • learn about new tools, techniques, skills, etc. • have fun building software • exercise their technical skill • try out new kinds of systems to develop • interconnect multiple FOSSD projects • FOSS developers frequently: • build trust and reputation with one another • achieve “geek fame” (for project leaders) • spend more time reading online documents and communicating with one another than writing code

  15. Institute for Software Research, UCI Resources supporting FOSS activities

  16. Institute for Software Research, UCI FOSSD resources/capabilities • Personal software development resources • Beliefs supporting FOSSD • FOSSD informalisms • Skilled, self-organizing developers • Discretionary time and effort • Trust and social accountability

  17. Institute for Software Research, UCI Personal software development resources • Sustained commitment of personal resources helps subsidize FOSSD projects • Personal computer(s) • Internet access • Hosting personal Web site • Hosting project repositories • Personal choice of software development tools or tool set

  18. Institute for Software Research, UCI Beliefs supporting FOSSD • Freedom of expression • What to develop or work on • How to develop it • What tools to employ • Freedom of choice • When to release work products • Expressing what can be said to whom with or without reservation

  19. Institute for Software Research, UCI FOSSD Informalisms • Software informalisms--artifacts participants use to describe, proscribe, or prescribe what’s happening in a project • Informalisms capture detailed rationale and debates for what changes were made in particular development activities, artifacts, or source code files

  20. Institute for Software Research, UCI

  21. Institute for Software Research, UCI FOSSD informalisms

  22. Institute for Software Research, UCI Skilled, self-organizing developers • Successfully developing an open architecture system requires prior experience • Organizing project work as a virtual organization • Skill-based meritocracy • Informal rules of governance and control, but rules are readily recognized by participants • Control incorporated into software and informalisms • How, where, and when to access data via APIs, UIs, and other architectural features

  23. Institute for Software Research, UCI Discretionary time and effort • Self-determination • work on what’s interesting • Peer recognition • becoming a social gateway • Project affiliation or identification • Self-promotion • How to realize career advancement • Belief in inherent value of FOSS

  24. Institute for Software Research, UCI Trust and social accountability • Social capital accrues via: • Assuming ownership of a FOSS module • Voting on approval of other’s actions • Shared peer reviewing • Contributing “gifts” that are reusable • Accrued social capital is used to mitigate conflicts and accommodate resolutions • Sustained social capital enables social networking externalities

  25. Institute for Software Research, UCI Cooperation, coordination, and control in FOSSD projects

  26. Institute for Software Research, UCI Software version control • Enables stabilization and synchronization of dispersed, invisible FOSSD work • SVC tools (CVS, SVN, Git, etc.) used as: • Central mechanism coordinating development • Online venue for mediating control over what changes will be accommodated • Gentle but sufficient social control mechanism that constrains overall project complexity

  27. Institute for Software Research, UCI A meritocractic role hierarchy and role migration paths for FOSSD (images from A.J. Kim, Community Building on the Web, 2000)

  28. Institute for Software Research, UCI Implicit project management • FOSSD projects self-organize as a meritocractic role-hierarchy and virtual project management • Meritocracies embrace incremental innovations over radical innovations • VPM requires people to act in leadership roles based on skill, availability, and belief in project community • Reliance on evolving web of software informalism content constrains collective action within FOSSD project

  29. Institute for Software Research, UCI Alliances, social networking, and community development

  30. Institute for Software Research, UCI Sample OSS DevelopmentGroup Work, Utretch 2006

  31. Institute for Software Research, UCI FOSS Social Networking across projects Source: G. Madey, et al., 2005

  32. Institute for Software Research, UCI Community networking • Becoming a central node in a network of FOSS developers increases social capital • Linchpin developers as social gateways • Sharing beliefs, tools, artifacts enables shared experience, camaraderie, collective learning • Multi-project clustering enables small projects to merge into sustainable projects • Intellectual property regime fosters alignment and alliance with other projects and organizations

  33. Institute for Software Research, UCI FOSS as multi-project software ecosystems

  34. Institute for Software Research, UCI Multi-project software ecosystem • Mutually dependent FOSS development and evolution propagate architectural styles, dependencies, and vulnerabilities • Architectural bricolage arises when autonomous FOSSD projects, artifacts, tools, and systems co-mingle or merge • Enables discontinuous or exponential growth of FOSS source code, functionality, complexity, contributions

  35. Institute for Software Research, UCI

  36. Institute for Software Research, UCI Evolutionary redevelopment, reinvention, and redistribution • Overall evolutionary dynamic of many FOSSD projects is reinvention and redevelopment • Reinvention enables continuous improvement and collective learning • FOSS evolve through minor mutations • Expressed, recombined, redistributed via incremental releases • FOSS systems co-evolve with their development community • Success of one depends on the success of the other

  37. Institute for Software Research, UCI FOSS as social movement

  38. Institute for Software Research, UCI FOSS as social movement • Free/OSS property regimes and licenses • Reiterate and institutionalize FOSS culture (values, norms, and beliefs) • GNU Public License (GPL) for free software • More than 50 other open source licenses (http://opensource.org) • “Creative Commons” Project at Stanford Law School developing public license framework • FOSS spanning multiple disciplines and institutions

  39. Institute for Software Research, UCI SourceForge.net

  40. Institute for Software Research, UCI Google Summer of Code 2007

  41. Institute for Software Research, UCI

  42. Institute for Software Research, UCI Large Hadron Collider Computing Grid, Sept 2007

  43. Institute for Software Research, UCI DoD Largest Red Hat customer

  44. Institute for Software Research, UCI FOSS as social movement • Emerging as a global-scale socio-technical movement that increasingly permeates society at an institutional, governmental, and international level in ways no prior software development regime has previously achieving. • Unlikely any company/nation can inhibit FOSS in the near-term

  45. Institute for Software Research, UCI Discussion and limitations

  46. Institute for Software Research, UCI Defining characteristics of FOSSD projects • Public availability of project data and artifacts • Collecting FOSSD process data may be more cost effective compared to proprietary SE projects • Prediction: growing share of empirical SE research will be performed using FOSS data

  47. Institute for Software Research, UCI FOSSD research limitations • Individual participation • Some form of reciprocity and intrinsic, self-serving motivation is necessary • Cooperation, coordination, and control • Negotiation and conflict management are part of the cost FOSS developers incur in order to have their believes fulfilled • Time, effort, and attention are spent negotiating socio-technical dependencies

  48. Institute for Software Research, UCI FOSSD research limitations • Alliances and community development • FOSSD projects give rise to new kinds of requirements for community building, community software, and community information sharing systems • Alliances and community require attention to sustain their effectiveness, and to prevent them from becoming self-serving and bureaucratic

  49. Institute for Software Research, UCI FOSSD research limitations • Empirical studies of FOSSD are expanding the scope of what we can observe, discover, analyze, and learn about large software systems. • Mining software repositories • Multi-modal modeling and analysis of socio-technical processes and networks found in sustained FOSSD projects

  50. Institute for Software Research, UCI Research opportunities

More Related