Transcript
Page 1: Mehr Softwarequalität: Team-Cleancoding

Seite 2 / 59 Team Clean Coding: Gemeinsam besser programmieren

Team Clean Coding:

Gemeinsam besser programmieren

iks Thementag

„Mehr Softwarequalität – Ausgewählte Themen“

12.11.2013

Autor:

Dr. Reik Oberrath

Page 2: Mehr Softwarequalität: Team-Cleancoding

Was ist das Ziel der Softwareentwicklung?

Page 3: Mehr Softwarequalität: Team-Cleancoding

Ein Produkt, das

den Auftraggeber

zufrieden stellt!

Page 4: Mehr Softwarequalität: Team-Cleancoding

Und einen zuverlässigen, effektiven Herstellungsprozess!

Page 5: Mehr Softwarequalität: Team-Cleancoding

Seite 6 / 59 Team Clean Coding: Gemeinsam besser programmieren

Das Produkt (Finales Ziel mit

Selbstzweck)

Der Entwicklungs-

prozess (Zwischenziel, nur

Mittel zum Zweck)

Was ist wichtiger?

Page 6: Mehr Softwarequalität: Team-Cleancoding

Seite 7 / 59 Team Clean Coding: Gemeinsam besser programmieren

Architektur

Design Technologie

Code

Architektur

Design Technologie

Code

Funktionalität

Testbarkeit

Wartbarkeit

Usability Zuverlässigkeit

Prüfbarkeit Installierbarkeit

Änderbarkeit

Performanz Sicherheit

extern

intern

Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg

Qu

alitä

t

Page 7: Mehr Softwarequalität: Team-Cleancoding

Seite 8 / 59 Team Clean Coding: Gemeinsam besser programmieren

Das Produkt (Finales Ziel mit

Selbstzweck)

Der Entwicklungs-

prozess (Zwischenziel, nur

Mittel zum Zweck)

Was ist wichtiger?

extern

intern

Produkt und Prozess

sind gleich wichtig

Qu

alitä

t

Page 8: Mehr Softwarequalität: Team-Cleancoding

Der Faktor

„Mensch“

Architektur und

Implementation Tools

&

Technologien

Was beeinflusst den Entwicklungsprozess?

Page 9: Mehr Softwarequalität: Team-Cleancoding

Seite 10 / 59 Team Clean Coding: Gemeinsam besser programmieren

Agenda

Einleitung

Die Clean-Code-Developer-Bewegung

Meinungen zu Clean-Code

Das Team Clean Coding (TCC)

TCC-Rahmenbedingungen

Take-Home-Message

Page 10: Mehr Softwarequalität: Team-Cleancoding

Seite 11 / 59 Team Clean Coding: Gemeinsam besser programmieren

Def. 1: Clean ist alles, was intuitiv verständlich ist, also

(Quellcode-) Dokumente, Datenstrukturen,

Konzepte, Regeln, Verfahren ....

Def. 2: Intuitiv verständlich ist, was mit wenig Spezialwissen

in kurzer Zeit richtig verstanden wird.

Was heißt clean?

Def. 3: Clean ist alles, was effizient ist, also alles, was

die Softwareentwicklung beschleunigt.

Page 11: Mehr Softwarequalität: Team-Cleancoding
Page 12: Mehr Softwarequalität: Team-Cleancoding

Seite 13 / 59 Team Clean Coding: Gemeinsam besser programmieren

Kernaussagen der

Clean-Code-Developer-Bewegung

Disziplin Ständige Selbstkontrolle („Bewusstsein“)

durch konsequente Anwendung („gegen

widrige Umstände“) des inneren Werte-

systems („Prinzipien“).

Wertesystem Das Buch „Clean Code“ ist wert, als

allgemeingültiges Wertesystem anerkannt

zu werden.

Programmieralltag Das CCD-Grade-System hilft, das innere

Wertesystem aktiv einzusetzen und die

mentale CCD-Einstellung zu verinnerlichen. www.clean-code-developer.de

(„Professionalität“)

