SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Not invented here
"Soft Bugs" finden und reparieren
Matthias Bohlen <mbohlen@mbohlen.de>
Matthias Bohlen
Agenda
• Was ist das NIH-Syndrom?
• Warum ist NIH wichtig?
• Wie kann man das Syndrom erkennen?
• Wie kann man es therapieren?
• Welche Präventivmaßnahmen kann man ergreifen?
• Q&A Session
Matthias Bohlen
Matthias Bohlen – das Profil
• Unabhängiger Berater
– Architektur, Software-Engineering
– Objekt- und Komponententechnologien
– Modellgetriebene Software-Entwicklung, MDA
• Dienstleistungen:
 Analyse, Design, Architektur
 Project jump start
 Technische Projektleitung
 Therapie für Projekte in der Krise
 Beratung
 Schulung
 Trainings
 Coaching
Matthias Bohlen
Kunden von A bis Z
Einführung:
NIH - Not invented here
Was ist das? Wie äußert sich das?
Matthias Bohlen
NIH definieren
• Es gibt zwei Bedeutungen von NIH:
– ich mache etwas selbst, was es bereits gibt
– ich akzeptiere einen Vorschlag nicht, weil der
Vorschlagende aus einer anderen Gruppe kommt
• In diesem Vortrag geht es um NIH im ersten
Sinne, nicht im zweiten.
Matthias Bohlen
So fängt NIH an...
• Entwickler bemerkt, dass er Objekte in einer
Datenbank speichern muss
• Er glaubt, dass O/R-Mapper wie JPA oder
Hibernate überdimensioniert sind:
– "Ich brauche ja nur eine Zeile pro Objekt in eine
Tabelle zu schreiben, dabei jedes Attribut in eine
eigene Spalte, mehr nicht."
– "Das sollte mittels JDBC in einem Tag zu realisieren
sein."
• Tatsächlich: Der Prototyp läuft in einem Tag!
Matthias Bohlen
Das Schicksal nimmt seinen Lauf...
• "Oh, bisher kann ich nur String-Attribute im
Objekt, ich brauche aber auch Integer und
Double-Werte."
• Der Prototyp wird um
Datenformatierungsklassen angereichert.
• Der zweite Tag ist um.
Matthias Bohlen
Das Grauen...
• "Hmmm, ich brauche wohl auch persistente
Beziehungen zwischen den Objekten."
• Der Prototyp wird um
Fremdschlüsselverwaltung angereichert.
• Bis es tut, ist eine Woche um.
Matthias Bohlen
...nimmt Formen an...
• "Hmmm, 1:n Beziehungen und n:m Beziehungen sind
vom Kunden auch gefordert."
• "Ach, ich kann Objekte nur laden und speichern, aber
nicht updaten".
• Der Prototyp wird innerhalb 4 Wochen um
Zwischentabellenverwaltung und das Laden und
Speichern von Collections ergänzt.
• Weitere 4 Wochen werden benötigt, um den Prototyp
um Schattenkopieverwaltung und Differenzermittlung
für UPDATE-Statements zu ergänzen.
Matthias Bohlen
Schließlich der Kollaps
• Jetzt wird das Ausmaß der Anforderungen endlich klar:
– Oh, ich muss abgeleitete Klassen auch können. Und
polymorphe Beziehungen auch!
– Oh Schreck, verschiedene Datenbanken muss ich
unterstützen und Caching für die Performance brauch
ich auch!
– Und was ist eigentlich mit Multi-User-Zugriffen?
• "Jetzt muss ich ja alles refaktorisieren und große Teile neu
machen!"
• Entwickler gibt auf und gesteht, dass er nun doch Hibernate
einsetzen wird. Der Teamleiter fragt: "Und was hast Du die
letzten 8 Wochen gemacht?"
Matthias Bohlen
Risiken bei NIH
• Entwicklungskosten steigen im Projekt
• Wartungskosten steigen nach dem Projekt
• Qualität ist gering, da wenig getestet
– "Frischer" (nicht-trivialer) Code hat immer
mehr Bugs als "reifer" (oft benutzter,
getesteter und debuggter Code).
• Bekannte Standardfehler werden noch
einmal gemacht
• Best practices werden nicht genutzt
Matthias Bohlen
Beispiele für NIH
• Warum entwickeln Menschen so etwas?
Und zwar immer wieder?
– Persistenzframeworks
– Loggingframeworks
– Validierungsframeworks
– Druckaufbereitung und Reporting
– Data Binding
– Rule Engines
– XML Parser
– GUI-Generatoren
– Cache-Verwaltung
– Sogar Verschlüsselung, unvorstellbar!
Die Ursachen für NIH
Warum verhalten Menschen sich so?
Matthias Bohlen
Vermeintliche Ursachen
• Für den mit dem Hammer ist alles ein Nagel
• Ich fühle mich wohl mit meinen bekannten Tools
• Ich selbst kann es sicher am besten
• Ich mache das mal schnell, die anderen brauchen immer
so lange...
• Ich brauche ja keine Riesenlösung, sondern nur schnell
dieses kleine Programm...
• Es tut nicht ganz das was ich will
• Eine Library-Funktion aufzurufen kostet zu viel CPU-Zeit
• Ich wusste nicht, dass die Funktion / Library / der Code
existiert
• Ich hätte es anders gemacht
Matthias Bohlen
In Wahrheit...
• Die Chemie im Gehirn
– Lust:
• Melatonine, Oxytocine
• Serotonin, Dopamin
– Stress:
• Adrenalin, Cortisol
• Glückshormone bei/nach großer Anstrengung
– die schwere Geburt
– das Erlegen des großen Tieres nach schnellem Lauf
– die Auflösung eines intellektuellen Problems
• Bekanntes Muster aus der Natur!
Matthias Bohlen
Der "Heureka"-Effekt
• Prof. Dr. Henning Scheich
Leiter des Leibniz-Instituts für
Neurobiologie in Magdeburg:
– "Aha-Effekt führt zur Ausschüttung
von Dopamin, das die Motivation
aufrecht erhält und weitere Opiat-
Ausschüttung anregt."
– "Gehirn belohnt sich selbst, bringt sich
in gute Stimmung, wenn es etwas
gelöst hat und speichert es auch noch
ab!"
http://www.ifn-magdeburg.de/en/departments/auditory_learning_and_speech/index.jsp
Matthias Bohlen
Abgekürzt heißt das:
• Etwas neu erfinden ist halt cool!
• Und macht mehr Spaß als etwas
Existierendes richtig zu evaluieren und
kosteneffizient einzusetzen!
Abhilfe
Wie können wir das NIH Syndrom heilen?
Matthias Bohlen
Machen wir's wie ein Arzt
• Anamnese - was ging schief?
• Diagnose - woran liegt's?
• Therapie beginnen
• Regelmäßig nachsteuern
• Nachuntersuchung, Erfolgskontrolle
Matthias Bohlen
Anamnese
• Frühindikatoren beachten
– Ein Feature geht sehr schnell, danach dauert alles länger
als erwartet
– Es kommt für den User keine sichtbare Funktionalität
mehr hinzu!
– Der Code sieht übermäßig kompliziert aus
– Die Bugs nehmen nicht ab
• Reviews durchführen
– Aufgabenstellung überprüfen: Musste dieser Code
überhaupt entwickelt werden?
• Design-Entscheidungen nachlesen
– "Make or Buy" - wurde das überhaupt erwogen?
Matthias Bohlen
Diagnose - woran liegt's?
• Mangelnde Tool-Marktkenntnis
• Selbstüberschätzung
• Tunnelblick
• Unterforderung
– "Star", "Local Hero", "Programmiergenie"
• Mangelnde konkrete Anforderungen
– Ich entwickle Frameworks, da kenne ich die
Anforderungen selber!
• Kulturelle Vorprägung
– Bei den indischen Kollegen existiert zuwenig Angst vor
Komplexität - die wäre aber angebracht!
Matthias Bohlen
Therapie-Ansätze
• Für "Stars"
– Bremsen, anhalten: reflektieren, dokumentieren lassen
– Blick für den gesamten Software-Lebenszyklus schärfen
• Mit der Programmierung ist die Software nicht abgeschlossen, es
kommen noch Wartung und Betrieb
– Falls das Ergebnis schon deployt ist:
• Star in den Second Level Support für das setzen, was er selbst
entwickelt hat
– Wenn alles nichts hilft:
• Auf tatsächlich neue, kurze, komplexe Aufgabe ansetzen
• Planungshilfe leisten, um Rückfall in NIH zu verhindern
• Gründlichen, "dickfelligen" Arbeiter als Peer an die Seite stellen
• Star von der Aufgabe schnell wieder abziehen
Matthias Bohlen
Therapie-Ansätze (2)
• Für Junioren
– Grenzen aufzeigen
– Schulungen, Trainings, Coaching anbieten
– "Hackathons" und Code Camps organisieren
Hier können die "Stars" helfen
– Einen erfahrenen Peer im Alltag an die Seite stellen
Matthias Bohlen
Erfolgskontrolle
• Design-Entscheidungen von
erfahrenen Architekten begleiten lassen
– insbesondere die "Make or Buy" Entscheidungen!
• Regelmäßige Code-Reviews durchführen
• Regelmäßige Erfolgskontrolle
– Gibt es jetzt weniger Bugs?
– Kommt für den User jetzt mehr sichtbare
Funktionalität heraus?
– Arbeiten die Leute jetzt an wirklich wichtigen,
projektspezifischen Non-Standard-Aufgaben?
Präventivmaßnahmen
Wie kann ich NIH in meinem Projekt
verhindern?
Matthias Bohlen
Vorbeugen statt heilen
• Architekturteam installieren
– Vorschreiben, dass neue Komponenten nur in
Absprache mit den Architekten anzulegen sind
• Regelmäßige Rückbetrachtungen am Ende
einer Iteration durchführen
– Wieviel User-relevante Funktionalität geschaffen?
– Wieviele neue Komponenten entstanden?
• Ausbildung
– Den Blick über das eigene Projekt hinaus weiten
– Leute einmal im Jahr auf eine Konferenz schicken
– Teilnahme an einem weltweit tätigen Open Source
Projekt ermöglichen
Matthias Bohlen
Weiter vorbeugen
• Feedback geben
– "Christian hat ein Open Source
Persistenzframework mit Erfolg eingesetzt und
dadurch viel Zeit gespart, danke, Christian!"
– "Sandra hat in der Kaffeepause erfahren, dass das
Problem mit den Caches im Parallelprojekt bereits
gelöst ist und hat es bei uns genauso gelöst,
danke Sandra!"
– "Frank hat erfahren, wie die Leute von apache.org
das implementiert haben und konnte unsere leicht
fehleranfällige Eigenimplementierung entfernen,
danke, Frank!"
Matthias Bohlen
Zusammenfassung / Diskussion
• "Not invented here" Syndrom ist kostspielig
• Früh erkennen
• Individuell therapieren
• Entschlossen vorbeugen
• Fragen?
• Anregungen?
mbohlen@mbohlen.de
http://www.mbohlen.de
+49 170 772 8545

