Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile Softwareentwicklung mit den Atlassian-Werkzeugen

Agile Softwareentwicklung mit den Atlassian-Werkzeugen

Alexander Müller

May 27, 2015
Tweet

More Decks by Alexander Müller

Other Decks in Technology

Transcript

  1. codecentric  AG Seit 05/14: IT Consultant, codecentric AG
 11/11 -

    11/14: Software Engineer, db-central GmbH
 09/11 - 10/11: Research Assistant, Mobile Human-Computer Interaction Group,
 Universität Duisburg-Essen
 06/11 - 09/11: Research Associate, Computing Department, Lancaster University
 11/10 - 05/11: Research Assistant, Pervasive Computing and User Interface
 Engineering Group, Universität Duisburg-Essen
 05/11 - 05/11: Visiting Researcher, Telekom Innovation Labs, Technische Universität
 Berlin Alexander Müller - Wer ist das? (Auszug) 2
  2. codecentric  AG Wer arbeitet in einem agilen Umfeld? Scrum, Kanban,

    Extreme Programming, Crystal, Lean, Feature Driven Development, Kick-Ass Software Development… Umfrage 7
  3. codecentric  AG Just a refresher 11 Individuals and interactions over

    processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  4. codecentric  AG Just a refresher 12 Our highest priority is

    to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
  5. codecentric  AG Worum geht es wirklich? 14 glückliche Kunden bessere

    Software weniger Overhead schnellere Entwicklung glückliche Entwickler
  6. codecentric  AG 21 A problem has been detected and this

    presentation has been shutdown to prevent damage to your mind. The problems seems to be caused by sleeping audience. WAKE_UP_OR_YOU_MISS_THE_GOOD_PARTS If this is the first time you’ve seen this Stop error screen, reopen your eyes. If this screen appears again, follow these steps: Check to make sure any previous slide is properly understood. If there is new information, ask your speaker for any information you are struggling with. If problems continue, disable or remove any outdated knowledge. Disable special memory options such as alcohol or sleep deprivation. Technical information: *** STOP: 0xDEADBEEF (0xCAFEBABE, 0xBADC0DED, 0xC001D00D) Bessere Software
  7. codecentric  AG Exkurs: Continuous…? 39 Continuous  Integration Continuous  Delivery automatische

     Builds  und  Tests Release  auf  Knopfdruck   jederzeit  möglich
  8. codecentric  AG Exkurs: Continuous…? 40 Continuous  Integration Continuous  Delivery Continuous

     Deployment automatische  Builds  und  Tests Release  auf  Knopfdruck   jederzeit  möglich Knopfdruck  nicht  mehr  notwendig
  9. codecentric  AG Was ist das Ziel? 50 Das  Feature  soll

     zum  Kunden knowyourmeme.com ©  pixabay.com,   intern:  zum  Benutzer
  10. codecentric  AG Was ist das Ziel? 51 Das  Feature  soll

     zum  Kunden knowyourmeme.com ©  pixabay.com,   intern:  zum  Benutzer Feedback
  11. codecentric  AG Schritt 1: Rückverfolgbarkeit 52 Anforderungsdokumente Lastenheft Pflichtenheft Use

     Cases User  Stories Customer  Journeys Story  Maps Spezifikationen ©  pixabay.com,   #3 #14 #159 #26 #5 #358 #97 eindeutige  Identifikatoren
  12. codecentric  AG 54 In  welchem  Zustand  befinden  sich   das

     Feature?   Wer  ist  für  das  Feature   verantwortlich?   Was  muss  noch  getan  werden? Schritt 1: Rückverfolgbarkeit
  13. codecentric  AG 55 Schritt 2: Branching master 1.1 1.2 Baue

     eine  Festung  für   master The  Castle  of  Belogradchik,  ©  Klearchos  Kapoutsis  2009,  CC-­‐BY-­‐2.0
  14. codecentric  AG 59 Jedes  Feature  bekommt  seinen   eigenen  Branch.

      Es  wird  ein  gescheites   Versionskontrollsystem  benötigt.   (Git  und  Mercurial  eignen  sich  besonders  gut.)   Der  Branch  wird  zurückgeführt,   sobald  die  Entwicklung  an  dem   Feature  abgeschlossen  ist. Schritt 2: Branching
  15. codecentric  AG 61 Schritt 3: Automatische Tests Test-­‐Driven  Development? Antares

     CRS  Orb-­‐3  Mission,  ©  NASA/Joel  Kowsky  2014 feature/RD-­‐20
  16. codecentric  AG 62 Schritt 3: Automatische Tests develop feature/RD-­‐20 master

    feature/RD-­‐2 1.1 1.2 Tests  sind  erfolgreich Tests  schlagen  fehl
  17. codecentric  AG 64 Schritt 3: Automatische Tests Jede  Änderung  in

     jedem  Branch  wird   automatisch  getestet.   (Continuous  Integration)   Voraussetzung  für  den  Merge  von   Branches  (Teil  1):   Alle  Tests  sind  erfolgreich.
  18. codecentric  AG 68 Schritt 4: Code Reviews Das  Entwicklungsteam  trägt

     die   Verantwortung  für  die   Qualitätssicherung.   Voraussetzung  für  den  Merge  von   Branches  (Teil  2):   Code  muss  von  anderen  Mitgliedern   des  Teams  geprüft  worden  sein.
  19. codecentric  AG 69 Schritt 4: Code Reviews Alle  Voraussetzungen  müssen

      erfüllt  sein,  damit  Code  zurückgeführt   werden  kann.
  20. codecentric  AG 71 Schritt 5: Merging und Release Die  Zurückführung

     des  Branches   (Merging)  ist  einfach.   Nicht  mehr  benötigte  Branches   werden  automatisch  entfernt.   Bamboo  kann  automatisch   ein  Release  erzeugen.
  21. codecentric  AG 72 Schritt 6: Automatisches Deployment Why  I’ll  Never

     be  an  Adult,  ©  Hyperbole  and  a  Half
  22. codecentric  AG 73 Schritt 6: Automatisches Deployment Deployments  werden  automatisch

      durchgeführt.   Verschiedene  Umgebungen  können   das  Ziel  des  Deployments  sein.   Hier:  Ziel  ist  ein  QA-­‐System  für   automatisierte  UI-­‐Tests.
  23. codecentric  AG Glückliche Entwickler: Mehr Code, weniger Stress 77 Branch

      erstellt Commit Pull  Request   Branch   merged Status:  In  Progress Status:  In  Review Status:  Closed
  24. codecentric  AG 80 ES GEHT NICHT UM DIE WERKZEUGE ABER

    GUTE WERKZEUGE MACHEN DAS LEBEN EINFACHER ©  2006  Martinroell,  CC-­‐BY-­‐SA-­‐2.5
  25. codecentric  AG Fragen? Alexander Müller codecentric AG Merscheider Straße 1

    42699 Solingen [email protected] www.codecentric.de blog.codecentric.de speakerdeck.com/alexandermueller @visusnet 81