Open Source Software Processes
Walt Scacchi
ICS 225
Spring 2002
Version 1.0
Community (Suprastructure) Processes
Upload (Contribute) initial source code base
Initiate OSSD Project
Create and post Project OSSD "to do"
items
Develop Project Community
Establish/Update Project Web Site
Upload Project Content (Informalisms) and Source
Web
Encourage Developers to Join Project and Upload
Content
Assert relevant
Register project with larger OSSD portal (e.g., SourceForge, Freshmeat.org)
(Re)Organize Project Team
Separate Core Developers from Other Developers
Create community "rights of passage" and
hierarchy
Add/Update Project Team Agent-Roles
Optional: Create Foundation to assure legal status
Download and Install
Check Open Software Web Site (e.g., via SourceForge) for news/latest release info
User download packaged open software source code
files (e.g., RPMs) and/or executable image
Unpack and install source code
End-Use
Review any application documentation or Web pages
Use downloaded executable image
Optional:
Perform local source code build
Perform local integration test
Perform local version control check-in
Communicate Experience
Browse OSSD project Web site, discussion forum, or
other online sources
If observe bugs, then do bug report
If observe performance bottlenecks, external
innovation opportunities, or localization shortfalls, then do enhancement or
code restructuring request
Assert Requirements-Design
Assert software requirements or design update using
communication tools/artifacts
Read and make sense of updates, determine
accountability
Browse and extend software discourse web
Harden discourse web via navigational cross-linkage
Provide global access to software web
Develop Open Source Code
Check-out and download source code from project
repository/Web site
Edit source code file(s)
Compile local source code into executable image
Debug as needed
Perform unit test on executable image
Submit source code to configuration management
Manage Configuration
Compose/integrate source code files (e.g., via Make
files)
Build/make executable composed image
Regression test executable image
Optional:
·
Submit source code for review
·
Review and approve/reject submitted
source
Check-in source code into (CVS) repository
Create remote installation package (e.g., RPM) for
release
Create and build multi-platform executable images
for release
Create release "news" information
Post news and release on project Web site
Track and record source/image downloads
Review, Analyze, Redesign
Select application, process, or Web site to
redesign
Analyze and model
Identify and Extract structural properties
·
Components,
connectors, interfaces, resources I/O, configuration, and version(s)
Identify applicable redesign heuristics
Develop redesign transformation plan
Execute plan
Scan External Environment for Innovation Opportunities to Download/End-Use
or Reuse
Develop Community Software
Develop Community Web Portal
Discover Motivation to Participate and Join OSSD Project
Mobilize Resources
Enact Processes
Community Processes (see above)
Development Processes (see above)
Tool and Environment Processes (see above)
Encounter and Articulate Breakdowns
Diagnose Breakdown Instance
Classify Breakdown Type/Class
Search for Potential Breakdown Repairs
Enact Repair
·
Evaluate Repair Effects and
Consequences
·
Enact another repair if current
repair does not realize effective repair
Replan (and Reschedule)
Current Process Enactment