OSS design communities: an emergent form of distributed participatory design
Flore Barcellini1, Françoise Détienne1, Jean-Marie Burkhardt1,2
1
Eiffel2 team, INRIA, Rocquencourt, F 2 University Paris V, F
Classical view of participatory design
Clear distinction of designers and users
In terms of domain of competence
Users: end-users in application domain
Active participation of users Social inclusion of users Users involvement in the design process
as co-designers: propose, generate design alternatives
OSS design
No classical distinction between users and designers
In terms of status (rights)
User and designer « statuses » are relative
Users in the Python language community can be developers in a Python application community
In terms of domain of competence
Participants are highly skilled and have various facets of competence
Imaging
Pil
Application Domains Modules Space Standard library toto.py
Web
Zope
Scientific
SciPy
Python Core Language (C Python)
test.py
Financial
Sigefi
Reportlab
PDF
Pygame Bio-python
Game
Biology
Python Galaxy
OSS design
No classical distinction between users and designers
In terms of status (rights)
User and designer « statuses » are relative
Users in the Python language community can be developers in a Python application community
In terms of domain of competence
Participants are highly skilled and have various facets of competence
OSS design: our position
Design based on emerging roles
Distinction between
Status: acquired, meritocratic, rights-based role: emergent, activity-based
OSS socio-technical environments as
Environments « enabling »
Construction/sharing of knowledge Expression of facets of competence through role emergence in three interaction spaces
Documentation space
google sourceforge Parnassus Python Blog, Wiki CVS gname Phytonology freshmeat Activestate Archive
Discussions space
Python-list Python-dev Chat
E-mails privés
Python-fr …
Pythonware
Distributed design process
Implementation Space
Patch Module CVS Feature Request
Bug report
Interactions spaces in OSS communities
Emerging role linking subcommunities
User-oriented sub-community
Python-list mailing list Open to any one but
Oriented toward Python user issues
Developer-oriented sub-community
Python-dev mailing list Open to any one but
Oriented toward Python language design issues
Main place for the PEP design process
Prescribed process for proposing new design issues and proposal in Python
Emerging role linking subcommunities
Cross-participants
Status of user or developer Post in parallel same-topic discussions in both mailing lists
Emerging role linking subcommunities
Cross-participants as central
Cohesion and centrality in the social network of Pythonusers and Python-developers
Project Leader Developers
Py-list & py-dev
User-Champion
Cross Py-list & py-dev Users Participants
Emerging role linking subcommunities
Cross-participants as boundary spanners
Distinctive contribution
Express knowledge in both computer science domain and application domain Linking strategies
Adapted contribution
transfer knowledge about end-users to the developers community transfer knowledge about programming-users to the users community
Role emerging design
Roles along several dimensions
Social Cognitive Interactive
Conditions and barriers for emergence of roles
Balance between roles
Quality and efficacity of collaboration