Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Understanding Free/Open Source Software Development Practices Walt Scacchi Institute for Software Research School of Information and Computer Science.

Similar presentations


Presentation on theme: "1 Understanding Free/Open Source Software Development Practices Walt Scacchi Institute for Software Research School of Information and Computer Science."— Presentation transcript:

1 1 Understanding Free/Open Source Software Development Practices Walt Scacchi Institute for Software Research School of Information and Computer Science University of California, Irvine Irvine, CA 92697-3425 Wscacchi@ics.uci.edu 23 November 2004 http://www.ics.uci.edu/~wscacchi/Presentations/COSST/Practices.ppt

2 2

3 3

4 4

5 5

6 6 Overview Background Research methodology Free/Open source processes and practices Implications Conclusions New projects

7 7 What is free/open source software development? Free (as in “freedom”) vs. open source –Freedom to access, browse/view, study, modify and redistribute the source code –Free is always open, but open is not always free F/OSSD is not “software engineering” –Different: F/OSSD can be faster, better, and cheaper than SE F/OSSD involves more software development tools, Web resources, and personal computing resources

8 8 Who is investing in OSSD? Large corporations/enterprises: –IBM-Eclipse, Sun-NetBeans and OpenOffice, HP- Gelato, Apple-Darwin, Microsoft Research-Rotor, etc. –Barclays Global Investors, DKW, Merrill Lynch, etc. –DoD, DoE, NSF, NIH, NASA, etc. –MIT, Stanford, CMU, UC, UMichigan, etc. Mid-size corporations: –RedHat, Novell, Borland Small (start-up) companies: –ActiveState, Collab.Net, Jabber, Ximian, JBoss, Compiere, etc.

9 9 Research methodology Prior empirical (case) studies of Open Source Software Development (OSSD) 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.

10 10 Research methodology Individual case studies: significant details, but limited (and premature) generalization, little/no comparative analysis Few studies that examine multiple OSSD projects in multiple domains –Such studies would offer higher degree of comparative analyses and generalization of results

11 11

12 12 Research methodology Comparative case studies –Multiple open software development projects Within and across multiple communities Qualitative (“grounded theory”) techniques Analyzing and modeling –development processes –work practices and roles –development artifacts and tools –community structures and process dynamics

13 13 Sample practices for F/OSSD Requirements and design Configuration management and work coordination Maintenance/Evolution Project management/career development Software technology transfer and licensing

14 14 F/OSS Processes for Requirements or Design F/OSS Requirements/Designs –not explicit –not formal F/OSS Requirements/Designs are embedded within “informalisms” –Example OSS informalisms to follow (as screenshot displays) F/OSS Requirements/Design processes are different from their SE counterparts.

15 15 SE vs. F/OSS processes for Requirements Elicitation Analysis Specification and modeling Validation Communicating and managing Post-hoc assertion Reading, sense- making, accountability Continually emerging webs of discourse Condensing and hardening discourse Global access to discourse

16 16

17 17

18 18

19 19

20 20

21 21 Retrospective requirements specification example

22 22 Configuration management and work coordination Use CM to coordinate and control who gets to update what part of the system/online artifacts –Many F/OSSD projects use CVS (single centralized code repository with update locks) and frequent releases (daily releases on active projects) –Linux Kernel: BitKeeper (multiple parallel builds and release repositories) –Collab.Net and Tigris.org: Subversion (CVS++) –Apache: Single major release, with frequent “patch” releases (e.g., “A patchy server”) –GNU arch seeks to develop Free CM unification

23 23 Concurrent version system (CVS) for coordinating source code updates

24 24 Evolutionary redevelopment, reinvention, and redistribution Overall evolutionary dynamic of F/OSSD is reinvention –Reinvention enables continuous improvement F/OSS evolve through minor mutations –Expressed, recombined, redistributed via incremental releases F/OSS systems co-evolve with their development community –Success of one depends on the success of the other Closed legacy systems may be revitalized via opening and redistribution of their source –When enthusiastic user-developers want their cultural experience with such systems to be maintained.

