Open Source Software Processes

Walt Scacchi

ICS 225

Spring 2002

Version 1.0

9 June 2002

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 OSS license/rights to use

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

 

OSS Development (Mesostructure) Processes

  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

OSS (Infrastructure) Tool and Environment Processes

  Develop Community Software

  Develop Community Web Portal

OSS Articulation Processes

  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