1 Understanding Free/Open Source Software Development Practices Walt Scacchi Institute for Software...

39
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 [email protected] 23 November 2004 http://www.ics.uci.edu/~wscacchi/Presentations/COSST/ Practices.ppt

Transcript of 1 Understanding Free/Open Source Software Development Practices Walt Scacchi Institute for Software...

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

1

Understanding Free/Open Source Software

Development Practices

Walt ScacchiInstitute for Software Research

School of Information and Computer ScienceUniversity of California, Irvine

Irvine, CA 92697-3425 [email protected]

23 November 2004

http://www.ics.uci.edu/~wscacchi/Presentations/COSST/Practices.ppt

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

2

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

3

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

4

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

5

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

6

Overview

• Background

• Research methodology

• Free/Open source processes and practices

• Implications

• Conclusions

• New projects

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

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

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

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.

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

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.

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

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

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

11

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

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

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

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

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

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.

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

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

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

16

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

17

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

18

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

19

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

20

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

21

Retrospectiverequirementsspecification

example

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

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

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

23

Concurrentversion

system (CVS) for coordinating

source codeupdates

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

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.

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

25

Revitalizinglegacy

applicationsvia

open source

example

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

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).

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

27(images from A.J. Kim, Community Building on the Web, 2000)

A pyramid meritocracy and role hierarchy for F/OSSD

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

28

Virtual project

managementexample

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

29

Exampleof

F/OSS developmentpatterns that

encourage havingfun and getting

a new job

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

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

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

31

Example of F/OSS

technology transferthat enabled

creation of newkind of application(e.g., online virtual

dancing)

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

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

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

33

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

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)

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

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.

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

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)

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

37

Open sourcesoftware research

Web site atUCI

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

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.

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

39

References see http://www.ics.uci.edu/~wscacchi

• W. Scacchi, Understanding the Requirements for Developing Open Source Software, IEE Proceedings--Software, 149(1), 24-39, 2002.

• W. Scacchi, Open EC/B: A Case Study in Electronic Commerce and Open Source Software Development, Final Report, July 2002.

• W. Scacchi, Free/Open Source Software Development Practices in the Computer Game Community, IEEE Software, Special Issue on Open Source Software, (to appear, 2004).

• 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.