Weitere ähnliche Inhalte

Andere mochten auch

SILBANDO UN VALS
SILBANDO UN VALSSILBANDO UN VALS
SILBANDO UN VALSJorge Llosa
 
Can I Haz Memes? Über Memes in der PR
Can I Haz Memes? Über Memes in der PRCan I Haz Memes? Über Memes in der PR
Can I Haz Memes? Über Memes in der PRFrank Krings
 
Taller marketing en redes sociales (II)
Taller marketing en redes sociales (II)Taller marketing en redes sociales (II)
Taller marketing en redes sociales (II)Base
 
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesChristian Güdemann
 
El Pueblo Rojo De Francia
El Pueblo Rojo De FranciaEl Pueblo Rojo De Francia
El Pueblo Rojo De FranciaJorge Llosa
 
El Eco De La Vida
El Eco De La VidaEl Eco De La Vida
El Eco De La VidaJorge Llosa
 
Swap Grub
Swap GrubSwap Grub
Swap GrubPablewz
 
reflexiones tics
reflexiones ticsreflexiones tics
reflexiones ticsArvy Ruiz
 
28. OpenNetwork Event 2013; Präsentation HS Mittweida-neue Studiengänge
28. OpenNetwork Event 2013; Präsentation HS Mittweida-neue Studiengänge28. OpenNetwork Event 2013; Präsentation HS Mittweida-neue Studiengänge
28. OpenNetwork Event 2013; Präsentation HS Mittweida-neue StudiengängeCommunity MINTsax.de
 
