0
Code Reuse, Motivation, Koordination, Kollaboration:
Was Entwicklerteams von
Open Source Communities lernen können


Matth...
Überblick

   Warum von Open Source Communities lernen?
   Datenquellen: >30 Experten-Interviews
   Lernen von Open Sou...
Matthias Stürmer
 BWL und Informatik, Universität Bern
 Doktorand ETH Zürich
 nice – TYPO3 Websites und Web Applikation...
Warum von Open Source Communities lernen?

 Grosser Einfluss von OSS auf proprietäre Software
 Evolutionäre, bottom-up P...
Datenquellen: >30 Experten-Interviews

 10 Interviews mit Komponenten-Entwicklern
          libpng, zlib, libxml, expat ...
Lernen von Open Source Communities




28. Mai 2008    Matthias Stürmer – Chair of Strategic Management and Innovation   6
Lernfeld 1: Code Reuse
                                                Effizienzmerkmal
                                 ...
Modulares vs. monolithisches Design

 Vorteile von Modularität
          Aufgabentrennung; Verbindung über Schnittstelle...
Quelle: MacCormack et al., 2006


Mozilla vs. Linux                                                DSM: Design Structure M...
Quelle: MacCormack et al., 2006


Mozilla vorher vs. Nachher                                       DSM: Design Structure M...
Modularität und Code Reuse in Debian

                                                                 Abhängigkeiten bei...
28.05.08   ETH Folienlayout   12
Generiert mit: apt-cache dotty firefox | dot -Tps > dependencygraph_firefox.ps
                                           ...
Wie erreicht man mehr Code Reuse?

1. Software Architektur noch modularer
      ➔    Voraussetzung für Code Reuse, in Unix...
Lernfeld 2: Motivation

                                                Intrinsische vs.
                                ...
Motivationen von Open Source Entwicklern

 Intrinsische Motivation (=aus dem Arbeitsinhalt)
       Basierend auf Spass a...
Offenheit motiviert zu höherer Code-Qualität

 „At work, the programming I do is not as good as I do for
    something li...
Gesunder Wettbewerb

 In Open Souce Communities
          KDE vs. GNOME, Joomla! vs. TYPO3, XML Libraries...
          ...
Community Building

 User Innovation
          Software-Anwender tragen zur Weiterentwicklung bei
          Testen, Feh...
Beispiel 1: Eclipse




                                                                         Quelle: Spaeth et al., 20...
Lines of Code in Eclipse von 2001 bis 2007
IBM vs. nicht-IBM Entwickler




COCOMO: 21.5 Millionen LOC externe Beiträge
~ ...
Beispiel 2: Nokia Internet Tablets

                                                               Lanciert 2005
        ...
Community Building by Nokia
   Verkauf von 1000 vergünstigten Tablets für OSS Entwickler
   maemo.org für Tutorials, Roa...
Schlussfolgerungen




28. Mai 2008   Matthias Stürmer – Chair of Strategic Management and Innovation   24
Fazit Code Reuse

1. Software Architektur noch modularer

2. Kultur von Code Reuse fördern

3. Quellcode eigener Bibliothe...
Fazit Motivation

1. Ganzheitliche Motivationsförderung
      ➔    Autonomie bei Technologieentscheidungen
      ➔    Kons...
Potential von Open Source Entwickler

 OSS Communities gewöhnt an dezentrale,
    kollaborative Arbeit und offene Kommuni...
Referenzen
Haefliger, S.; von Krogh, G. & Spaeth, S. (2008) quot;Code Reuse in Open Source Softwarequot; Management
Scienc...
Diskussion


               Fragen, Bemerkungen, Anregungen?


                                 Matthias Stürmer
         ...
Upcoming SlideShare
Loading in...5
×

Code Reuse, Motivation, Koordination, Kollaboration: Was Entwicklerteams von Open Source Communities lernen können

2,363

Published on

Software-Unternehmen entwickeln und verkaufen erfolgreich umfangreiche Informatik-Lösungen und koordinieren dafür grosse Entwickler-Teams. Dennoch kommen die meisten kommerziellen IT-Projekte nicht an die Zahl von beteiligten Personen in Communities von Open Source Projekten heran. Matthias Stürmer fasst Forschungsergebnissen sowie praktischen Erfahrungen mit Open Source Projekten zusammen, um aufzuzeigen, wie diese scheinbar unorganisierten Programmierer-Gruppen funktionieren.und was Firmen von ihnen lernen können.

Diese Best Practices aus Open Source Projekten:

