Meine Plattform ist besserals Deine Plattform???Prof. Dr. Lutz PrecheltFreie Universität Berlin
Die Frage (1)Welches ist die besteWeb-Entwicklungsplattform?Wer hat dazu eine klare Meinung?Bitte mal melden              ...
Die Frage (2)Sie da hinten mit den roten Haaren:Welche ist das?Aha.Ist irgend jemand anderer Meinung?Bitte mal melden.    ...
Die Frage (3)Dieser Vortrag handelt von:Und woher wissen Sie das?Vergleichbare(!) persönliche Erfahrungen mitvielen Plattf...
Die Frage (4)Und was heißt das überhaupt, "die beste"?• produktiv bei Erstentwicklung?• gute Wartbarkeit und Erweiterbarke...
Jetzt aber mal echt: Die FrageBesitzen unterschiedlicheWebentwicklungsplattformen typische aberunterschiedliche Eigenschaf...
Wie bekommt man sowas raus?Man verkleidet eine wissenschaftliche Studie als Wettbewerb:                                   ...
Plat_Forms: Das Format• 3er-Teams professioneller Webentwickler  • jedes Team benutzt seine Lieblingsplattform  • 3 oder 4...
Plat_Forms 20079 Teams: 3 Java, 3 Perl, 3 PHPMit Teilnehmern aus Deutschland, Österreich, Schweiz, Litauen, USA           ...
Plat_Forms 201116 Teams: 4 Java, 4 PHP, 3 Perl, 4 Ruby, (1 JavaScript)Mit Teilnehmern aus Deutschland, Österreich, Großbri...
Sponsoren            2007   2011                          11
Die Aufgabe2007:PbT – People by Temperament2011:CaP – Conferences and Participants      hierzu gleich Detailsbeides sind ...
Browsing the Portal (Team Ps Solution)                                13
Signing Up             14
A Member‘s Status Page                         15
Searching for Conferences                            16
Conference Summary Page                          17
Searching for Members                        18
Web Service SchnittstelleRESTful Web Service mit JSONals DatenaustauschformatStellt fast alle Funktionalität derHTML- Benu...
Das Anforderungsdokument                           • 9 Anwendungsfälle                           • Sehr detailliert beschr...
Die AuswertungGröße der Lösungen                Wartbarkeit?Vollständigkeit der Lösungen      ProduktivitätRobustheit de...
Java, Perl, PHP 2007: Größe in LOC?                            R: Reused                            M: Manual or modified ...
Java, Perl, PHP 2007: Größe in LOC?                            Perl kleiner als Java                            Perl klein...
Java, Perl, PHP 2007: Produktivität                              Nur UI-Anforderungen                              PHP > P...
Java, Perl, PHP 2007: relative Größe          Java          PHP                                                  Regressio...
HTML UI und Webservice                                            143 UI + 32 WS Anforderungen, 185 totalJava, Perl, PHP, ...
Produktivität 2007 vs. 2011Ohne JavaScript (außer Konkurrenz)                                     27
Java, Perl, PHP, Ruby 2011: relative Größe                                  Ruby und Perl eher                            ...
Robustheit 2011                  29   Ruby                       PHP                       Perl                       Java
Robustheit 2007 und 2011                           2007                                  2011: Nur noch eine              ...
Anzahl gestellter Fragen 2011Die Teilnehmer konnten einem On-Site Customer Fragen zumAnforderungsdokument stellen.        ...
Mit Testen verbrachte Zeit 2011Ruby Teams häufiger als alle anderen zusammen beimSchreiben automatisierter Tests angetroff...
Zusammenfassung• Vermutlich ist die Sprache gar kein sinnvolles Kriterium mehr• Perl-Lösungen und Ruby-Lösungen sind eher ...
Mein persönliches Fazit• Ein besseres Team hilft oft mehr als eine "bessere" Plattform  • Bring die passenden Leute ins Pr...
Plat_Forms 2012Plat_Forms 2012 findet statt am 9.-10. Oktober 2012 (Di/Mi)in Berlin.Anreise und Aufbauen am Mo 8.10.Bewerb...
Vielen Dank!www.plat-forms.org                 36
Participant Experience„I […] have X years of experience as a professional software developer“                             ...
Participant Capability„Among all professional programmers creating web applications, I consider myselfamong the most capab...
2007: Uneinigkeit der 2 Gutachterbeim Funktionstest der Anforderungen                                    Moral:           ...
2011: Umfang der Gutachterprüfungbeim Funktionstest der Anforderungen143 UI Anforderungen, jede wurde von zwei Gutachtern ...
ProzessbeobachtungEine Frage alle 15 Minuten: Was machst Du gerade?97 Fragezeitpunkte pro Teilnehmer, 3 Teilnehmer pro Tea...
Interviews: Ergebnis                       42
Die Teams 2007Team 3 Java:                               Team 1 Perl:abaXX Technology (abaxx.de)                Etat de Ge...
Die Teams 2011                    PHPJava                               - F: TYPO3 Association - A: Crealogix (ehemals aba...
Frameworks und Bibliotheken 2011Java:                              PHP: - I: Spring Roo, Hibernate         - F: FLOW3 - A:...
Nächste SlideShare
Wird geladen in …5
×

Lutz Prechelt - Keynote: "Meine Plattform ist besser als Deine Plattform???"

898 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
898
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Lutz Prechelt - Keynote: "Meine Plattform ist besser als Deine Plattform???"

  1. 1. Meine Plattform ist besserals Deine Plattform???Prof. Dr. Lutz PrecheltFreie Universität Berlin
  2. 2. Die Frage (1)Welches ist die besteWeb-Entwicklungsplattform?Wer hat dazu eine klare Meinung?Bitte mal melden 2
  3. 3. Die Frage (2)Sie da hinten mit den roten Haaren:Welche ist das?Aha.Ist irgend jemand anderer Meinung?Bitte mal melden. 3
  4. 4. Die Frage (3)Dieser Vortrag handelt von:Und woher wissen Sie das?Vergleichbare(!) persönliche Erfahrungen mitvielen Plattformen hat kaum jemand. 4
  5. 5. Die Frage (4)Und was heißt das überhaupt, "die beste"?• produktiv bei Erstentwicklung?• gute Wartbarkeit und Erweiterbarkeit?• hohe Effizienz, hohe Skalierbarkeit?• wenig Defekte im eigenen Code?• wenig Defekte in der Infrastruktur?• führt zu hoher Sicherheit?• intelligente nette Kollegen? etc… 5
  6. 6. Jetzt aber mal echt: Die FrageBesitzen unterschiedlicheWebentwicklungsplattformen typische aberunterschiedliche Eigenschaften?Welche? 6
  7. 7. Wie bekommt man sowas raus?Man verkleidet eine wissenschaftliche Studie als Wettbewerb: 7
  8. 8. Plat_Forms: Das Format• 3er-Teams professioneller Webentwickler • jedes Team benutzt seine Lieblingsplattform • 3 oder 4 Teams pro Plattform, ausgewählt nach Qualifikation• alle zur gleichen Zeit am gleichen Ort• 2 Tage: 9-24 Uhr und 8-18 Uhr • d.h. ca. 25h  ca. 2 Personenwochen Aufwand• alle Teams implementieren die selbe, detaillierte Spezifikation• anschließend 6 Monate wissenschaftliche Auswertung2 mal durchgeführt: 2007 und 2011 8
  9. 9. Plat_Forms 20079 Teams: 3 Java, 3 Perl, 3 PHPMit Teilnehmern aus Deutschland, Österreich, Schweiz, Litauen, USA 9
  10. 10. Plat_Forms 201116 Teams: 4 Java, 4 PHP, 3 Perl, 4 Ruby, (1 JavaScript)Mit Teilnehmern aus Deutschland, Österreich, Großbritannien, Litauen (4 Teams in einem Nebenraum) 10
  11. 11. Sponsoren 2007 2011 11
  12. 12. Die Aufgabe2007:PbT – People by Temperament2011:CaP – Conferences and Participants  hierzu gleich Detailsbeides sind Community-Portale(mit ein paar nicht soooo gängigen Anforderungen)mit HTML-UI und Webservice-Schnittstelle 12
  13. 13. Browsing the Portal (Team Ps Solution) 13
  14. 14. Signing Up 14
  15. 15. A Member‘s Status Page 15
  16. 16. Searching for Conferences 16
  17. 17. Conference Summary Page 17
  18. 18. Searching for Members 18
  19. 19. Web Service SchnittstelleRESTful Web Service mit JSONals DatenaustauschformatStellt fast alle Funktionalität derHTML- Benutzeroberfläche bereit. 19
  20. 20. Das Anforderungsdokument • 9 Anwendungsfälle • Sehr detailliert beschrieben • Unterteilt in 204 Anforderungen • 185 funktionale, 23 nicht- funktionale, 6 Regeln • Priorisiert nach Wichtigkeit • MUST: essentiell wichtig, Defekt wenn nicht vorhanden • SHOULD: wichtig, aber akzeptabel wenn nicht vorhanden • MAY: nice to have 20
  21. 21. Die AuswertungGröße der Lösungen  Wartbarkeit?Vollständigkeit der Lösungen  ProduktivitätRobustheit der Lösungen  SicherheitEntwicklungsprozess  (ist einfach interessant) 21
  22. 22. Java, Perl, PHP 2007: Größe in LOC? R: Reused M: Manual or modified G: Generated 22
  23. 23. Java, Perl, PHP 2007: Größe in LOC? Perl kleiner als Java Perl kleiner als PHP 23
  24. 24. Java, Perl, PHP 2007: Produktivität Nur UI-Anforderungen PHP > Perl (p = 0.02) Java 9: Framework unreif Java 4: Ärger mit Server 24
  25. 25. Java, Perl, PHP 2007: relative Größe Java PHP Regression ergibt: Perl Java groß PHP mittel Perl klein number of implemented requirements 25
  26. 26. HTML UI und Webservice 143 UI + 32 WS Anforderungen, 185 totalJava, Perl, PHP, Ruby 2011: Produktivität Ruby 26 PHP Perl Java
  27. 27. Produktivität 2007 vs. 2011Ohne JavaScript (außer Konkurrenz) 27
  28. 28. Java, Perl, PHP, Ruby 2011: relative Größe Ruby und Perl eher kompakt Java eher weniger kompakt PHP gemischt 28
  29. 29. Robustheit 2011 29 Ruby PHP Perl Java
  30. 30. Robustheit 2007 und 2011 2007 2011: Nur noch eine Lösung nach naivem Test möglicherweise anfällig für SQL Injection. Insgesamt bessere Robustheit (weniger rosa und rot). 2011 30
  31. 31. Anzahl gestellter Fragen 2011Die Teilnehmer konnten einem On-Site Customer Fragen zumAnforderungsdokument stellen. Ruby Teams stellen im Mittel so viele Fragen wie Java, Perl und PHP Teams zusammen. Java auf Rang 2, genau wie bei der Produktivität! 31
  32. 32. Mit Testen verbrachte Zeit 2011Ruby Teams häufiger als alle anderen zusammen beimSchreiben automatisierter Tests angetroffen.Java Teams häufiger als alle anderen zusammen beimmanuellen Testen angetroffen. 32
  33. 33. Zusammenfassung• Vermutlich ist die Sprache gar kein sinnvolles Kriterium mehr• Perl-Lösungen und Ruby-Lösungen sind eher klein (in LOC) • Java-Lösungen sind eher groß• Rails (Ruby) und das verwandte Symfony (PHP) sind hier sehr produktiv • Produktivität bei Java ist sehr uneinheitlich• Die Robustheit scheint wenig sprachabhängig (evtl. bei Java schwächer) • ist 2011 besser als 2007• Die Teams der produktivsten Plattformen stellen mehr Fragen• Die Teams der produktivsten Plattformen testen mehr • aber: Ruby-Teams testen automatisch, Java-Teams vor allem manuell • Ursache/Wirkung liegt nicht auf der Hand 33
  34. 34. Mein persönliches Fazit• Ein besseres Team hilft oft mehr als eine "bessere" Plattform • Bring die passenden Leute ins Projekt ( Perl O), • beherrsche Deine Plattform ( Java A) • und bleibe ihr lange genug treu dafür ( Java I).• Vorurteile sind wenig verlässlich• Wir brauchen mehr solche direkt vergleichbaren Daten Ausblick: 34
  35. 35. Plat_Forms 2012Plat_Forms 2012 findet statt am 9.-10. Oktober 2012 (Di/Mi)in Berlin.Anreise und Aufbauen am Mo 8.10.Bewerbungen sind noch möglich bis Fr 14.09.2012Wer will vermutlich kommen? www.plat-forms.org 35
  36. 36. Vielen Dank!www.plat-forms.org 36
  37. 37. Participant Experience„I […] have X years of experience as a professional software developer“ 37
  38. 38. Participant Capability„Among all professional programmers creating web applications, I consider myselfamong the most capable X%.“correlation mean cap ~ compl (BCa); 0.95 :-0.79216 , -0.060967 38
  39. 39. 2007: Uneinigkeit der 2 Gutachterbeim Funktionstest der Anforderungen Moral: very expensive, but careful judging procedure 39
  40. 40. 2011: Umfang der Gutachterprüfungbeim Funktionstest der Anforderungen143 UI Anforderungen, jede wurde von zwei Gutachtern aus dem Plat_FormsForschungsteam bewertet - Gutachter verglichen tatsächliches Verhalten mit dem Anforderungsdokument - 5 mögliche Ergebnisse: 0 – fehlt, 1 – teilweise vorhanden, 2 – funktioniert aber eher schlecht, 3 – funktioniert, 4 – funktioniert und besonders gut - 16 Lösungen * 143 Anforderungen * 2 Gutachter = 4576 Anforderungen wurden begutachtet - In 19% der Fälle Uneinigkeit zwischen den beiden Gutachtern - Zusätzliche Abstimmung nötig32 Anforderungen für die RESTful Web Service Schnittstelle - Wurden von automatisierten Client getestet 40
  41. 41. ProzessbeobachtungEine Frage alle 15 Minuten: Was machst Du gerade?97 Fragezeitpunkte pro Teilnehmer, 3 Teilnehmer pro Team, 16 Teams - insgesamt 4656 AntwortenJede Antwort kodiert mit einem von 21 Codes, bspw. "readtask", "design", "code","manualtest", "codeautotest", "runautotest", "debug" 41
  42. 42. Interviews: Ergebnis 42
  43. 43. Die Teams 2007Team 3 Java: Team 1 Perl:abaXX Technology (abaxx.de) Etat de Genève/Optaros (ge.ch, optaros.com).Team 4 Java:Accenture Technology Solutions Team 2 Perl:(accenture.de) plusW (plusw.de)Team 9 Java: Team 5 Perl:Innoopract Informationssysteme Revolution Systems (revsys.com)(innoopract.de)Team 6 PHP:OXID eSales (oxid-esales.com)Team 7 PHP:Globalpark (globalpark.de)Team 8 PHP:Zend Technologies (zend.com)Lutz Prechelt, prechelt@inf.fu-berlin.de 43
  44. 44. Die Teams 2011 PHPJava - F: TYPO3 Association - A: Crealogix (ehemals abaXX) - G: Mayflower - D: SIB Visions - L: Globalpark - E: Kayak.com - M: mindworks - I: AccentureJavaScript Ruby - B: Upstream Agile - H: MakandraPerl - K: tmp8 - C: #austria.pm - N: LessCode - J: Perl Ecosystem Group - P: Infopark - O: Shadowcat Systems 44
  45. 45. Frameworks und Bibliotheken 2011Java: PHP: - I: Spring Roo, Hibernate - F: FLOW3 - A: abaXX.Components - G: Zend Framework including Hibernate - L: Zend Framework - D: JVx and JVx WebUI - M: Symfony - E: Spring MVC, Hibernate Ruby:Perl: - P: Infopark: Rails - C: Catalyst, DBIx::Class - N: LessCode: Rails - J: Catalyst - H: makandra: Rails - O: Task::Kensho (built on top - K: tmp8: Rails of Catalyst and JavaScript: others) - B: Node.js, express.js, sammy.js 45

×