Bonsais Y Confucio
Bonsais Y ConfucioBonsais Y Confucio
Bonsais Y ConfucioJorge Llosa
 
UNA CARTA DE GEORGE CARLIN
UNA CARTA DE GEORGE CARLINUNA CARTA DE GEORGE CARLIN
UNA CARTA DE GEORGE CARLINJorge Llosa
 
CATEDRAL DE BURGOS
CATEDRAL DE BURGOSCATEDRAL DE BURGOS
CATEDRAL DE BURGOSJorge Llosa
 
Victor Hugo Poema Te Deseo
Victor Hugo   Poema Te DeseoVictor Hugo   Poema Te Deseo
Victor Hugo Poema Te DeseoJorge Llosa
 
El destino de cada uno
El destino de cada unoEl destino de cada uno
El destino de cada unoJorge Llosa
 
Olimpiadas Londres 2012
Olimpiadas Londres 2012Olimpiadas Londres 2012
Olimpiadas Londres 2012eCGlobal
 
Dave Depper Press Update
Dave Depper Press UpdateDave Depper Press Update
Dave Depper Press UpdateCitySlang
 

Andere mochten auch (20)

Extraescolars2012 2013
Extraescolars2012 2013Extraescolars2012 2013
Extraescolars2012 2013
 
SILBANDO UN VALS
SILBANDO UN VALSSILBANDO UN VALS
SILBANDO UN VALS
 
Can I Haz Memes? Über Memes in der PR
Can I Haz Memes? Über Memes in der PRCan I Haz Memes? Über Memes in der PR
Can I Haz Memes? Über Memes in der PR
 
Taller marketing en redes sociales (II)
Taller marketing en redes sociales (II)Taller marketing en redes sociales (II)
Taller marketing en redes sociales (II)
 
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
 
El Pueblo Rojo De Francia
El Pueblo Rojo De FranciaEl Pueblo Rojo De Francia
El Pueblo Rojo De Francia
 
El Eco De La Vida
El Eco De La VidaEl Eco De La Vida
El Eco De La Vida
 
Swap Grub
Swap GrubSwap Grub
Swap Grub
 
reflexiones tics
reflexiones ticsreflexiones tics
reflexiones tics
 
28. OpenNetwork Event 2013; Präsentation HS Mittweida-neue Studiengänge
28. OpenNetwork Event 2013; Präsentation HS Mittweida-neue Studiengänge28. OpenNetwork Event 2013; Präsentation HS Mittweida-neue Studiengänge
28. OpenNetwork Event 2013; Präsentation HS Mittweida-neue Studiengänge
 
Bonsais Y Confucio
Bonsais Y ConfucioBonsais Y Confucio
Bonsais Y Confucio
 
El Mar
El MarEl Mar
El Mar
 
EGAPE IKASTOLA2015
EGAPE IKASTOLA2015EGAPE IKASTOLA2015
EGAPE IKASTOLA2015
 
UNA CARTA DE GEORGE CARLIN
UNA CARTA DE GEORGE CARLINUNA CARTA DE GEORGE CARLIN
UNA CARTA DE GEORGE CARLIN
 
Ihr Geschäftsbericht im Internet
Ihr Geschäftsbericht im InternetIhr Geschäftsbericht im Internet
Ihr Geschäftsbericht im Internet
 
CATEDRAL DE BURGOS
CATEDRAL DE BURGOSCATEDRAL DE BURGOS
CATEDRAL DE BURGOS
 
Victor Hugo Poema Te Deseo
Victor Hugo   Poema Te DeseoVictor Hugo   Poema Te Deseo
Victor Hugo Poema Te Deseo
 
El destino de cada uno
El destino de cada unoEl destino de cada uno
El destino de cada uno
 
Olimpiadas Londres 2012
Olimpiadas Londres 2012Olimpiadas Londres 2012
Olimpiadas Londres 2012
 
Dave Depper Press Update
Dave Depper Press UpdateDave Depper Press Update
Dave Depper Press Update
 

Ähnlich wie Not invented here – wie Teams besser zusammenarbeiten können

Quantitatives Management von Entwicklungsvorhaben
Quantitatives Management von EntwicklungsvorhabenQuantitatives Management von Entwicklungsvorhaben
Quantitatives Management von EntwicklungsvorhabenMatthias Bohlen
 
Lean Development = Überdrehter Motor in der Entwicklung?
Lean Development = Überdrehter Motor in der Entwicklung?Lean Development = Überdrehter Motor in der Entwicklung?
Lean Development = Überdrehter Motor in der Entwicklung?Matthias Bohlen
 
