190 likes | 331 Views
Open-Source Software Engineering. The Bazaar. Open Source. Source code is available for inspection, independent peer review rapid evolution. Open Source. Technology internet (communication) widely used languages lots of potential users/helpers standards Process. Process.
E N D
Open-Source Software Engineering The Bazaar
Open Source • Source code is available • for inspection, • independent peer review • rapid evolution CS427
Open Source • Technology • internet (communication) • widely used languages • lots of potential users/helpers • standards • Process CS427
Process • Cathedral vs. Bazaar • Centralized vs. decentralized • Planned vs. unplanned CS427
Open Source • Roles • Leader • Develops initial system • Does what nobody else does • Makes final decisions • User/programmer • Does most of the work CS427
The Leader • An open source project needs a leader • Delegates as much as he can • Empowers users • Decides what goes in CS427
The users • Users are co-developers • Users are programmers who can • add features • fix bugs • port to new hardware/operating systems • improve design CS427
Requirements • Who decides what features get added? • Programmers • who want to use the feature (scratch an itch) • who are persuaded to add it • Must be a way to distribute changes for a feature • Must be way to talk about desired features CS427
Design • Design is incremental • Refactoring is important CS427
Testing • Every user is a tester • Every programmer is a reviewer and bug fixer • Given enough eyeballs, all bugs are shallow. • More users find more bugs. CS427
Life-cycle • Plausible promise - must start with a (small) working program • Release early and often • Recognize good ideas from users • Keep users connected, let them see the results of their work CS427
Rewards • Why would anybody do this? • They need the program. • Ego boost. • Contributing • Having people think they are good CS427
Commercial rewards • Why would anybody do this? • Produce better software • Produce software more cheaply CS427
Costs • Need a leader • a lot of work over a long time • must communicate • an organizer as much as a designer CS427
Enablers • Internet • Copyleft • C • Boring, high-paying jobs CS427
XP • How is the “Bazaar” process like XP? • Is the Bazaar leader like an XP customer? • What about unit tests? • Where does planning happen in the Bazaar? • What could the Bazaar borrow from XP? • What could XP borrow from the Bazaar? CS427
Summary • Human beings take pleasure in a task when it falls in an optimal-challenge zone; not so easy as to be boring, not too hard to achieve. • A happy programmer is one who is neither underutilized nor weighed down with ill-formulated goals and stressful process friction. • Enjoyment predicts efficiency. CS427
Next time • Read the preface and chapter 1 of Crystal Clear (by Alistair Cockburn) from http://st-www.cs.uiuc.edu/users/johnson/427/2004/crystalclearV5d.pdf CS427