Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace:...

24
© 2017 andrena objects ag Experts in agile software engineering Erfahrungsbericht eines Nexus Integration Team Mitglieds Entwicklertag Karlsruhe 23.05.2017 David Burkhart Jan Baumann [email protected] [email protected]

Transcript of Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace:...

Page 1: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

ErfahrungsberichteinesNexusIntegrationTeamMitglieds

EntwicklertagKarlsruhe23.05.2017

DavidBurkhart

JanBaumann

[email protected]

[email protected]

Page 2: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Experts inagilesoftware engineering2

©scrum.org

Page 3: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Experts inagilesoftware engineering3

• ProductOwner• ScrumMaster• Einem oder mehreren NexusIntegrationTeam

Mitgliedern• Typischerweise aus denScrumTeams• Zugehörigkeit im NIThatVorrang überZugehörigkeit im ScrumTeam

• Zusammensetzung ändert sich jenach denBedürfnissen desNexus

DasNexusIntegrationTeamlautdemNexusGuide

©scrum.org

Page 4: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

DasNexusIntegrationTeamlautdemNexusGuide

Mitglieder desNexusIntegrationTeamssollten

• Technisch versiert sein• Gute SoftSkillsbesitzen• Ein “ServantLeader”Mindsethaben• Sich als CommunityofCoachesverstehen• IndenScrumTeamsarbeiten• Möglichst aus Mitgliedern derScrumTeamsrekrutiert werden

4

Page 5: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

DasNexusIntegrationTeamlautdemNexusGuide

DasNexusIntegrationTeam

• Hilft beim Koordinieren vonArbeiten zwischen denTeams• Hält dasThema Abhängigkeiten dauerhaft im Bewusstsein desNexus• Stellt Wissen undNutzung vonIntegrationspraktiken und-Toolssicher• Dienst als Consultants,CoachesundKommunikationsvermittler• Unterstützt denNexusbei derArbeit amBacklog,fallsnötig undsinnvoll• Kümmert sich umgemeinsame Infrastruktur undArchitektur• Macht kontinuierlich denStandderIntegrationtransparent

5

Page 6: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

DasNexusIntegrationTeamlautdemNexusGuide

DasNexusIntegrationTeamist dafür“accountable”

dass mindestens amEnde jeden Sprintesein IntegratedIncrementproduziert wird.

6

Page 7: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

DasNexusIntegrationTeam– Fragen?

7

Page 8: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

HerzlichenGlückwunsch- EuerProjektistnunskaliert!

8

• BrownfieldProjekt,6Teamsan3Standorten• Nexusgabes noch nicht,Safewaruns zu schwer,Anlehnung anLess• Wie kriegen wir ein IntegratedIncrement?K.I.S.S.!

• Gemeinsame DefinitionofDone• Qualität vonneuem Codefokussieren• Abhängigkeiten früh entdecken undkommunizieren• Konflikte im VCSdurch ContinuousIntegrationminimieren• Tägliche Abstimmung über denStandderIntegration

Page 9: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering9

• Ziele:• Erkennen vonAbhängigkeiten• Regelmäßige Integrationmit Absicherung durch TestsundMetriken

• Idee:• Einführung eines teamübergreifenden Dailiesmit Teamrepräsentanten

• PositiveEffekte:• Awarenessfür dieFokus Themen konnte geschaffen werden• Gefühlt sind dieTeamstrotz geographischer Verteilung zusammen gerückt

• Größte Schmerzen:• DasMeetingdauerte teilweise über 45Minuten• Absichern desIntegratedDoneIncrementsgelang häufig nicht

Iteration#1- OhneNexusIntegrationTeam- WechselndeLeute

Page 10: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

Iteration#2- Hurra wir machen Nexus!Auf,Auf,NIT!

• Ziel:• Sicherstellen derQualität desIntegratedIncrements

• Idee:• Festes Teamaus erfahrenen Entwicklern derScrumTeams

• PositiveEffekte:• Meetingdauer aufetwa 30Minuten eingependelt• Sichtbare Verbesserungen bei derTestabdeckung unddenMetriken• Bessere IntegrationundErkennung vonAbhängigkeiten

• Größte Schmerzen:• Einbindung derNITMitglieder indieTeamsführt zu Konflikten

10

Page 11: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

Iteration#3- DasVollzeit NexusIntegation Team

• Ziel:• Weniger Zeitkonflikte undmehr Fokus

• Idee:• Zwei feste Vollzeit NexusIntegrationTeamMitglieder