Warum Sie mit Scrum keinen Erfolg haben werden - Marc Bless - OOP 2015
Warum Sie mit Scrum keinen Erfolg haben werden - Marc Bless - OOP 2015Warum Sie mit Scrum keinen Erfolg haben werden - Marc Bless - OOP 2015
Warum Sie mit Scrum keinen Erfolg haben werden - Marc Bless - OOP 2015Marc Bless
 
Was Sie zu Lessons Learned und Retrospektiven wissen müssen –der KVP im Proje...
Was Sie zu Lessons Learned und Retrospektiven wissen müssen –der KVP im Proje...Was Sie zu Lessons Learned und Retrospektiven wissen müssen –der KVP im Proje...
Was Sie zu Lessons Learned und Retrospektiven wissen müssen –der KVP im Proje...AnnaPauels
 
Mumenthaler_Innovationsmanagement
Mumenthaler_InnovationsmanagementMumenthaler_Innovationsmanagement
Mumenthaler_InnovationsmanagementRudolf Mumenthaler
 
Kreativprozessmodelle @ Design Thinking Community Hamburg
Kreativprozessmodelle @ Design Thinking Community HamburgKreativprozessmodelle @ Design Thinking Community Hamburg
Kreativprozessmodelle @ Design Thinking Community HamburgJens Otto Lange
 
Ovo-Botschafter 2012
Ovo-Botschafter 2012Ovo-Botschafter 2012
Ovo-Botschafter 2012Atizo AG
 
Wie begeistere ich Mitarbeiter für das Web 2.0
Wie begeistere ich Mitarbeiter für das Web 2.0Wie begeistere ich Mitarbeiter für das Web 2.0
Wie begeistere ich Mitarbeiter für das Web 2.0Bauranda
 
Praktischer Einstieg zu Outcome-Driven Innovation
Praktischer Einstieg zu Outcome-Driven InnovationPraktischer Einstieg zu Outcome-Driven Innovation
Praktischer Einstieg zu Outcome-Driven InnovationMatthias Feit
 
Mumenthaler innovationsmanagement agmb
Mumenthaler innovationsmanagement agmbMumenthaler innovationsmanagement agmb
Mumenthaler innovationsmanagement agmbRudolf Mumenthaler
 
Wie ein kleiner Product Owner Grossartiges bewirken kann
Wie ein kleiner Product Owner Grossartiges bewirken kannWie ein kleiner Product Owner Grossartiges bewirken kann
Wie ein kleiner Product Owner Grossartiges bewirken kannBjörn Schotte
 
Product Leadership - Wie deutsche Product Leader ihre Teams führen
Product Leadership - Wie deutsche Product Leader ihre Teams führenProduct Leadership - Wie deutsche Product Leader ihre Teams führen
Product Leadership - Wie deutsche Product Leader ihre Teams führenRainer Gibbert
 
Stay calm & keep shipping - iOS DevCon 2013
Stay calm & keep shipping - iOS DevCon 2013Stay calm & keep shipping - iOS DevCon 2013
Stay calm & keep shipping - iOS DevCon 2013superflomo
 
Software-Entwicklung Im Team
Software-Entwicklung Im TeamSoftware-Entwicklung Im Team
Software-Entwicklung Im TeamStephan Schmidt
 
Product owner: Wunderkind oder Sündenbock? Sibylle Peter
Product owner: Wunderkind oder Sündenbock? Sibylle PeterProduct owner: Wunderkind oder Sündenbock? Sibylle Peter
Product owner: Wunderkind oder Sündenbock? Sibylle PeterCorimbus GmbH
 
Innovationsmanagement in Bibliotheken - Methoden und Trends
Innovationsmanagement in Bibliotheken - Methoden und TrendsInnovationsmanagement in Bibliotheken - Methoden und Trends
Innovationsmanagement in Bibliotheken - Methoden und TrendsRudolf Mumenthaler
 
Typische Lügen im Projektmanagement | Ralf C. Adam
Typische Lügen im Projektmanagement | Ralf C. AdamTypische Lügen im Projektmanagement | Ralf C. Adam
Typische Lügen im Projektmanagement | Ralf C. AdamRalf C. Adam
 
Photos And Feedack From Innovation Workshop In Dusseldorf
Photos And Feedack From Innovation Workshop In DusseldorfPhotos And Feedack From Innovation Workshop In Dusseldorf
Photos And Feedack From Innovation Workshop In Dusseldorfmjames1
 
Auf Diaet, Nuernberg 11 March 2010
Auf Diaet, Nuernberg 11 March 2010Auf Diaet, Nuernberg 11 March 2010
Auf Diaet, Nuernberg 11 March 2010Pierluigi Pugliese
 

Ähnlich wie Not invented here – wie Teams besser zusammenarbeiten können (20)

Quantitatives Management von Entwicklungsvorhaben
Quantitatives Management von EntwicklungsvorhabenQuantitatives Management von Entwicklungsvorhaben
Quantitatives Management von Entwicklungsvorhaben
 
Lean Development = Überdrehter Motor in der Entwicklung?
Lean Development = Überdrehter Motor in der Entwicklung?Lean Development = Überdrehter Motor in der Entwicklung?
Lean Development = Überdrehter Motor in der Entwicklung?
 
Mini-Training - Video 2: VERHÄLTNISSE
Mini-Training - Video 2: VERHÄLTNISSEMini-Training - Video 2: VERHÄLTNISSE
Mini-Training - Video 2: VERHÄLTNISSE
 
Warum Sie mit Scrum keinen Erfolg haben werden - Marc Bless - OOP 2015
Warum Sie mit Scrum keinen Erfolg haben werden - Marc Bless - OOP 2015Warum Sie mit Scrum keinen Erfolg haben werden - Marc Bless - OOP 2015
Warum Sie mit Scrum keinen Erfolg haben werden - Marc Bless - OOP 2015
 