Page 13: Mehr Softwarequalität: Team-Cleancoding

www.iks-gmbh.com

Pri

nzip

ien

P

rakti

ken

Continuous

Integration I

Statische

Codeanalyse

(Metriken)

Inversion of

Control Container

Erfahrung

weitergeben

Messen von

Fehlern

Open Closed

Principle

Tell, don´t ask

Law of Demeter

Grün

Continuous

Integration II

Iterative

Entwicklung

Komponenten-

orientierung

Test first

Entwurf und

Implementation

überlappen nicht

Implementa-

tion spiegelt

Entwurf

You Ain´t

Gonna Need It

(YAGNI)

Blau

Automatisierte

Unit Tests

Mockups

(Testattrappen)

Code Coverage

Analyse

Teilnahme an

Fachveranstal-

tungen

Komplexe Re-

faktorisierungen

Issue Tracking

Automatisierte

Integrationstests

Lesen, Lesen,

Lesen (LLL)

Reviews

Die Pfadfinderregel

beachten

Root Cause

Analysis

Ein Versionskon-

trollsystem einsetzen

Einfache Refakto-

risierungsmuster an-

wenden (ER)

Täglich reflektieren

Interface

Segregation

Principle

Dependency

Inversion Principle

Liskov

Substitution

Principle

Principle of

Least

Astonishment

Information

Hiding Principle

Single Level of

Abstraction

(SLA)

Single

Responsibility

Principle (SRP)

Separation of

Concerns (SoC)

Source Code

Konventionen

Don´t Repeat

Yourself (DRY),

Keep it simple,

stupid (KISS)

Vorsicht vor

Optimierungen

(VvO)

Favour

Composition over

Inheritance (FCoI)

Weiss Gelb Orange Rot Schwarz

Pri

nzip

ien

P

rakti

ken

Das - Grade-System:

Page 14: Mehr Softwarequalität: Team-Cleancoding

Seite 15 / 59 Team Clean Coding: Gemeinsam besser programmieren

Agenda

Einleitung

Die Clean-Code-Developer-Bewegung

Meinungen zu Clean-Code

Das Team Clean Coding (TCC)

TCC-Rahmenbedingungen

Take-Home-Message

Page 15: Mehr Softwarequalität: Team-Cleancoding

www.iks-gmbh.com

Clean-Code ist gut, man kann es aber leicht übertreiben!

Clean-Code ist gut, aber praxisfern – eher etwas für Ästheten!

Page 16: Mehr Softwarequalität: Team-Cleancoding

www.iks-gmbh.com

Ein Organismus verträgt nur ein begrenztes Maß an Schadstoffen.

Durch kontinuierliche Arbeit wird dieses Maß klein gehalten.

Page 17: Mehr Softwarequalität: Team-Cleancoding

www.iks-gmbh.com

Wichtig sind Funktionsfähigkeit, Stabilität, Wartbarkeit und Erweiterbarkeit.

Dazu braucht man keinen Clean-Code!

Clean-Code ist was für Spießer – wichtig ist nur, dass es läuft!

Page 18: Mehr Softwarequalität: Team-Cleancoding

Seite 19 / 59 Team Clean Coding: Gemeinsam besser programmieren

Sauberer Code – Hohe Testabdeckung

Produktionscode

Testabdeckung

Testcode

Schmutz akkumuliert von alleine.

Schmutz stellt eine reale Gefahr für die Entwicklung dar.

Page 19: Mehr Softwarequalität: Team-Cleancoding

Seite 20 / 59 Team Clean Coding: Gemeinsam besser programmieren Unter Zeitdruck wird dann sowieso wieder „Quick & Dirty“ gearbeitet!

Page 20: Mehr Softwarequalität: Team-Cleancoding

Seite 21 / 59 Team Clean Coding: Gemeinsam besser programmieren

CCD-Professionalität

leben und seinen Prinzipien

treu bleiben.

Technische Schulden

bewusst eingehen und

bewusst wieder begleichen.

Termine

Termine

Qualität