• PositiveEffekte:• NexusIntegrationTeamTätigkeiten nicht länger durch Konflikte gefährdet• NexusIntegrationTeamwird Ansprechpartner für viele Fragestellungen• Dailyinetwa 15-20Minuten

• Größte Schmerzen:• Kann sich vor Arbeit garnicht retten :-)

11

Page 12: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

NobodyExpects… Was?

12

Page 13: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

WaswarderKommentarderTeamsdazu?

Expertsinagilesoftwareengineering13

Page 14: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

UndwashaltendieTeamsdavon?

14

0 10 20 30 40 50 60 70 80 90 100

HatzueinerVerbesserungbeiTestsundMetrikengeführt

HatzueinerVerbesserungbeiderIntegrationgeführt

HatmirbeiAbhängigkeitengeholfen

HatmirschonbeiUmsetzungsfragenhelfenkönnen

HatmirbeiderVerbesserugmeinerSkillshelfenkönnen

Istsinnvoll

Stimmezu Stimmenichtzu

Page 15: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Ansprech- undSparringPartner fürFragenrundum• CodeQualität• CodeDesign• Testing• Tooling• Verbesserungsideen

Sicherstellen,dassAbläufederEntwicklung funktionieren• Releasewechsel• NexusDaily• Nightly Deployment

Experts inagilesoftware engineering15

AufgabendesNexusIntegrationTeam:Vision(1)

Page 16: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Coaching• AufWunsch• BeiBedarf• Bedarferkennen

DieQualitätdesIntegratedDone Increment sicherstellen• Tooling• Analysen• Reviews• Feedback-Mechanismen• AutomatisierteReports/

Monitoring

Experts inagilesoftware engineering16

AufgabendesNexusIntegrationTeam:Vision(2)

Page 17: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Experts inagilesoftware engineering17

AufgabendesNexusIntegrationTeam:Konkret

• Violations überprüfen,besprechen,coachenodermarkieren• Coverage überprüfen,Codereviewen,besprechen• FeatureBranches überprüfen,besprechen• Nightly Build überprüfen,analysieren,dispatchen• Abhängigkeitenüberprüfen,nachfragen,besprechen• TeamSupportbeifachlichenundtechnischenFragestellungen

RegelmäßigeAufgaben

Page 18: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

NexusBoard

• KompletterSprint-Überblick• Abhängigkeiten• Sprint-Ziele• AlleMöglichkeiteneines

physischenBoards

Experts inagilesoftware engineering18

AufgabendesNexusIntegrationTeam:Werkzeuge

Page 19: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Dashboards

• Jenkins,SonarQube,Dynatrace:FokusaufQualitätderIntegration

• Jira,Confluence:FokusaufAbhängigkeiten undÜberschneidungen

Experts inagilesoftware engineering19

AufgabendesNexusIntegrationTeam:Werkzeuge

https://wiki.jenkins-ci.org/display/JENKINS/Build+Monitor+Plugin

Page 20: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Dashboards

• Jenkins,SonarQube,Dynatrace:FokusaufQualitätderIntegration

• Jira,Confluence:FokusaufAbhängigkeiten undÜberschneidungen

Experts inagilesoftware engineering20

AufgabendesNexusIntegrationTeam:Werkzeuge

https://docs.sonarqube.org/display/SONARQUBE53/Project+Space

Page 21: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Reports

• FeatureBranches:FokusaufKontinuierlicheIntegration

Experts inagilesoftware engineering21

AufgabendesNexusIntegrationTeam:Werkzeuge

http://nvie.com/posts/a-successful-git-branching-m

odel/

Page 22: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Experts inagilesoftware engineering

DasNexusIntegrationTeam– Fragen!

22

Page 23: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Experts inagilesoftware engineering23

Fazit

K.I.S.S.

Inspect &Adapt

HerausforderungSkalierungNexusinderPraxis

Bottleneck vermeiden

Page 24: Erfahrungsbericht eines Nexus Integration Team Mitglieds · • Jenkins, SonarQube, Dynatrace: Fokus auf Qualität der Integration • Jira, Confluence: Fokus auf Abhängigkeitenund

©2017andrenaobjectsag

Expertsinagilesoftwareengineering

Material

• https://www.scrum.org/resources/scaling-scrum• https://www.scrum.org/resources/nexus-integration-team• https://www.scrum.org/resources/blog/9-keys-understand-nexus-integration-team• MontyPython‘s FlyingCircusEpisode15„TheSpanish Inquisition“

• https://de.wikipedia.org/wiki/Die_Spanische_Inquisition

24