Was Sie zu Lessons Learned und Retrospektiven wissen müssen –der KVP im Proje...
Was Sie zu Lessons Learned und Retrospektiven wissen müssen –der KVP im Proje...Was Sie zu Lessons Learned und Retrospektiven wissen müssen –der KVP im Proje...
Was Sie zu Lessons Learned und Retrospektiven wissen müssen –der KVP im Proje...
 
Mumenthaler_Innovationsmanagement
Mumenthaler_InnovationsmanagementMumenthaler_Innovationsmanagement
Mumenthaler_Innovationsmanagement
 
Kreativprozessmodelle @ Design Thinking Community Hamburg
Kreativprozessmodelle @ Design Thinking Community HamburgKreativprozessmodelle @ Design Thinking Community Hamburg
Kreativprozessmodelle @ Design Thinking Community Hamburg
 
Ovo-Botschafter 2012
Ovo-Botschafter 2012Ovo-Botschafter 2012
Ovo-Botschafter 2012
 
Wie begeistere ich Mitarbeiter für das Web 2.0
Wie begeistere ich Mitarbeiter für das Web 2.0Wie begeistere ich Mitarbeiter für das Web 2.0
Wie begeistere ich Mitarbeiter für das Web 2.0
 
Praktischer Einstieg zu Outcome-Driven Innovation
Praktischer Einstieg zu Outcome-Driven InnovationPraktischer Einstieg zu Outcome-Driven Innovation
Praktischer Einstieg zu Outcome-Driven Innovation
 
Mumenthaler innovationsmanagement agmb
Mumenthaler innovationsmanagement agmbMumenthaler innovationsmanagement agmb
Mumenthaler innovationsmanagement agmb
 
Wie ein kleiner Product Owner Grossartiges bewirken kann
Wie ein kleiner Product Owner Grossartiges bewirken kannWie ein kleiner Product Owner Grossartiges bewirken kann
Wie ein kleiner Product Owner Grossartiges bewirken kann
 
Product Leadership - Wie deutsche Product Leader ihre Teams führen
Product Leadership - Wie deutsche Product Leader ihre Teams führenProduct Leadership - Wie deutsche Product Leader ihre Teams führen
Product Leadership - Wie deutsche Product Leader ihre Teams führen
 
Stay calm & keep shipping - iOS DevCon 2013
Stay calm & keep shipping - iOS DevCon 2013Stay calm & keep shipping - iOS DevCon 2013
Stay calm & keep shipping - iOS DevCon 2013
 
Software-Entwicklung Im Team
Software-Entwicklung Im TeamSoftware-Entwicklung Im Team
Software-Entwicklung Im Team
 
Product owner: Wunderkind oder Sündenbock? Sibylle Peter
Product owner: Wunderkind oder Sündenbock? Sibylle PeterProduct owner: Wunderkind oder Sündenbock? Sibylle Peter
Product owner: Wunderkind oder Sündenbock? Sibylle Peter
 
Innovationsmanagement in Bibliotheken - Methoden und Trends
Innovationsmanagement in Bibliotheken - Methoden und TrendsInnovationsmanagement in Bibliotheken - Methoden und Trends
Innovationsmanagement in Bibliotheken - Methoden und Trends
 
Typische Lügen im Projektmanagement | Ralf C. Adam
Typische Lügen im Projektmanagement | Ralf C. AdamTypische Lügen im Projektmanagement | Ralf C. Adam
Typische Lügen im Projektmanagement | Ralf C. Adam
 
Photos And Feedack From Innovation Workshop In Dusseldorf
Photos And Feedack From Innovation Workshop In DusseldorfPhotos And Feedack From Innovation Workshop In Dusseldorf
Photos And Feedack From Innovation Workshop In Dusseldorf
 
Auf Diaet, Nuernberg 11 March 2010
Auf Diaet, Nuernberg 11 March 2010Auf Diaet, Nuernberg 11 March 2010
Auf Diaet, Nuernberg 11 March 2010
 

Mehr von Matthias Bohlen

"Einmal durch" in 90 Minuten
"Einmal durch" in 90 Minuten"Einmal durch" in 90 Minuten
"Einmal durch" in 90 MinutenMatthias Bohlen
 
WJAX 2016: Liefern, schon vor dem Schätzen!
WJAX 2016: Liefern, schon vor dem Schätzen!WJAX 2016: Liefern, schon vor dem Schätzen!
WJAX 2016: Liefern, schon vor dem Schätzen!Matthias Bohlen
 
TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rei...
TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rei...TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rei...
TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rei...Matthias Bohlen
 
Architektur = Kommunikation
Architektur = KommunikationArchitektur = Kommunikation
Architektur = KommunikationMatthias Bohlen
 
Softskills fördern den Projekterfolg
Softskills fördern den ProjekterfolgSoftskills fördern den Projekterfolg
Softskills fördern den ProjekterfolgMatthias Bohlen
 
Patterns effektiv einsetzen
Patterns effektiv einsetzenPatterns effektiv einsetzen
Patterns effektiv einsetzenMatthias Bohlen
 
Warum Manager zu Designern werden müssen
Warum Manager zu Designern werden müssenWarum Manager zu Designern werden müssen
Warum Manager zu Designern werden müssenMatthias Bohlen
 
Mehr Geld durch mehr Wert
Mehr Geld durch mehr WertMehr Geld durch mehr Wert
Mehr Geld durch mehr WertMatthias Bohlen
 
Anforderungen, Architektur, Projektvertrag – ein Trio von Freunden(?)
Anforderungen, Architektur, Projektvertrag – ein Trio von Freunden(?)Anforderungen, Architektur, Projektvertrag – ein Trio von Freunden(?)
Anforderungen, Architektur, Projektvertrag – ein Trio von Freunden(?)Matthias Bohlen
 