Qualität

Kosten

Kosten

Page 21: Mehr Softwarequalität: Team-Cleancoding

Clean Code kostet zusätzliche Zeit

in der Entwicklung!

Clean Code spart Zeit

in der Wartung!

Page 22: Mehr Softwarequalität: Team-Cleancoding

Seite 23 / 59 Team Clean Coding: Gemeinsam besser programmieren

Langlebigkeit

Kritikalit

ät

Page 23: Mehr Softwarequalität: Team-Cleancoding

Seite 24 / 59 Team Clean Coding: Gemeinsam besser programmieren

Agenda

Einleitung

Die Clean-Code-Developer-Bewegung

Meinungen zu Clean-Code

Das Team Clean Coding (TCC)

TCC-Rahmenbedingungen

Take-Home-Message

Page 24: Mehr Softwarequalität: Team-Cleancoding

Seite 25 / 59 Team Clean Coding: Gemeinsam besser programmieren

Zusammenhang zwischen CCD und TCC

Unterschiede:

Es gibt zusätzliche Regeln, die das Teamplay betreffen

z.B. 1€-Regel oder Code-Tagging

Appell an die Vernunft der Entwickler zu schwach,

eine soziale Form von Kontrolle ist nötig

Prinzipien,

Praktiken,

Selbstkontrolle

Teamarbeit,

Kommunikation,

Teamkontrolle

Page 25: Mehr Softwarequalität: Team-Cleancoding

Seite 26 / 59 Team Clean Coding: Gemeinsam besser programmieren

Das Team Clean Coding

Warum TCC?

Gute Vorsätze schwinden schnell Verrottung

Unterschiedliche Meinungen Wildwuchs

Mittel gegen die „Durchsetzungsstarken“

(Die Stillen sind nicht automatisch schlechter)

Eine soziale, wechselseitige Kontrolle auf Augenhöhe

Motivation durch wortlose Anerkennung

Page 26: Mehr Softwarequalität: Team-Cleancoding

Seite 27 / 59 Team Clean Coding: Gemeinsam besser programmieren

Das Team Clean Coding: Übersicht

Initialisierung

Anwendung

Optimierung

Kontrolle

Def. der

Legislative

Grund-

gesetz

Konsti-

tution

Executive

Parla-

ment

Legislative

Judikative

Ordnungs-

amt

Page 27: Mehr Softwarequalität: Team-Cleancoding

Seite 28 / 59 Team Clean Coding: Gemeinsam besser programmieren

TC

C-Ü

be

rsic

ht

Initialisierung

Def. der

Legislative

Grund-

gesetz

Executive

Parla-

ment

Legislative

Judikative

Ordnungs-

amt

Konsti-

tution

Page 28: Mehr Softwarequalität: Team-Cleancoding

Seite 29 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC: „Verfassung/Konstitution“

Notwendiger Basis-Konsens

§1.1 ALLE Teammitglieder (inkl. Projektleitung) verpflichten sich,

Regeln und Prozesse anzuerkennen, die für ALLE gleicher-

maßen bindend sind.

§1.2 Diese Regeln und Prozesse können bei Bedarf jederzeit

angepasst werden.

§2 Zuerst wird ein Verfahren zur Entscheidungsfindung festgelegt

(Definition der „Legislative“).

§3 Die „Legislative“ legt einen Satz von Basisregeln fest

(das „Grundgesetz“).

Page 29: Mehr Softwarequalität: Team-Cleancoding

Seite 30 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC: „Verfassung/Legislative“

Methoden zur Entscheidungsfindung

Vorgabe durch Projektleiter / Chefentwickler / Architekt

Mehrheitsbeschluss

Minimierung des durchschn. Widerstands

– Vetoabfrage

– Konsensrunde

– Thumb-Voting

„Konsens bedeutet die Übereinstimmung von Menschen hinsichtlich einer

Thematik ohne verdeckten oder offenen Widerspruch.“ - Wikipedia

Page 30: Mehr Softwarequalität: Team-Cleancoding

