Upload
stephan-schmidt
View
1.343
Download
0
Embed Size (px)
Citation preview
23DINGE,die Sie über Software-Entwicklung in Teams wissen sollten.
1
Stephan SchmidtHead of Web Sales Development @ 1&1 Internet AG
17.04.2012
23DINGE,die Sie über Software-Entwicklung in Teams wissen sollten.
2
NICHT UNBEDINGTTOTAL NEUE
Stephan SchmidtHead of Web Sales Development @ 1&1 Internet AG
17.04.2012
DALE,YOGI‘BERRA‣ Spielte von 1946 bis 1964
professionellen Baseball in der Major League.
‣ Erst Spieler, dann Trainer.
‣ Bekannt für seine Yogiisms.
THEORIE VS PRAXIS‣ Die Präsentation beruht auf meiner Erfahrung.
‣ Die Regeln funktionierten und funktionieren in meinen Teams.
‣ Einige funktionieren in allen Teams, andere abgewandelt oder auch gar nicht.
‣ Versuchen Sie, das heute theoretisch vermittelte Wissen in Ihrer Praxis anzuwenden.
7
COLLECTIVE CODE OWNERSHIP
‣ Der gesamte Code gehört allen Entwicklern.
‣ Alle Entwickler sind dazu aufgefordert an allen Stellen Bugs zu fixen, Refactorings durchzuführen oder neue Ideen einzubringen.
‣ Vermeidet Flaschenhälse in ihrem Team und macht den Code besser.
‣ Sie profitieren von den Stärken aller Teammitglieder.
10
REVISIONS-KONTROLLE
‣ Nur dadurch werden parallel Änderungen an einem Projekt möglich.
‣ Es ist egal, welches System Sie einsetzen, aber tun Sie's.
‣ CVS (wenn‘s denn sein muss)
‣ Subversion
‣ GIT oder Mercurial oder anderen hippen Scheiss.
12
STANDARDISIERUNG DER IDE
‣ Spart Zeit bei neuen Instanzen.
‣ Idealerweise installiert die EDV-Abteilung nur noch ein Image für Entwickler.
‣ In vielen Unternehmen schwer einzuführen, da das Thema religiöse Sprengkraft hat.
‣ Ist den Stress der Diskussion jedoch trotzdem wert.
‣ In unserem Team noch eine Stunde statt zwei Tagen.
15
CODING STANDARDS
‣ Spart Zeit, da sich jeder Entwickler im Code der anderen Entwickler zurecht findet.
‣ Hier gilt wieder: Es ist egal, welchen Standard Sie einsetzen, aber tun Sie's.
‣ Die SUN-Standards sind ein guter Ausgangspunkt.
17
STANDARDS EINHALTEN
‣ Nur ein angewandter Standard ist ein sinnvoller Standard.
‣ Sinnvoll: Integration in den Build-Prozess und die IDE.
‣ Umstritten: Integration in SVN Pre-Commit-Hooks oder Deployment.
‣ Schrittweise einführen.
19
CODE REVIEWS‣ Sind nicht einfach einzuführen, Entwickler sind
sensible Geschöpfe.
‣ Sie schlagen zwei Fliegen mit einer Klappe:
‣ Ihr Code wird besser.
‣ Sie lernen voneinander.
‣ Ihr Team hält besser zusammen.
21
DER BUILD IST REPRODUZIERBAR
‣ Spart Ihnen Zeit (ja, schon wieder).
‣ Spart Ihnen Ärger.
‣ Bei jedem neuen Mitarbeiter müssen diese Schritte ausreichen:
23
$ svn co http://example.com/svn/trunk project$ cd project$ mvn tomcat:run$ // oder ähnliches
TESTEN SIE IHREN CODE
‣ Im Team wird der Code von verschiedenen Entwicklern erstellt oder modifiziert.
‣ Tests ermöglichen Entwicklern zu prüfen, ob die Änderung negative Auswirkungen hat.
‣ Tests nehmen dem Team die Angst, Änderungen durchzuführen.
‣ „Tests“ sind nicht manuelle Tests, also „Coden Sie Ihren Test und testen Sie Ihren Code“.
26
CONTINUOUS INTEGRATION
‣ Build wird in regelmäßigen Abständen oder nach jedem Check-In angestoßen.
‣ Dabei wird immer ein vollständiger Build erzeugt und alle Tests ausgeführt.
‣ Fehler werden dadurch sofort entdeckt und nicht verschleppt.
‣ Verhindert das Auftreten des „Broken Window“ Phänomens.
29
CONTINUOUS DELIVERY
‣ Stoppen Sie nicht nach dem erfolgreichen Kompilieren und Durchführen der automatisierten Tests.
‣ Bauen Sie eine Deployment-Pipline auf und Integrieren Sie auch andere Teams außerhalb der Entwicklung.
‣ Wenn es weh tut, tun Sie es noch öfter.
‣ Bis Sie das „One-Click-Deployment“ erreicht haben.
31
KOMMUNIKATION IST KING
‣ Verstehen die Entwickler, was der Kunde möchte?
‣ Versteht der Kunde, was der Entwickler liefern kann?
‣ Verstehen die Entwickler gegenseitig wirklich, wie die Schnittstellen aussehen?
‣ Verstehen die Entwickler, was die Qualitätssicherung braucht?
‣ Verstehen Sie, was ich damit sagen will?
39
KOMMUNIKATIONS-MITTEL
‣ Treffen von Angesicht zu Angesicht.
‣ Treffen von Angesicht zu Angesicht.
‣ Treffen von Angesicht zu Angesicht.
‣ Videokonferenzen & Telefonkonferenzen.
‣ E-Mails & Instant Messenger.
‣ Projekt-Blogs, Microblogging & Twitter.
42
GEMEINSAME ERLEBNISSE
‣ Gemeinsame private Erlebnisse stärken das Teamgefühl und fördern die Zusammenarbeit.
‣ Das gilt nicht nur für gemeinsame Essen, jedoch ist der Effekt dabei besonders groß.
‣ Schaffen Sie Rituale.
47
PROZESSMODELLE‣ Wasserfall-Modell
‣ Hat in meinen Projekten noch nie funktioniert.
‣ Wir bauen Software, keine Häuser.
‣ Agile Prozesse
‣ Versprechen deutlich höhere Erfolgschancen.
‣ Bitte nicht sklavisch einhalten.
49
DREI PROZESSE EINES PROJEKTS
‣ Der offizielle Prozess, entspricht so gut wie nie der Realität.
‣ Der wahrgenommene Prozess, ist meist Kombination aus Wunschdenken und Fehlinterpretation.
‣ Der tatsächliche Prozess.
51
Machen Sie den Prozess, der dafür sorgt, dass Sie zu Lösungen kommen
explizit.
AGILE PROJEKTPLANUNG
‣ „Planning is guessing.“ ist keine Ausrede, um nicht planen zu müssen.
‣ Planen Sie, aber implementieren Sie mehr, als Sie planen.
‣ Passen Sie Ihre Planung an, wenn sich Rahmenbedingungen der ursprünglichen Planung ändern.
54
GAMIFICATION‣ Nutzen Sie das „Continuous Integration Game“ für
Jenkins.
‣ MS Visual Studio bietet ein Plugin, das den Entwicklern Badges verleiht.
‣ Vergeben Sie Punkte für gefixte Bugs und eingehaltene Standards.
‣ Entwickler können verschiedene Level erreichen.
59
DIE WELT IST IM WANDEL
‣ Anforderungen werden sich immer ändern.
‣ Technologien und Methodiken auch.
‣ Nehmen Sie Änderungen freudig an.
‣ Agile Methoden stellen Ihnen dafür Werkzeuge zur Verfügung.
63
WANDEL HERBEIFÜHREN
‣ Wenn sich sowieso alles ändert, dann sollten Sie die Änderungen möglichst früh feststellen.
‣ Oder besser noch: Stoßen Sie die Änderungen an.
‣ Die Geschichte „Who moved my cheese?“ von Spencer Johnson hilft Ihnen dabei.
65
„Was wären wir sündigen Kreaturen dann ohne die Angst, diese vielleicht wohltätigste und gnädigste Gabe Gottes?“
68
Umberto Eco, "Der Name der Rose"
SIE LEBEN IN EINER KULTUR DER ANGST, WENN...
‣ …es gefährlich ist, bestimmte Dinge auszusprechen.
‣ …Zielvorgaben so aggressiv sind, dass diese unmöglich erreicht werden können.
‣ …Macht über gesunden Menschen-verstand triumphieren darf.
‣ …die Leute, die gehen müssen, sind im Durchschnitt kompetenter als die, die bleiben.
69Aus „Spielräume“ von Tom DeMarco