does code architecture mitigate free-riding in the open source development model? carliss y. baldwin...

20
Does Code Architecture Mitigate Free-riding in the Open Source Development Model? Carliss Y. Baldwin and Kim B. Clark Open Source Conference Harvard Business School June 19, 2003

Upload: emily-rogers

Post on 12-Jan-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

Does Code Architecture Mitigate Free-riding in the Open Source Development Model?

Carliss Y. Baldwin and Kim B. Clark

Open Source ConferenceHarvard Business SchoolJune 19, 2003

Slide 2 © Carliss Y. Baldwin and Kim B. Clark, 2003

YesHow?

Read the paper!

Executive (Level 1) Summary

Does Code Architecture Mitigate Free-riding in the Open Source Development Process?

Slide 3 © Carliss Y. Baldwin and Kim B. Clark, 2003

Modular StructureOption Value

Two Properties of Code Architecture

Slide 4 © Carliss Y. Baldwin and Kim B. Clark, 2003

Modularity

Module = a set of tasks – separable from others; – with additive incremental value– Unit of design substitution– No. of modules = j

Global Design Rules

Module A Module B Module C Module D

Slide 5 © Carliss Y. Baldwin and Kim B. Clark, 2003

Modularity

Applies to groups of tasks. Modular in design ≠ Modular at runtime

– Linux is modular in design but monolithic at runtime.

» So is Unix

– Minix is modular at runtime, but (arguably) monolithic in design.

Slide 6 © Carliss Y. Baldwin and Kim B. Clark, 2003

Option Value

Design process is a search under uncertainty

Design substitution is optional Versions are evidence of option values

being realized over timeGlobal Design Rules v.1

Version 1.0Version 1.2

Version 1.5Version 1.8

Slide 7 © Carliss Y. Baldwin and Kim B. Clark, 2003

Modularity and Option Values are “architectural properties” because

(1) They are observable in early and incomplete code releases; and

(2) They affect the way the codebase evolves, ie., gets built out

Slide 8 © Carliss Y. Baldwin and Kim B. Clark, 2003

This paper

Characterizes software as a “non-rival” good Characterizes Open Source Development in terms

of two linked games Interacts games with code architecture Looks at Nash equilibria vs. “Robinson Crusoe”

option (coding alone) Defines a voluntary collective development

process as sustainable if equilibrium payoff to Workers is greater than Robinson Crusoe payoff

Slide 9 © Carliss Y. Baldwin and Kim B. Clark, 2003

Related Literature Eric Raymond

– Software is a non-rival good; cost of revelation– “Scratching an itch”– “Reputation game”– “Enough eyeballs”

Rishab Ghosh (“cooking pot”, generalized exchange) Lerner and Tirole (motives are rational) Justin Pappas Johnson (“public provision of private goods”) Harhoff, Henkel and von Hippel (“free revelation”) James Bessen (users benefit from a customizable codebase) Von Hippel and von Krogh, O’Mahony, Benkler (this is a

new institutional form)

Slide 10 © Carliss Y. Baldwin and Kim B. Clark, 2003

Level 2 Summary: Open Source Development Process

1 2 3 4 5 6 7 8Design Contribute Code Post Integrate Test Report Bugs Patch

This paper looks at the early stages, only.

“Involuntary Beneficence”

Decision to join and work or free-ride

+“Voluntary Revelation”

Decision to publish code, comments, etc.

Suggests that those stages of the process can be characterized in terms of two linked games.

Slide 11 © Carliss Y. Baldwin and Kim B. Clark, 2003

The Two Linked Games

Work (write code, patch, etc.)

Reveal (publish code, comments, etc.)

/* bitmap.c contains the code that handles the inode and block bitmaps */#include <string.h>

#include <linux/sched.h>#include <linux/kernel.h>

#define clear_block(addr) \__asm__("cld\n\t" \

"rep\n\t" \"stosl" \::"a" (0),"c"

(BLOCK_SIZE/4),"D" ((long) (addr)):"cx","di")

Slide 12 © Carliss Y. Baldwin and Kim B. Clark, 2003

First game—“Involuntary Beneficence”

Decision 1: – Join a collective development process; or

– Code in isolation

If a developer joins and works, his/her work product will automatically benefit other joiners (who may be free-riding).

Decision 2: Within collective, – Work; or

– Free-ride

“Private provision of public goods” game

Slide 13 © Carliss Y. Baldwin and Kim B. Clark, 2003

“Involuntary Beneficence”—Intuition

Cooking dinner (lot size = 6 portions)– One stew = Not modular, no option value

» The one cook has no incentive to join the collective!

– Stew, salad, dessert = Modular» Three cooks have incentive get together

– Two different stew recipes = Option value» Two cooks, pick the best recipe after the fact

– Three courses, two recipes per course = Modules with option value

» Six cooks will voluntarily join and cook

Wine-tasting (lot size = 12 portions) Collective recipe book (lot size = print run)

Slide 14 © Carliss Y. Baldwin and Kim B. Clark, 2003

“Involuntary Beneficence”—Results

If codebase is NOT modular and has NO option value, a working developer does just as well coding in isolation as joining the collective.

If codebase is modular or has option value, working developers do better in the collective that coding alone.

Modularity and option value are economic complements: more of one makes more of the other more valuable.

Slide 15 © Carliss Y. Baldwin and Kim B. Clark, 2003

Second Game— “Voluntary Revelation”

In real life, developers do not have to reveal their code to one another

Suppose two developers each have coded a module (sunk cost)

Can send it to the other, but communication is costly

One bears a cost to benefit the other This is a classical Prisoners’ Dilemma game

Slide 16 © Carliss Y. Baldwin and Kim B. Clark, 2003

There are many ways to “fix” a Prisoners’ Dilemma game

Reduce the cost of communicating– Internet, email, newgroups

Increase the rewards– Desire to reciprocate, feelings of altruism– The “Reputation Game”

Create a repeated game– Contingent strategies (eg. Tit-for-Tat)– Can support cooperation in equilibrium

Slide 17 © Carliss Y. Baldwin and Kim B. Clark, 2003

Code Architecture and the Prisoners’ Dilemma Game

Modularity – reduces the cost of a unit of contribution– creates many different “chunks of reputation”– creates larger “space” of repeatable games

Option value – provides improvable modules, thus creates “contests

with winners” (reputation)– makes the arrival of the end-game a surprise

Both – give the initial architect more reason to publish an

early-stage codebase

Slide 18 © Carliss Y. Baldwin and Kim B. Clark, 2003

Level 3 Summary: A Voluntary, Collective Development Process Requires:

For existence:– Developer-users– Non-rivalrous goods– Code architecture with modules and/or options– Communication speeds matched to the coding interval– Methods of SYSTEM INTEGRATION

For efficiency:– Ways to know who’s working on what– Ways to know which module design is better or best (Module-

level testing) For robustness (to solve the Prisoners’ Dilemma game):

– Rewards for communication– Iteration with an indeterminate horizon

Slide 19 © Carliss Y. Baldwin and Kim B. Clark, 2003

Implications for Firms

Those competing in the same space– Code Architecture matters!

» More Modules => Not good

» More option value => Not good

» Modules and option value = Really bad!

Those supplying complements– ???

Slide 20 © Carliss Y. Baldwin and Kim B. Clark, 2003

Thank you!