Medizin und Marketing – die Rolle des Softwarearchitekten heute
Medizin und Marketing – die Rolle des Softwarearchitekten heuteMedizin und Marketing – die Rolle des Softwarearchitekten heute
Medizin und Marketing – die Rolle des Softwarearchitekten heuteMatthias Bohlen
 
Gebrauchsanleitung für die Projektmatrix
Gebrauchsanleitung für die ProjektmatrixGebrauchsanleitung für die Projektmatrix
Gebrauchsanleitung für die ProjektmatrixMatthias Bohlen
 
WJAX 2014: Pah, ArchitekturDoku, darauf habe ich keine Lust!
WJAX 2014: Pah, ArchitekturDoku, darauf habe ich keine Lust!WJAX 2014: Pah, ArchitekturDoku, darauf habe ich keine Lust!
WJAX 2014: Pah, ArchitekturDoku, darauf habe ich keine Lust!Matthias Bohlen
 
WJAX 2014: Na klar muss alles "gestern" fertig sein
WJAX 2014: Na klar muss alles "gestern" fertig seinWJAX 2014: Na klar muss alles "gestern" fertig sein
WJAX 2014: Na klar muss alles "gestern" fertig seinMatthias Bohlen
 
Softwarearchitektur entwerfen ohne dabei verrückt zu werden
Softwarearchitektur entwerfen ohne dabei verrückt zu werdenSoftwarearchitektur entwerfen ohne dabei verrückt zu werden
Softwarearchitektur entwerfen ohne dabei verrückt zu werdenMatthias Bohlen
 
WJAX 2012: Agile Teams im Gleichgewicht
WJAX 2012: Agile Teams im GleichgewichtWJAX 2012: Agile Teams im Gleichgewicht
WJAX 2012: Agile Teams im GleichgewichtMatthias Bohlen
 
Der entspannte Architekt
Der entspannte ArchitektDer entspannte Architekt
Der entspannte ArchitektMatthias Bohlen
 
Architektur vs Agilität
Architektur vs AgilitätArchitektur vs Agilität
Architektur vs AgilitätMatthias Bohlen
 
Risikomanagement mit Real Options
Risikomanagement mit Real OptionsRisikomanagement mit Real Options
Risikomanagement mit Real OptionsMatthias Bohlen
 
STOP IT: Schätzen, verschätzen, nachverhandeln
STOP IT: Schätzen, verschätzen, nachverhandelnSTOP IT: Schätzen, verschätzen, nachverhandeln
STOP IT: Schätzen, verschätzen, nachverhandelnMatthias Bohlen
 

Mehr von Matthias Bohlen (20)

"Einmal durch" in 90 Minuten
"Einmal durch" in 90 Minuten"Einmal durch" in 90 Minuten
"Einmal durch" in 90 Minuten
 
WJAX 2016: Liefern, schon vor dem Schätzen!
WJAX 2016: Liefern, schon vor dem Schätzen!WJAX 2016: Liefern, schon vor dem Schätzen!
WJAX 2016: Liefern, schon vor dem Schätzen!
 
TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rei...
TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rei...TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rei...
TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rei...
 
Architektur = Kommunikation
Architektur = KommunikationArchitektur = Kommunikation
Architektur = Kommunikation
 
Softskills fördern den Projekterfolg
Softskills fördern den ProjekterfolgSoftskills fördern den Projekterfolg
Softskills fördern den Projekterfolg
 
Patterns effektiv einsetzen
Patterns effektiv einsetzenPatterns effektiv einsetzen
Patterns effektiv einsetzen
 
Warum Manager zu Designern werden müssen
Warum Manager zu Designern werden müssenWarum Manager zu Designern werden müssen
Warum Manager zu Designern werden müssen
 
Mehr Geld durch mehr Wert
Mehr Geld durch mehr WertMehr Geld durch mehr Wert
Mehr Geld durch mehr Wert
 
Anforderungen, Architektur, Projektvertrag – ein Trio von Freunden(?)
Anforderungen, Architektur, Projektvertrag – ein Trio von Freunden(?)Anforderungen, Architektur, Projektvertrag – ein Trio von Freunden(?)
Anforderungen, Architektur, Projektvertrag – ein Trio von Freunden(?)
 
Medizin und Marketing – die Rolle des Softwarearchitekten heute
Medizin und Marketing – die Rolle des Softwarearchitekten heuteMedizin und Marketing – die Rolle des Softwarearchitekten heute
Medizin und Marketing – die Rolle des Softwarearchitekten heute
 
Gebrauchsanleitung für die Projektmatrix
Gebrauchsanleitung für die ProjektmatrixGebrauchsanleitung für die Projektmatrix
Gebrauchsanleitung für die Projektmatrix
 
WJAX 2014: Pah, ArchitekturDoku, darauf habe ich keine Lust!
WJAX 2014: Pah, ArchitekturDoku, darauf habe ich keine Lust!WJAX 2014: Pah, ArchitekturDoku, darauf habe ich keine Lust!
WJAX 2014: Pah, ArchitekturDoku, darauf habe ich keine Lust!
 
WJAX 2014: Na klar muss alles "gestern" fertig sein
WJAX 2014: Na klar muss alles "gestern" fertig seinWJAX 2014: Na klar muss alles "gestern" fertig sein
WJAX 2014: Na klar muss alles "gestern" fertig sein
 
Softwarearchitektur entwerfen ohne dabei verrückt zu werden
Softwarearchitektur entwerfen ohne dabei verrückt zu werdenSoftwarearchitektur entwerfen ohne dabei verrückt zu werden
Softwarearchitektur entwerfen ohne dabei verrückt zu werden
 
WJAX 2012: Agile Teams im Gleichgewicht
WJAX 2012: Agile Teams im GleichgewichtWJAX 2012: Agile Teams im Gleichgewicht
WJAX 2012: Agile Teams im Gleichgewicht
 