Seite 31 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC: „Verfassung/Grundgesetz“

Basisregeln (Projekt-unspezifische Regeln)

§3.1 Wie wollen wir Information festhalten? → Dokumentation

§3.2 Was bedeutet für uns „fertig“? → Definition Of Done

Page 31: Mehr Softwarequalität: Team-Cleancoding

Seite 32 / 59 Team Clean Coding: Gemeinsam besser programmieren

Ein Anwendungsfall läuft

Die guten Anwendungsfälle laufen

Fehlerfälle wurden untersucht

Alle Anwendungsfälle laufen

Unit-Tests

Integrationstests

Systemtests

Automatische Code-Analysen (Metriken)

Menschliche Code-Analysen (Review)

Page 32: Mehr Softwarequalität: Team-Cleancoding

Seite 33 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC: „Verfassung/Grundgesetz“

Projekt-unspezifische Grundregeln

§3.1 Wie wollen wir Information festhalten? → Dokumentation

§3.2 Was bedeutet für uns „fertig“? → Definition Of Done

§3.3 Was heißt für uns „clean“? → CCD-Regeln

§3.4 Wie gehen wir mit unfertigem Code um? → Code Tagging System

§3.5 Wie ist unser Umgang mit „fremdem Eigentum“?

Page 33: Mehr Softwarequalität: Team-Cleancoding

Seite 34 / 59 Team Clean Coding: Gemeinsam besser programmieren

TC

C-Ü

be

rsic

ht

Initialisierung

Def. der

Legislative

Grund-

gesetz

Executive

Parla-

ment

Legislative

Judikative

Ordnungs-

amt

Konsti-

tution

Optimierung Anwendung

Basiskonsens

Methode der

Entscheidungsfindung

Projekt-

unspezifische

Regeln

Page 34: Mehr Softwarequalität: Team-Cleancoding

Seite 35 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC: „Exekutive“

Programmieralltag (Anforderungen analysieren,

implementieren, Qualität sichern, …)

CCD- und TCC-Regeln im Bewusstsein halten

Seinem Berufsethos auch unter widrigen Umständen treu bleiben

Page 35: Mehr Softwarequalität: Team-Cleancoding

Seite 36 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC: „Parlament/Legislative“

Forum für Informationsaustausch und Diskussionen sowie

Verabschiedung weiterer (Projekt-spezifischer) Regeln

Daily Standups (Scrum-ähnlich)

Regelmäßige Team-Reviews

Retrospektiven

Pair-Programming

Coding-Notes kommunizieren (z.B. E-Mail an Team-Verteiler)

Page 36: Mehr Softwarequalität: Team-Cleancoding

Seite 37 / 59 Team Clean Coding: Gemeinsam besser programmieren

TC

C-Ü

be

rsic

ht

Initialisierung

Def. der

Legislative

Grund-

gesetz

Executive

Parla-

ment

Legislative

Judikative

Ordnungs-

amt

Konsti-

tution

Optimierung Anwendung

Basiskonsens

Methode der

Entscheidungsfindung

Projekt-

unspezifische

Regeln

Kontrolle

Diskussions-

forum

Projektalltag Projekt-

spezifische

Regeln

Page 37: Mehr Softwarequalität: Team-Cleancoding

Seite 38 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC: „Ordnungsamt“

4 - Review

Am Ende der Entwicklung eines Software-Teils sucht der Autor nach

einem Teammitglied, das als Reviewer dient. Dieser prüft:

Funktionelle Korrektheit

DoD erfüllt, z.B.

– Ausreichende Testabdeckung

– Einhaltung der abgestimmten Clean-Code-Maßnahmen

FIXME- / TODO-Einträge (Code Tagging System)

Erst nach dem OK des Reviewers gilt der Teil offiziell als FERTIG.

Page 38: Mehr Softwarequalität: Team-Cleancoding

Seite 39 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC: „Judikative“

Die 1€-Regel

Ein Euro wird eingezogen bei Vergehen gegen zuvor abgestimmte