- Software-Wiederverwendung
- modulare Entwicklung
- Community Building,
- Motivierung und Einbindung von externen Programmierern
- Anreizsysteme für unbezahlte Beitragende

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,363
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Code Reuse, Motivation, Koordination, Kollaboration: Was Entwicklerteams von Open Source Communities lernen können"

  1. 1. Code Reuse, Motivation, Koordination, Kollaboration: Was Entwicklerteams von Open Source Communities lernen können Matthias Stürmer, ETH Zürich, mstuermer@ethz.ch, www.stuermer.ch Internet Briefing Entwickler Konferenz 2008, 28. Mai 2008, Zürich
  2. 2. Überblick  Warum von Open Source Communities lernen?  Datenquellen: >30 Experten-Interviews  Lernen von Open Source Communities 1. Code Reuse 2. Motivation  Schlussfolgerungen 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 2
  3. 3. Matthias Stürmer  BWL und Informatik, Universität Bern  Doktorand ETH Zürich  nice – TYPO3 Websites und Web Applikations-Entwicklung  /ch/open  OpenExpo  informatica08-Initiative Hackontest  Open Source Software an Schulen  Ubuntu Swiss Remix 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 3
  4. 4. Warum von Open Source Communities lernen?  Grosser Einfluss von OSS auf proprietäre Software  Evolutionäre, bottom-up Prozesse  Dezentral & effizient komplexe Software erstellen  Hochqualifizierte Entwickler motivieren → Aber auch OSS kann von herkömmlicher Software-Entwicklung lernen! 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 4
  5. 5. Datenquellen: >30 Experten-Interviews  10 Interviews mit Komponenten-Entwicklern  libpng, zlib, libxml, expat etc.  Working Paper „Learnings from Software Reuse in OSS“  23 Interviews mit Nokia Managern, Entwicklern, Nokia-Partnerfirmen und Maemo-Community  Working Paper zu Nutzen und Kosten von OSS  Interviews mit OpenMoko-Schlüsselpersonen  Sean Moss-Pultz und Michael Lauer 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 5
  6. 6. Lernen von Open Source Communities 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 6
  7. 7. Lernfeld 1: Code Reuse  Effizienzmerkmal  Modularität ist Voraussetzung für Code Reuse  OSS ist modularer als proprietäre Software (MacCormack et al., 2006)  Hohe Wiederverwendung in OSS mittels Libraries (Haefliger et al., 2008) 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 7
  8. 8. Modulares vs. monolithisches Design  Vorteile von Modularität  Aufgabentrennung; Verbindung über Schnittstellen  Dezentrale Entwicklung möglich  Bessere Skalierbarkeit/Erweiterbarkeit  Bessere Wartbarkeit  Umsetzungsebenen 1. Kern mit Plug-Ins, Extensions, Add-ons... 2. Basisbibliotheken und End-User Applikationen 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 8
  9. 9. Quelle: MacCormack et al., 2006 Mozilla vs. Linux DSM: Design Structure Matrix 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 9
  10. 10. Quelle: MacCormack et al., 2006 Mozilla vorher vs. Nachher DSM: Design Structure Matrix 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 10
  11. 11. Modularität und Code Reuse in Debian  Abhängigkeiten bei binären Paketen B1.1 B1.3  S1 B1.2  Binäre Pakete kompiliert aus B2.1  S2 Source Code Paketen  Hohe Wieder- verwendung (Ø 36x) Quelle: Spaeth et al., 2008a 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 11
  12. 12. 28.05.08 ETH Folienlayout 12
  13. 13. Generiert mit: apt-cache dotty firefox | dot -Tps > dependencygraph_firefox.ps Mozilla Firefox 28.05.08 ETH Folienlayout 13
  14. 14. Wie erreicht man mehr Code Reuse? 1. Software Architektur noch modularer ➔ Voraussetzung für Code Reuse, in Unix „Do one thing, do it well.“ 2. Kultur von Code Reuse fördern ➔ NIH Syndrom verhindern, „Reuse or make decision“, Ownership 3. Quellcode eigener Bibliotheken [intern] freigeben ➔ Beiträge anderer, höhere Qualitätsansprüche, stärkere Diffusion 4. Selber Beitragen bei anderen Bibliotheken ➔ „Stilles“ Wissen erhalten und Software-Wartung outsourcen ➔ Reputations-Denken und Mitwirkung an OSS fördern (upstream) 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 14
  15. 15. Lernfeld 2: Motivation  Intrinsische vs. extrinsische Motivation  Quellcode öffnen  Interner Wettbewerb  Community Building 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 15
  16. 16. Motivationen von Open Source Entwicklern  Intrinsische Motivation (=aus dem Arbeitsinhalt)  Basierend auf Spass an der Arbeit  Basierend auf Verpflichtungsgefühl → Förderbar durch Selbstbestimmung und Wertschätzung  Extrinsische Motivation (=externer Anreiz)  Nicht-monetär: Ansehen, Karrierechancen, Ferien etc.  Monetär: Anstellungsvertrag, Bonus, Aufträge etc. → Anreize sind Präferenzen-abhängig 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 16
  17. 17. Offenheit motiviert zu höherer Code-Qualität  „At work, the programming I do is not as good as I do for something like Expat. At work the requirements is that it needs to get out there, it needs to get working fast. It just needs to work, it doesn't matter how good it is, doesn't matter how elegant, you know. [...] For Open Source I do much more thinking, I have much more desire to do it properly.“ expat-Bibliothek Entwickler 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 17
  18. 18. Gesunder Wettbewerb  In Open Souce Communities  KDE vs. GNOME, Joomla! vs. TYPO3, XML Libraries...  Z.T. Zusammenarbeit auf Komponenten-Ebene  Wettbewerbsebenen  Extern: Konkurrenz-Firmen  Intern: Entwickler-Teams  Coopetition  cooperation (Kooperation)  competition (Wettbewerb) 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 18
  19. 19. Community Building  User Innovation  Software-Anwender tragen zur Weiterentwicklung bei  Testen, Fehlerbeschreibungen, Dokumentation etc. „Many eyes make bugs shallow“ (Raymond, 1999)  Open Innovation  Externe Entwickler motivieren mitzuwirken  Selber Software freigeben 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 19
  20. 20. Beispiel 1: Eclipse Quelle: Spaeth et al., 2008b 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 20
  21. 21. Lines of Code in Eclipse von 2001 bis 2007 IBM vs. nicht-IBM Entwickler COCOMO: 21.5 Millionen LOC externe Beiträge ~ 214,000 Mann-Monate ~ 1.7 billion USD 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 21
  22. 22. Beispiel 2: Nokia Internet Tablets  Lanciert 2005  Kein GSM  Eigenes Debian  Modelle bis heute:  N770  N800  N810 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 22
  23. 23. Community Building by Nokia  Verkauf von 1000 vergünstigten Tablets für OSS Entwickler  maemo.org für Tutorials, Roadmap, API Doc, Wiki, Blog Planet...  595 registrierte Maemo-Projekte auf garage.maemo.org [28.5.08]  Mailing Lists (Juni 2005 - Dezember 2006) und IRC Chat  Developer: 6795 Mails von 832 Email-Adressen (79 Nokia)  User: 2534 Mails von 511 Email-Adressen (33 von Nokia)  Bugzilla für Bug Reporting: 3142 Bugs [28.5.08]  Maemo Software Development Kit  Sardine: Development (unstable) Version des Betriebssystem 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 23
  24. 24. Schlussfolgerungen 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 24
  25. 25. Fazit Code Reuse 1. Software Architektur noch modularer 2. Kultur von Code Reuse fördern 3. Quellcode eigener Bibliotheken [intern] freigeben 4. Selber Beitragen bei anderen Bibliotheken 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 25
  26. 26. Fazit Motivation 1. Ganzheitliche Motivationsförderung ➔ Autonomie bei Technologieentscheidungen ➔ Konstruktives Feedback, eigene Ziele setzen ➔ Nicht-monetäre Belohnungen wie Konferenzbesuche 2. Quellcode intern bzw. extern zeigen 3. Wettbewerb zwischen Entwicklerteams fördern 4. Software-Anwender in Entwicklung einbeziehen 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 26
  27. 27. Potential von Open Source Entwickler  OSS Communities gewöhnt an dezentrale, kollaborative Arbeit und offene Kommunikation  Somit: Erfahrene OSS Entwickler anstellen  Hard Skills gute Programmierer, gute Software-Reuser  Soft Skills Zusammenarbeit, Selbstverantwortung, Motivation 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 27
  28. 28. Referenzen Haefliger, S.; von Krogh, G. & Spaeth, S. (2008) quot;Code Reuse in Open Source Softwarequot; Management Science, 54, 180-193 MacCormack, A.; Rusnak, J. & Baldwin, C. Y. (2006) quot;Exploring The Structure Of Complex Software Designs: An Empirical Study Of Open Source And Proprietary Codequot; Management Science, 52, 1015-1030 Michlmayr, M. & Senyard (2006) „A Statistical Analysis of Defects in Debian and Strategies for Improving Quality in Free Software Projects“ in The Economics of Open Source Software Development, A. Bitzer, J. & Schröder, P. J. H. (ed.) Elsevier B.V., 131-148 Raymond, E. S. (1999) quot;The Cathedral & the Bazaarquot; 1st Edition. O’Reilly, Sebastopol, CA, Sebastian Spaeth, Georg von Krogh, Matthias Stuermer, Stefan Haefliger (2008a) quot;A Lightweight Model of Component Reuse: A Study of Software Packages in Debian GNU/Linuxquot; working paper Sebastian Spaeth, Matthias Stuermer, Georg von Krogh (2008b) „Enabling Knowledge Creation through Outsiders: Towards a Push Model of Open Innovation“ working paper Stuermer, M. (2005). 'Open Source Community Building', master thesis, University of Bern, http://opensource.mit.edu/papers/sturmer.pdf 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 28
  29. 29. Diskussion Fragen, Bemerkungen, Anregungen? Matthias Stürmer mstuermer@ethz.ch www.stuermer.ch 28. Mai 2008 Matthias Stürmer – Chair of Strategic Management and Innovation 29
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×