25 25 Revitalizing legacy applications via open source example

26 26 Project management and career development F/OSSD projects self-organize as a pyramid meritocracy via virtual project management –Meritocracies embrace incremental mutations over radical innovations –VPM requires people to act in leadership roles based on skill, availability, and belief in project community F/OSS developers want to learn about new stuff (tools, techniques, skills, etc.), have fun buildin g software, exercise their technical skill, try out new kinds of systems to develop, and/or interconnect multiple F/OSSD projects (freedom of choice and expression).

27 27 (images from A.J. Kim, Community Building on the Web, 2000) A pyramid meritocracy and role hierarchy for F/OSSD

28 28 Virtual project management example

29 29 Example of F/OSS development patterns that encourage having fun and getting a new job

30 30 Software technology transfer and licensing F/OSS technology transfer from existing Web sites is a community and team building process –Not (yet) an engineering process –Enables unanticipated applications and uses –Enables F/OSSD to persist without centrally planned and managed corporate software development centers

31 31 Example of F/OSS technology transfer that enabled creation of new kind of application (e.g., online virtual dancing)

32 32 Free/OSS licenses Reiterate and institutionalize F/OSS culture (values, norms, and beliefs) –GNU Public License (GPL) for free software –More than 40 other open source licenses (http://opensource.org) –“Creative Commons” Project at Stanford Law School developing public license framework

33 33

34 34 Implications F/OSSD is a community building process –not just a technical development process –F/OSS peer review creates a community of peers F/OSSD processes often iterate daily versus infrequent singular (milestone) Software Life Cycle Engineering events –F/OSSD: frequent, rapid cycle time (easier to improve) vs. –SLC: infrequent, slow cycle time (harder to improve)

35 35 Conclusions Developing F/OSS is different than software engineering –not better, not worse, but different and new –more social, more accessible, more convivial F/OSS systems don’t need and probably won’t benefit from classic software engineering.

36 36 New projects Free/Open source science learning games (Discovery Science Center) F/OSSD+CSCW+Games => Computer- Supported Cooperative Organizational Learning Environments (CSCOLE -- Naval Postgraduate School and others) OSSD+Games+Grid Computing => Game Grids (UCGameLab.net, Cal(IT) 2, SDSC, SUN, Butterfly.net, DIP-Daegu City)

37 37 Open source software research Web site at UCI

38 38 Acknowledgements Project collaborators: –Mark Ackerman, UMichigan, Ann Arbor –Les Gasser, UIllinois, Urbana-Champaign –John Noll, Santa Clara University –Margaret Ellliot, Chris Jensen, UCI-ISR –Julia Watson, The Ohio State University –And others ar ISR Funding support: –National Science Foundation: #0083075, #0205679, #0205724, and #-#0350754. –No endorsement implied.

39 39 References see http://www.ics.uci.edu/~wscacchihttp://www.ics.uci.edu/~wscacchi W. Scacchi, Understanding the Requirements for Developing Open Source Software, IEE Proceedings--Software, 149(1), 24- 39, 2002.Understanding the Requirements for Developing Open Source Software W. Scacchi, Open EC/B: A Case Study in Electronic Commerce and Open Source Software Development, Final Report, July 2002.Open EC/B: A Case Study in Electronic Commerce and Open Source Software Development W. Scacchi, Free/Open Source Software Development Practices in the Computer Game Community, IEEE Software, Special Issue on Open Source Software, (to appear, 2004).Free/Open Source Software Development Practices in the Computer Game Community W. Scacchi, Understanding Free/Open Source Software Evolution: Applying, Breaking and Rethinking the Laws of Software Evolution, revised version to appear in N.H. Madhavji, M.M. Lehman, J.F. Ramil and D. Perry (eds.), Software Evolution, John Wiley and Sons Inc, New York, 2004.Understanding Free/Open Source Software Evolution: Applying, Breaking and Rethinking the Laws of Software Evolution


Download ppt "1 Understanding Free/Open Source Software Development Practices Walt Scacchi Institute for Software Research School of Information and Computer Science."

Similar presentations


Ads by Google