Regeln, deren Verstoß von der „Legislativen“ als „strafbar“ gewertet wurde.

Beispiele:

CI-Build brechen und nach Hause gehen,

Tests brechen und sich nicht um deren Behebung bemühen,

Backend-Änderungen ohne Client-Anpassung,

Domain-Änderungen ohne DB-Skript-Anpassung,

etc.

Page 39: Mehr Softwarequalität: Team-Cleancoding

Seite 40 / 59 Team Clean Coding: Gemeinsam besser programmieren

TC

C-Ü

be

rsic

ht 1€-Regeln

Initialisierung

Def. der

Legislative

Grund-

gesetz

Executive

Parla-

ment

Legislative

Judikative

Ordnungs-

amt

Konsti-

tution

Optimierung Anwendung

Basiskonsens

Methode der

Entscheidungsfindung

Projekt-

unspezifische

Regeln

Kontrolle

Diskussions-

forum

Projektalltag Projekt-

spezifische

Regeln

4 -

Review

Page 40: Mehr Softwarequalität: Team-Cleancoding

Seite 41 / 59 Team Clean Coding: Gemeinsam besser programmieren

Agenda

Einleitung

Die Clean-Code-Developer-Bewegung

Meinungen zu Clean-Code

Das Team Clean Coding (TCC)

TCC-Rahmenbedingungen

Take-Home-Message

Page 41: Mehr Softwarequalität: Team-Cleancoding

Seite 42 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC-Rahmenbedingungen

Teamstimmung beachten und fördern

Haufen Gruppe Team

Page 42: Mehr Softwarequalität: Team-Cleancoding

Seite 43 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC-Rahmenbedingungen

Teamstimmung beachten und fördern

Bewusste Teamzusammenstellung

Retrospektive-Meetings / gemeinsames Essengehen

Bei Bedarf Teamzusammenstellung ändern

Organisationsstruktur des Teams ändern

• Hierarchisch

• Parlamentarisch

• Selbstorganisiert

Page 43: Mehr Softwarequalität: Team-Cleancoding

Seite 44 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC-Rahmenbedingungen

Teamstimmung beachten und fördern

Zeit für Kommunikation im Team einplanen

Tägliche Standup-Meetings

Wöchentliche Code-Review-Meetings

Monatliche Retrospektive-Meetings

Page 44: Mehr Softwarequalität: Team-Cleancoding

Seite 45 / 59 Team Clean Coding: Gemeinsam besser programmieren

TCC-Rahmenbedingungen

Teamstimmung beachten und fördern

Zeit für Kommunikation im Team einplanen

Fortbildung der Teammitglieder unterstützen

Akzeptanz signalisieren und Infrastruktur bereitstellen

Page 45: Mehr Softwarequalität: Team-Cleancoding

Seite 46 / 59 Team Clean Coding: Gemeinsam besser programmieren

Agenda

Einleitung

Die Clean-Code-Developer-Bewegung

Meinungen zu Clean-Code

Das Team Clean Coding (TCC)

TCC-Rahmenbedingungen

Take-Home-Message

Page 46: Mehr Softwarequalität: Team-Cleancoding

Seite 47 / 59 Team Clean Coding: Gemeinsam besser programmieren

Das Produkt (Finales Ziel mit

Selbstzweck)

Der Entwicklungs-

prozess (Zwischenziel, nur

Mittel zum Zweck)

Was ist wichtiger?

extern

intern

Produkt und Prozess

sind gleich wichtig

Rückblick

Rückblick

Rückblick

Rückblick

Qu

alitä

t

Page 47: Mehr Softwarequalität: Team-Cleancoding

Seite 48 / 59 Team Clean Coding: Gemeinsam besser programmieren

CCD-Professionalität

leben und seinen Prinzipien

treu bleiben.

Technische Schulden

bewusst eingehen und

bewusst wieder begleichen.

Termine

Termine

Qualität

Qualität

Kosten

Kosten

Rückblick

Rückblick

Rückblick

Rückblick

Page 48: Mehr Softwarequalität: Team-Cleancoding

