amagno-ecm-logo-header_60.png

7. Oktober 2016

Wie findet Softwareentwicklung bei AMAGNO statt?

Wie findet Softwareentwicklung bei AMAGNO statt?

Die Softwareentwicklung ist eine abwechslungsreiche und spannende Tätigkeit, welche sehr unterschiedlich durchgeführt werden kann. Damit Interessenten, Kunden und potenzielle neue Mitarbeiter:innen einen Einblick in unseren Alltag bekommen, beschreibe ich in diesem Blog-Betrag unseren Prozess und nenne Werkzeuge, die von uns eingesetzt werden.

Der grundsätzliche Ablauf bei unserer Softwareentwicklung

Wir entwickeln agil, möglichst adaptive Software. Kleine und große Änderungen an der langfristigen Planung und dem Produkt müssen jederzeit möglich und einfach durchführbar sein. Ideen und Meinungen jedes Einzelnen sind wichtig. Sie können schließlich das Produkt und den Prozess wesentlich verbessern.

Wir bedienen uns des Scrum Frameworks, wobei einige Merkmale etwas weicher umgesetzt wurden. Beispielsweise ist der Scrum Master Teil des Entwicklerteams.

Der Ursprung von Veränderungen an der Software

Das Feature (Funktionswunsch) bzw. der Defect (Mangel bzw. Fehler) kann von einem Interessenten, Kunden oder Team-Mitglied kommen. Meist wird er kurz in kleiner Runde besprochen und dann im Product Backlog (ungeordnete Ansammlung aller Anforderungen) abgelegt. Dies geschieht in unterschiedlichen Formen. Bei Features meist als User Story («Als <Rolle> möchte ich <Ziel/Wunsch>, um <Nutzen>») und bei Defects als Beschreibung des Problems inkl. Reproduktionsschritte.

Die Planung von weiteren Entwicklungen

amagno mock up powerpoint - Wie findet Softwareentwicklung bei AMAGNO statt?Die Einträge im Product Backlog werden durch den Product Owner gesichtet, priorisiert und weiter verfeinert (Ermittlung der Akzeptanzkriterien, Anlegen von Mock-ups, etc.). Dafür finden regelmäßig Treffen mit dem Team statt, welche allgemein als Backlog Grooming bekannt sind. Mock-ups werden z.B. mit PowerPoint erstellt, in AMAGNO gespeichert und als Weblink in die Aufgabe eingefügt.

Alle 2 Wochen finden die Review (Team stellt das Resultat der letzten 2 Wochen vor), die Retrospektive (Was lief gut/schlecht?) und die Planung des nächsten Sprints statt. Dabei stellt der Product Owner dem Team die nächsten Anforderungen vor, die durch die vorherigen Backlog Groomings ausgearbeitet wurden und deshalb auch schon einigen Teammitgliedern bekannt sind.

Darauf folgt die Planung und Besprechung durch das Team. Die Anforderungen werden in kleine Teilaufgaben (Tasks) zerlegt, welche durch Planning Poker geschätzt werden. Dies wird solange durchgeführt, bis die Sprint-Kapazität (welche z.B. von Urlaub und Feiertagen, aber auch von Side-Projekten der Teammitglieder abhängig ist) erreicht wurde.

Defects werden besprochen und genauer beschrieben, aber selten geschätzt. Meist werden nur gravierende Defects während eines Feature Sprints korrigiert. Die Korrektur von Defects findet während spezieller Sprints innerhalb der Wartung und Weiterentwicklung der Software statt.

Die Realisierung von Änderungen an der Software

amagno scrum board 1 - Wie findet Softwareentwicklung bei AMAGNO statt?Unser Projektmanagement findet in Axosoft statt. Die geplanten Tasks werden in das Sprint Backlog (diese Aufgaben werden innerhalb des nächsten 2 Wochen Sprints bearbeitet) überführt und nach dem Pull-Prinzip (jedes Teammitglied nimmt sich selbständig eine Aufgabe) bearbeitet. Währenddessen durchläuft die Aufgabe unterschiedliche Zuständen.

  1. In Bearbeitung
  2. Code-Review
  3. Test
  4. Dokumentation

Die einzelnen Schritte werden in der Regel von unterschiedlichen Mitglieder des Teams bearbeitet. Dadurch ist das Wissen über das neue Feature automatisch bei mehreren Mitarbeitern vorhanden.

Während der Realisierungsphase findet täglich das Stand-up meeting (auch Daily genannt) statt, bei dem jedes Teammitglied kurz und frei die folgenden Fragen beantwortet:

  • Was konnte ich seit dem letzten Daily erreichen?
  • Was möchte ich bis zum nächsten Daily erreichen?
  • Was hindert mich an meinem Ziel?

Während dieses Meetings plant das Team gemeinsam den Tag und berät sich über die nächsten Schritten.

Nach 2 Wochen Realisierung des Sprints und gelegentlichem Backlog Grooming, befindet sich die Software in einem nutzbaren, getesteten und dokumentierten Zustand und es geht nahtlos mit der Planungsphase (Review, Retrospektive, etc. – siehe oben) weiter.

Eingesetzte Werkzeuge in unserer Softwareentwicklung

amagno entwicklung - Wie findet Softwareentwicklung bei AMAGNO statt?Wir entwickeln hauptsächlich in Visual Studio und verwenden diverse Plugins (z.B. ReSharper), um die Softwareentwicklung zu erleichtern.

Neben eines Build-Servers mit Jenkins, der Code-Analyse durch SonarQube und der Versionsverwaltung durch SVN, sind diverse Testmöglichkeiten (lokale und zentrale virtuelle Machinen, physikalische Server, Cloud) vorhanden.

Für Unit-Tests verwenden wir NUnit und Moq. Die Tests laufen automatisch, nachdem die Code-Review durchgeführt wurde, das Commit für den Main Branch stattgefunden hat und ein neues Build erstellt wurde. Sobald diese Schritte erfolgreich waren, werden Installationen durch Advanced Installer generiert. Die entstandenen Build-Artefakte können dann halbautomatisch auf Testumgebungen installiert und getestet werden. Unser Build-Server unterstützt auch die Erstellung von Xamarin Apps für iOS, Android und Windows.

Die Unit Tests können auch manuell gestartet werden, um schnell Änderungen (z.B. durch Refaktorierung) und Erweiterung testen zu können. Damit die Software leichter erweitert werden kann, werden übliche Entwurfsmuster (Repository, Decorator, MVC, etc.) verwendet.

Die Dokumentation der entwickelten Software (Handbuch, How To, Architektur, etc.) findet mit Hilfe von Office-Produkten, unterschiedlichen Anwendungen (Grafik/Diagram) und AMAGNO statt. Die Entscheidungsfindung und Entwicklung kann durch die Versionen des Dokuments nachvollzogen werden.

Eine komplette Auflistung der Werkzeuge und Abbildung der Prozesse wäre deutlich umfassender. Hoffentlich konnte der Artikel trotzdem einen Überblick vermitteln und zeigen, wie wir Software entwickeln.

Wir suchen aktuell noch Software-Entwickler, die sich unserem Team anschließen wollen und freuen uns über jeden Kontakt.

Gerrit Edzards
Gerrit entwickelt seit über 10 Jahren professionell Software und wurde 2012 Teil von AMAGNO. Er ist ein Fan agiler Softwareentwicklung, erweitert regelmäßig die AMAGNO Bibliothek und hat mehrere Tischkicker-Tricks erfunden.

Leave a Reply

Amagno