Why Open Source Works Jim Herbsleb School of Computer Science

Slides:



Advertisements
Similar presentations
Return of the Large Data Center. Computing Trends Computing power is now cheap, power hungry, and hot. Supercomputers are within reach of all R1 universities.
Advertisements

Rational Unified Process
Software Design & Production Methodologies STRUCTURED & OBJECT-ORIENTED METHODS for SYSTEMS ANALYSIS & DESIGN Vassilka Kirova Computer & Information Science.
Chapter 5: Principles of Service- Oriented Computing Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Research Priorities in Open Source Software Development James D. Herbsleb Institute for Software Research, International School of Computer Science Carnegie.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Technical Coordination in Open Source Software Development James D. Herbsleb School of Computer Science Carnegie Mellon University
11.1 © 2007 by Prentice Hall 11 Chapter Building Information Systems.
Michael Ernst, page 1 Collaborative Learning for Security and Repair in Application Communities Performers: MIT and Determina Michael Ernst MIT Computer.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
1 James Herbsleb Carnegie Mellon University The Architecture of Coordination The author gratefully acknowledge.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Plethora: A Wide-Area Read-Write Storage Repository Design Goals, Objectives, and Applications Suresh Jagannathan, Christoph Hoffmann, Ananth Grama Computer.
COMM89 Knowledge-Based Systems Engineering Lecture 8 Life-cycles and Methodologies
MODELS Demonstrations, Ottawa, Canada, Ta’id H OLMES Infrastructure Cloud, Deutsche Telekom Technik GmbH Facilitating Agile Prototyping of.
Slide 1 Security Engineering. Slide 2 Objectives l To introduce issues that must be considered in the specification and design of secure software l To.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
By Douglas Copas and Mark Perry.  Currently available small business based commercial inventory management systems are either prohibitively expensive.
Introduction to Software Engineering Syed Salman Ali B.E, MBA ( MIS, Mktg), PMP.
CS223: Software Engineering Lecture 32: Software Maintenance.
11 ADM2372 Management Information Systems (MIS) Chapter 10 – Part I Systems Development Chapter 10 – Part I Systems Development.
Slide #18-1 Introduction to Assurance CS461/ECE422 Fall 2008 Based on slides provided by Matt Bishop for use with Computer Security: Art and Science.
Open Source Project Development – A case study - CSC8350, 4/07/ Instructor: Xiaolin Hu - Presenters: Fasheng Qiu & Xue Wang.
Teaching slides Chapter 2
Open Source Software Development
Essential Needs of Software Test Automation
Continuous Delivery- Complete Guide
Building Information Systems
Human-Computer Interaction
Chapter 1- Introduction
XACML and the Cloud.
Introduction SOFTWARE ENGINEERING.
Methodologies By Akinola Soyinka.
Chapter 8: Planning – Processes and Techniques
Chapter 18: Introduction to Assurance
Security Engineering.
Maintaining software solutions
Building Information Systems
DEFECT PREDICTION : USING MACHINE LEARNING
How to Fix Microsoft Office Error 2932 at Support Number
Frequently asked questions about software engineering
Malwarebytes Installation Issues Number Facing error with Malwarebytes software is not something unusual as most of the users use to face.
HCI in the software process
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Applied Software Implementation & Testing
Next Steps to Value 11/8/2018.
Paul Ammann The Agile Heresy: What Drives Traditional Software Engineering, and Why Agile Turns it Upside Down Paul Ammann.
Frequently asked questions about software engineering
An Introduction to Software Engineering
By: David Hoang Martin Hoffman
Software Engineering Software Engineering is the science and art of
HCI in the software process
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Copyright © JanBask Training. All rights reserved Become AWS Certified & Get Amazing Job Opportunities.
CS385T Software Engineering Dr.Doaa Sami
TWO CASE STUDIES OF OPEN SOURCE SOFTWARE DEVELOPMENT: APACHE AND MOZILLA HAKAN TERZIOGLU 2/24/2019 EEL 5881.
Database Actors.
Software Engineering Software Engineering is the science and art of
HCI in the software process
The Basics of Information Systems
Human Computer Interaction Lecture 14 HCI in Software Process
Next Steps to Value 7/9/2019.
The Basics of Information Systems
Software Design & Production Methodologies
Logical Architecture & UML Package Diagrams
Presentation transcript:

Why Open Source Works Jim Herbsleb School of Computer Science Carnegie Mellon University +1 412 268 8933 jdh@cs.cmu.edu

Key Differences Open source Commercial Development work done by users User-developers determine functionality Developers choose work assignments Emergent coordination spacer Potentially redundant effort Open technical discussions Commercial Developers seldom users Product managers determine functionality Management assigns work Bureaucratic coordination Redundant effort avoided Closed technical discussions

Development Work Done by Users Much more likely to get the functionality right Major class of errors is eliminated Unspoken, implicit, hidden requirements are not a problem Extreme form of “participatory design” Prototyping happens naturally

User-Developers Determine Functionality Marketing and product management functions in commercial software Very familiar with how purchasing decisions made Often know very little about actual use, users Often a huge gap between attributes that drive purchases and attributes that drive usefulness and usability Decisions in open source based on user concerns, not purchaser concerns Caveat -- non-developer users don’t count!

Developers Choose Work Assignments Presumably many factors involved: What is interesting and challenging What functionality does that user/developer need What is most likely to be included in the product What will enhance reputation and standing Developer choices range across projects Larger pools of potential work assignments and developers permits better match Requires efficient brokering

Emergent Coordination Minimal management structure Core group with commit privileges Management by those with demonstrated technical merit Participation mirrors dependencies Very few developing new functionality Many more fixing bugs Very large numbers reporting bugs

Potentially Redundant Effort Generates alternative solutions Alternatives generated exactly where people are able to identify interesting technical alternatives Sample many places on the risk/reward continuum Alternatives have high option value

Open Technical Discussions Draws on very large pool of potential experts Newbies can catch up with minimal distractions to existing staff Preserves design rationale

Productivity Core Developers Only 5 10 15 20 25 30 35 40 45 MRs (X10) KLOCA Apache A B C D E layout js rdf netwerk editor intl xpinstall Commercial Mozilla Mockus, A., Fielding, R., & Herbsleb, J.D.  Two Case Studies of Open Source Software Development: Apache and Mozilla (2002).  ACM Transactions on Software Engineering and Methodology, 11, 3, pp. 309-346.

“Post Feature Test” Defect Density

“Post Release” Defect Density 14 28 10 0.1 0.7

Open Source Open Questions Resource allocation process Modeling, understanding Brokerage tools Effects of patronage, hybrid models Security Race from discovery to exploit to deployment Race from discovery to patch to distribution and installation Limitations of open source Only maintenance and evolution? How about highly collaborative stages like high-level design, architecture? Collaboration technology