Seite 49 / 59 Team Clean Coding: Gemeinsam besser programmieren Gegen Schmutz muss regelmäßig gearbeitet werden!

Sauberer Code – Hohe Testabdeckung

Produktionscode

Testabdeckung

Testcode

Rückblick

Rückblick

Rückblick

Rückblick

Page 49: Mehr Softwarequalität: Team-Cleancoding

Seite 50 / 59 Team Clean Coding: Gemeinsam besser programmieren

Take-Home-Message

Herstellungsprozess und Produkt sind gleich wichtig –

technische Schulden müssen zurückgezahlt werden!

Page 50: Mehr Softwarequalität: Team-Cleancoding

Seite 51 / 59 Team Clean Coding: Gemeinsam besser programmieren

www.iks-gmbh.com

Pri

nzip

ien

P

rakti

ken

Continuous

Integration I

Statische

Codeanalyse

(Metriken)

Inversion of

Control Container

Erfahrung

weitergeben

Messen von

Fehlern

Open Closed

Principle

Tell, don´t ask

Law of Demeter

Grün

Continuous

Integration II

Iterative

Entwicklung

Komponenten-

orientierung

Test first

Entwurf und

Implementation

überlappen nicht

Implementa-

tion spiegelt

Entwurf

You Ain´t

Gonna Need It

(YAGNI)

Blau

Automatisierte

Unit Tests

Mockups

(Testattrappen)

Code Coverage

Analyse

Teilnahme an

Fachveranstal-

tungen

Komplexe Re-

faktorisierungen

Issue Tracking

Automatisierte

Integrationstests

Lesen, Lesen,

Lesen (LLL)

Reviews

Die Pfadfinderregel

beachten

Root Cause

Analysis

Ein Versionskon-

trollsystem einsetzen

Einfache Refakto-

risierungsmuster an-

wenden (ER)

Täglich reflektieren

Interface

Segregation

Principle

Dependency

Inversion Principle

Liskov

Substitution

Principle

Principle of

Least

Astonishment

Information

Hiding Principle

Single Level of

Abstraction

(SLA)

Single

Responsibility

Principle (SRP)

Separation of

Concerns (SoC)

Source Code

Konventionen

Don´t Repeat

Yourself (DRY),

Keep it simple,

stupid (KISS)

Vorsicht vor

Optimierungen

(VvO)

Favour

Composition over

Inheritance (FCoI)

Weiss Gelb Orange Rot Schwarz

Pri

nzip

ien

P

rakti

ken

Das - Grade-System:

Rückblick

Rückblick

Rückblick

Rückblick

Page 51: Mehr Softwarequalität: Team-Cleancoding

Seite 52 / 59 Team Clean Coding: Gemeinsam besser programmieren

Take-Home-Message

Herstellungsprozess und Produkt sind gleich wichtig –

technische Schulden müssen zurückgezahlt werden!

Die CCD-Regeln sind bewährte Mittel zur Steigerung von

Qualität und Effizienz

Page 52: Mehr Softwarequalität: Team-Cleancoding

Seite 53 / 59 Team Clean Coding: Gemeinsam besser programmieren

TC

C-Ü

be

rsic

ht 1€-Regeln

Initialisierung

Def. der

Legislative

Grund-

gesetz

Executive

Parla-

ment

Legislative

Judikative

Ordnungs-

amt

Konsti-

tution

Optimierung Anwendung

Basiskonsens

Methode der

Entscheidungsfindung

Projekt-

unspezifische

Regeln

Kontrolle

Diskussions-

forum

Projektalltag Projekt-

spezifische

Regeln

4 -

Review

Rückblick Rückblick

Rückblick Rückblick

Page 53: Mehr Softwarequalität: Team-Cleancoding

Seite 54 / 59 Team Clean Coding: Gemeinsam besser programmieren

Das Team Clean Coding

Warum TCC?

Gute Vorsätze schwinden schnell Verrottung

Unterschiedliche Meinungen Wildwuchs