Der entspannte Architekt
Der entspannte ArchitektDer entspannte Architekt
Der entspannte Architekt
 
Lean architecture
Lean architectureLean architecture
Lean architecture
 
Architektur vs Agilität
Architektur vs AgilitätArchitektur vs Agilität
Architektur vs Agilität
 
Risikomanagement mit Real Options
Risikomanagement mit Real OptionsRisikomanagement mit Real Options
Risikomanagement mit Real Options
 
STOP IT: Schätzen, verschätzen, nachverhandeln
STOP IT: Schätzen, verschätzen, nachverhandelnSTOP IT: Schätzen, verschätzen, nachverhandeln
STOP IT: Schätzen, verschätzen, nachverhandeln
 

Not invented here – wie Teams besser zusammenarbeiten können

  • 1. Not invented here "Soft Bugs" finden und reparieren Matthias Bohlen <mbohlen@mbohlen.de>
  • 2. Matthias Bohlen Agenda • Was ist das NIH-Syndrom? • Warum ist NIH wichtig? • Wie kann man das Syndrom erkennen? • Wie kann man es therapieren? • Welche Präventivmaßnahmen kann man ergreifen? • Q&A Session
  • 3. Matthias Bohlen Matthias Bohlen – das Profil • Unabhängiger Berater – Architektur, Software-Engineering – Objekt- und Komponententechnologien – Modellgetriebene Software-Entwicklung, MDA • Dienstleistungen:  Analyse, Design, Architektur  Project jump start  Technische Projektleitung  Therapie für Projekte in der Krise  Beratung  Schulung  Trainings  Coaching
  • 5. Einführung: NIH - Not invented here Was ist das? Wie äußert sich das?
  • 6. Matthias Bohlen NIH definieren • Es gibt zwei Bedeutungen von NIH: – ich mache etwas selbst, was es bereits gibt – ich akzeptiere einen Vorschlag nicht, weil der Vorschlagende aus einer anderen Gruppe kommt • In diesem Vortrag geht es um NIH im ersten Sinne, nicht im zweiten.
  • 7. Matthias Bohlen So fängt NIH an... • Entwickler bemerkt, dass er Objekte in einer Datenbank speichern muss • Er glaubt, dass O/R-Mapper wie JPA oder Hibernate überdimensioniert sind: – "Ich brauche ja nur eine Zeile pro Objekt in eine Tabelle zu schreiben, dabei jedes Attribut in eine eigene Spalte, mehr nicht." – "Das sollte mittels JDBC in einem Tag zu realisieren sein." • Tatsächlich: Der Prototyp läuft in einem Tag!
  • 8. Matthias Bohlen Das Schicksal nimmt seinen Lauf... • "Oh, bisher kann ich nur String-Attribute im Objekt, ich brauche aber auch Integer und Double-Werte." • Der Prototyp wird um Datenformatierungsklassen angereichert. • Der zweite Tag ist um.
  • 9. Matthias Bohlen Das Grauen... • "Hmmm, ich brauche wohl auch persistente Beziehungen zwischen den Objekten." • Der Prototyp wird um Fremdschlüsselverwaltung angereichert. • Bis es tut, ist eine Woche um.
  • 10. Matthias Bohlen ...nimmt Formen an... • "Hmmm, 1:n Beziehungen und n:m Beziehungen sind vom Kunden auch gefordert." • "Ach, ich kann Objekte nur laden und speichern, aber nicht updaten". • Der Prototyp wird innerhalb 4 Wochen um Zwischentabellenverwaltung und das Laden und Speichern von Collections ergänzt. • Weitere 4 Wochen werden benötigt, um den Prototyp um Schattenkopieverwaltung und Differenzermittlung für UPDATE-Statements zu ergänzen.
  • 11. Matthias Bohlen Schließlich der Kollaps • Jetzt wird das Ausmaß der Anforderungen endlich klar: – Oh, ich muss abgeleitete Klassen auch können. Und polymorphe Beziehungen auch! – Oh Schreck, verschiedene Datenbanken muss ich unterstützen und Caching für die Performance brauch ich auch! – Und was ist eigentlich mit Multi-User-Zugriffen? • "Jetzt muss ich ja alles refaktorisieren und große Teile neu machen!" • Entwickler gibt auf und gesteht, dass er nun doch Hibernate einsetzen wird. Der Teamleiter fragt: "Und was hast Du die letzten 8 Wochen gemacht?"
  • 12. Matthias Bohlen Risiken bei NIH • Entwicklungskosten steigen im Projekt • Wartungskosten steigen nach dem Projekt • Qualität ist gering, da wenig getestet – "Frischer" (nicht-trivialer) Code hat immer mehr Bugs als "reifer" (oft benutzter, getesteter und debuggter Code). • Bekannte Standardfehler werden noch einmal gemacht • Best practices werden nicht genutzt
  • 13. Matthias Bohlen Beispiele für NIH • Warum entwickeln Menschen so etwas? Und zwar immer wieder? – Persistenzframeworks – Loggingframeworks – Validierungsframeworks – Druckaufbereitung und Reporting – Data Binding – Rule Engines – XML Parser – GUI-Generatoren – Cache-Verwaltung – Sogar Verschlüsselung, unvorstellbar!
  • 14. Die Ursachen für NIH Warum verhalten Menschen sich so?
  • 15. Matthias Bohlen Vermeintliche Ursachen • Für den mit dem Hammer ist alles ein Nagel • Ich fühle mich wohl mit meinen bekannten Tools • Ich selbst kann es sicher am besten • Ich mache das mal schnell, die anderen brauchen immer so lange... • Ich brauche ja keine Riesenlösung, sondern nur schnell dieses kleine Programm... • Es tut nicht ganz das was ich will • Eine Library-Funktion aufzurufen kostet zu viel CPU-Zeit • Ich wusste nicht, dass die Funktion / Library / der Code existiert • Ich hätte es anders gemacht
  • 16. Matthias Bohlen In Wahrheit... • Die Chemie im Gehirn – Lust: • Melatonine, Oxytocine • Serotonin, Dopamin – Stress: • Adrenalin, Cortisol • Glückshormone bei/nach großer Anstrengung – die schwere Geburt – das Erlegen des großen Tieres nach schnellem Lauf – die Auflösung eines intellektuellen Problems • Bekanntes Muster aus der Natur!
  • 17. Matthias Bohlen Der "Heureka"-Effekt • Prof. Dr. Henning Scheich Leiter des Leibniz-Instituts für Neurobiologie in Magdeburg: – "Aha-Effekt führt zur Ausschüttung von Dopamin, das die Motivation aufrecht erhält und weitere Opiat- Ausschüttung anregt." – "Gehirn belohnt sich selbst, bringt sich in gute Stimmung, wenn es etwas gelöst hat und speichert es auch noch ab!" http://www.ifn-magdeburg.de/en/departments/auditory_learning_and_speech/index.jsp
  • 18. Matthias Bohlen Abgekürzt heißt das: • Etwas neu erfinden ist halt cool! • Und macht mehr Spaß als etwas Existierendes richtig zu evaluieren und kosteneffizient einzusetzen!
  • 19. Abhilfe Wie können wir das NIH Syndrom heilen?
  • 20. Matthias Bohlen Machen wir's wie ein Arzt • Anamnese - was ging schief? • Diagnose - woran liegt's? • Therapie beginnen • Regelmäßig nachsteuern • Nachuntersuchung, Erfolgskontrolle
  • 21. Matthias Bohlen Anamnese • Frühindikatoren beachten – Ein Feature geht sehr schnell, danach dauert alles länger als erwartet – Es kommt für den User keine sichtbare Funktionalität mehr hinzu! – Der Code sieht übermäßig kompliziert aus – Die Bugs nehmen nicht ab • Reviews durchführen – Aufgabenstellung überprüfen: Musste dieser Code überhaupt entwickelt werden? • Design-Entscheidungen nachlesen – "Make or Buy" - wurde das überhaupt erwogen?
  • 22. Matthias Bohlen Diagnose - woran liegt's? • Mangelnde Tool-Marktkenntnis • Selbstüberschätzung • Tunnelblick • Unterforderung – "Star", "Local Hero", "Programmiergenie" • Mangelnde konkrete Anforderungen – Ich entwickle Frameworks, da kenne ich die Anforderungen selber! • Kulturelle Vorprägung – Bei den indischen Kollegen existiert zuwenig Angst vor Komplexität - die wäre aber angebracht!
  • 23. Matthias Bohlen Therapie-Ansätze • Für "Stars" – Bremsen, anhalten: reflektieren, dokumentieren lassen – Blick für den gesamten Software-Lebenszyklus schärfen • Mit der Programmierung ist die Software nicht abgeschlossen, es kommen noch Wartung und Betrieb – Falls das Ergebnis schon deployt ist: • Star in den Second Level Support für das setzen, was er selbst entwickelt hat – Wenn alles nichts hilft: • Auf tatsächlich neue, kurze, komplexe Aufgabe ansetzen • Planungshilfe leisten, um Rückfall in NIH zu verhindern • Gründlichen, "dickfelligen" Arbeiter als Peer an die Seite stellen • Star von der Aufgabe schnell wieder abziehen
  • 24. Matthias Bohlen Therapie-Ansätze (2) • Für Junioren – Grenzen aufzeigen – Schulungen, Trainings, Coaching anbieten – "Hackathons" und Code Camps organisieren Hier können die "Stars" helfen – Einen erfahrenen Peer im Alltag an die Seite stellen
  • 25. Matthias Bohlen Erfolgskontrolle • Design-Entscheidungen von erfahrenen Architekten begleiten lassen – insbesondere die "Make or Buy" Entscheidungen! • Regelmäßige Code-Reviews durchführen • Regelmäßige Erfolgskontrolle – Gibt es jetzt weniger Bugs? – Kommt für den User jetzt mehr sichtbare Funktionalität heraus? – Arbeiten die Leute jetzt an wirklich wichtigen, projektspezifischen Non-Standard-Aufgaben?
  • 26. Präventivmaßnahmen Wie kann ich NIH in meinem Projekt verhindern?
  • 27. Matthias Bohlen Vorbeugen statt heilen • Architekturteam installieren – Vorschreiben, dass neue Komponenten nur in Absprache mit den Architekten anzulegen sind • Regelmäßige Rückbetrachtungen am Ende einer Iteration durchführen – Wieviel User-relevante Funktionalität geschaffen? – Wieviele neue Komponenten entstanden? • Ausbildung – Den Blick über das eigene Projekt hinaus weiten – Leute einmal im Jahr auf eine Konferenz schicken – Teilnahme an einem weltweit tätigen Open Source Projekt ermöglichen
  • 28. Matthias Bohlen Weiter vorbeugen • Feedback geben – "Christian hat ein Open Source Persistenzframework mit Erfolg eingesetzt und dadurch viel Zeit gespart, danke, Christian!" – "Sandra hat in der Kaffeepause erfahren, dass das Problem mit den Caches im Parallelprojekt bereits gelöst ist und hat es bei uns genauso gelöst, danke Sandra!" – "Frank hat erfahren, wie die Leute von apache.org das implementiert haben und konnte unsere leicht fehleranfällige Eigenimplementierung entfernen, danke, Frank!"
  • 29. Matthias Bohlen Zusammenfassung / Diskussion • "Not invented here" Syndrom ist kostspielig • Früh erkennen • Individuell therapieren • Entschlossen vorbeugen • Fragen? • Anregungen? mbohlen@mbohlen.de http://www.mbohlen.de +49 170 772 8545