Understanding the Requirements for Open Source...
Transcript of Understanding the Requirements for Open Source...
![Page 1: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/1.jpg)
1
Understanding the Requirementsfor Developing and Designing
Open Source SoftwareWalt Scacchi
Institute for Software ResearchUniversity of California, Irvine
Irvine, CA [email protected]
ISR-NSF Workshop on Continuous Design of Open Source Software8 October 2003
http://www.ics.uci.edu/~wscacchi/Presentations/Workshop2003/OSS-Req-Design-Process
![Page 2: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/2.jpg)
2
Overview
• Research methodology• Open source processes for Requirements• Software development informalisms• Implications• Conclusions
![Page 3: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/3.jpg)
3
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
![Page 4: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/4.jpg)
4
Research methodology• Individual case studies: significant details,
but limited (and premature) generalization,little/no comparative analysis
• No studies that examine multiple OSSDprojects in multiple domains– Such studies would offer higher degree of
comparative analyses and generalization ofresults
![Page 5: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/5.jpg)
5
![Page 6: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/6.jpg)
6
Research methodology• Comparative case studies
– Multiple open software development projects• Within communities, 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 7: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/7.jpg)
7
OSS processes for Requirements• Post-hoc assertion of requirements+design
after implementation• Reading, sense-making, accountability• Continually emerging webs of discourse• Condensing and hardening discourse• Global access to this discourse
![Page 8: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/8.jpg)
8
OSS processes for Requirements/Design
• OSS Requirements/Designs are– not explicit– not based on engineering formalisms– products of socially constructed formalities
• OSS Requirements/Designs are embeddedwithin “informalisms”
• Example OSS informalisms follow
![Page 9: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/9.jpg)
9
![Page 10: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/10.jpg)
10
![Page 11: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/11.jpg)
11
![Page 12: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/12.jpg)
12
![Page 13: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/13.jpg)
13
![Page 14: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/14.jpg)
14
![Page 15: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/15.jpg)
15
Traditional vs. OSS processes forRequirements
• Elicitation• Analysis
• Specification andmodeling
• Validation
• Communicating andmanaging
• Post-hoc assertion• Reading, sense-
making, accountability• Continually emerging
webs of discourse• Condensing and
hardening discourse• Global access to
discourse
![Page 16: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/16.jpg)
16
Software Informalisms
• Community communications– Threaded discussion forums– Email (list servers)– Newsgroups– IRChat/Instant messages– Community digests (“Kernel Cousins”)
![Page 17: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/17.jpg)
17
Software Informalisms• Scenarios of Usage as linked Web pages
![Page 18: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/18.jpg)
18
Software Informalisms
• How-To guides, To-Do lists, FAQs• Traditional software user documentation
– Unix/Linux man pages• External publications
– trade articles– scholarly research papers– books (cf. O’Reilly Books)
![Page 19: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/19.jpg)
19
Software Informalisms
• Open Software Web Sites– Community Web sites– Community Software Web sites– Project Web sites– Source code Webs/Directories
![Page 20: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/20.jpg)
20
![Page 21: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/21.jpg)
21
![Page 22: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/22.jpg)
22
![Page 23: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/23.jpg)
23
Software Informalisms
• Software bug reports– Ad hoc report Web– Bugzilla (database tracking)
• Issue tracking– Issuezilla
![Page 24: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/24.jpg)
24
![Page 25: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/25.jpg)
25
Software Informalisms
• Software extension mechanisms– Inter-application scripting
• Csh, Perl, Python, Tcl, scripting• Pipelines (cf. CXCDS)
– Intra-application scripting (e.g., UnrealScript)– Plug-in architectures
• Apache server architecture
![Page 26: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/26.jpg)
26
Software Informalisms
• Free/OSS licenses and work practices –institutionalize F/OSS culture (values,norms, and beliefs)– GNU Public License (GPL)– and more than 35 others (http://opensource.org)– “Creative Commons” Project at Stanford Law
School developing public license framework
![Page 27: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/27.jpg)
27
![Page 28: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/28.jpg)
28
Implications
• Software informalisms are the media ofsoftware requirements/design processes
• Software informalisms are the subject ofsoftware requirements/design processes
• OSS requirements/design processes areimplied activities or capabilities
• (Re)reading, reviewing, and reinterpretinginformalisms is a prerequisite to writing OSS.
![Page 29: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/29.jpg)
29
Implications• Developing open software requirements and
designs is a community building process– not just a technical development process– OSS peer review creates a community of peers
• OSSD processes often iterate daily versusinfrequent singular (milestone) SLC events– frequent, rapid cycle time (easier to discover and
improve) vs.infrequent, slow cycle time (harderto discover and improve)
![Page 30: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/30.jpg)
30
Implications
• Determining the quality of OSSrequirements/designs:– not targeted to consistency, completeness,
correctness– instead focusing attention to community
building, freedom of expression, ease ofinformalism navigation (traceability), implicitvs. explicit informalism structuring
![Page 31: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/31.jpg)
31
Conclusions
• Developing OSS requirements/design isdifferent than requirements engineering andcurrent software design techniques– not better, not worse, but different and new– more social, more accessible, more convivial
• OSS systems don’t need and probablywon’t benefit from classic softwarerequirements/design engineering.
![Page 32: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/32.jpg)
32
Acknowledgements• Project collaborators:
– Mark Ackerman, UMichigan, Ann Arbor– Margaret Ellliot, Chris Jensen, UCI-ISR– Les Gasser, UIUC– John Noll, Santa Clara University– Julia Watson, The Ohio State University
• Funding support (no endorsement implied):– National Science Foundation, IIS#-0083075, ITR#-
#0205679, ITR#-0205724, and IIS#-0350754.
![Page 33: Understanding the Requirements for Open Source …isr.uci.edu/events/ContinuousDesign/UIUC/data/OSS-Req...1 Understanding the Requirements for Developing and Designing Open Source](https://reader033.fdocuments.in/reader033/viewer/2022050107/5f45ae8dfc427e59915140d2/html5/thumbnails/33.jpg)
33
References• M. Elliott and W. Scacchi, Free Software Development: Cooperation and
Conflict in A Virtual Organizational Culture, to appear in S. Koch (ed.),Free/Open Source Software Development, Idea Publishing, 2004.
• C. Jensen and W. Scacchi, Simulating an Automated Approach toDiscovery and Modeling of Open Source Software DevelopmentProcesses, Proc. ProSim'03 Workshop on Software Process Simulationand Modeling, Portland, OR May 2003.
• W. Scacchi, Understanding the Requirements for Developing OpenSource Software, IEE Proceedings--Software, 149(1), 24-39, 2002.
• W. Scacchi, Free/Open Source Software Development Practices in theComputer Game Community, IEEE 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. Ramiland D. Perry (eds.), Software Evolution, John Wiley and Sons Inc, NewYork, 2004.