Mittel gegen die „Durchsetzungsstarken“

(Die Stillen sind nicht automatisch schlechter)

Wechselseitige Kontrolle auf Augenhöhe

Motivation durch wortlose Anerkennung

Rückblick

Rückblick

Rückblick

Rückblick

Page 54: Mehr Softwarequalität: Team-Cleancoding

Seite 55 / 59 Team Clean Coding: Gemeinsam besser programmieren

Take-Home-Message

Herstellungsprozess und Produkt sind gleich wichtig –

technische Schulden müssen zurückgezahlt werden!

Die CCD-Regeln sind bewährte Mittel zur Steigerung von

Qualität und Effizienz

TCC fördert die Kommunikation im Team und die konsequente

Anwendung der CCD-Regeln

Rahmenbedingungen für TCC müssen stimmen

Teamstimmung beachten und fördern

Zeit für Kommunikation im Team einplanen

Fortbildung der Teammitglieder unterstützen

Akzeptanz signalisieren und Infrastruktur bereitstellen

Page 55: Mehr Softwarequalität: Team-Cleancoding

Seite 56 / 59 Team Clean Coding: Gemeinsam besser programmieren

Take-Home-Message

CCD und TCC führen zu Qualität und Effizienz,

benötigen aber Unterstützung aus dem Umfeld!

Page 56: Mehr Softwarequalität: Team-Cleancoding

Seite 57 / 59 Team Clean Coding: Gemeinsam besser programmieren

Weiterführende Literatur

Clean Code, Robert C. Martin, Prentice Hall, 2008

The Clean Coder, Robert C. Martin, Prentice Hall, 2011

Clean Coder: Verhaltensregeln für professionelle Programmierer,

Robert C. Martin, Addison-Wesley, 2011

The Pragmatic Programmer, Addison-Wesley, 1999

Soft Skills für Softwareentwickler, dpunkt-Verlag, 2010

http://www.clean-code-developer.de

http://de.wikipedia.org/wiki/Clean_Code

http://www.clean-code.info

Page 57: Mehr Softwarequalität: Team-Cleancoding

Seite 58 / 59 Team Clean Coding: Gemeinsam besser programmieren

Bildernachweise

Die in diesem Vortrag verwendeten Bilder stammen von folgenden Quellen:

Folie 3: http://www.flickr.com

Folie 4: http://www.flickr.com/photos/23313526@N07/4948442428/sizes/l/in/photostream/

http://www.flickr.com/photos/29747502@N03/2784238062/sizes/l/in/photostream/

Folie 5: http://www.flickr.com/photos/buridansesel/6163446452/sizes/l/in/photostream/

Folie 7,8,9: http://officeimg.vo.msecnd.net/en-us/images/MB900443111.jpg

http://officeimg.vo.msecnd.net/en-us/images/MB900443251.jpg

http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg

Folie 11: http://www.hborchert.de/medihumor.htm

http://hdfreewallpaper.info/fishy-ubuntu-1920-x-1080.html

Folie 12: http://photos.signonsandiego.com/album55/mud02

Folie 16: http://freepostermaker.com/uploads/saved_posters/free-poster-dnxeoi88fg-WILLIES-WASH.jpg

Folie 28: http://www.flickr.com/photos/oskay/437341603/

Page 58: Mehr Softwarequalität: Team-Cleancoding

Seite 59 / 59 Team Clean Coding: Gemeinsam besser programmieren

Weitere Bildernachweise

1. Die meisten nicht separat aufgeführten Icons stammen von

http://office.microsoft.com/en-us/images und http://office.microsoft.com/de-de/images.

2. Andere nicht aufgeführte Bilder (z.B. auf Folie 17) wurden von den Autoren selbst erstellt.

3. CCD-Logo http://www.clean-code-developer.de

4. Wasserrad http://www.wasserrad-drews.de/

Page 59: Mehr Softwarequalität: Team-Cleancoding

Fragen?

Page 60: Mehr Softwarequalität: Team-Cleancoding

www.iks-gmbh.com


Recommended