Wie wir bei C.H.Beck arbeiten – Moderne Softwareentwicklung im Einsatz

12.11.2021

Es sind schnelllebige Zeiten, in denen wir leben. Das erfordert ein gewisses Maß an Reaktivität, Flexibilität und Agilität. Aber Agilität bedeutet weit mehr, als nur flexibel zu sein. Dies gilt auch für die Softwareentwicklung. Marktanforderungen im Rahmen der Softwareentwicklung ändern sich ebenso rasant wie in anderen Lebensbereichen. Um dieser Tatsache gerecht zu werden, haben sich mittlerweile verschiedene Ansätze und Methoden in der Branche für Softwareengineering etabliert. Wir wollen hier die Vorteile dieser agilen Methoden beleuchten und die Form der Organisation im Umfeld des Softwareentwicklungsprozesses anhand des beck-online-Universums etwas genauer beschreiben.

20211111_wie_wir_arbeiten_1.jpgWie kann die Effizienz in der Softwareentwicklung verbessert werden?

Bedarfsgerechte Lösungen mit einem Optimum an Qualität werden in der modernen Softwareentwicklung mit effizienter Teamarbeit realisiert. Crossfunktionale Teams arbeiten gleichzeitig in zyklischen Iterationen an ausgewählten Features. Durch das Scrum Framework, eines der populärsten Werkzeuge des agilen Projektmanagements, wird garantiert, dass priorisierte Anforderungen vollständig und planbar geliefert werden können. Das bedeutet, die Teams selbst sind per Definition dafür verantwortlich, die gewünschten Anforderungen termingerecht und vollständig zu implementieren.

In unserem Scrum-Modell arbeiten kleine, funktionsübergreifende Teams aus fünf bis neun Personen zusammen. Diese unterteilen ihre Arbeiten in Schritte, die innerhalb eines konsistenten Zeitraums ausgeführt werden können, der auch als Sprint bezeichnet wird. Scrum-Teams bestehen aus Entwicklern, einem Scrum-Master und einem Product Owner. Dabei konzentriert sich Scrum auf Feedbackschleifen am Ende eines Sprints, die als „Retrospektive“ bezeichnet wird. Basierend auf den empirischen Ergebnissen einer jeden Iteration kann das Ergebnis der Arbeit gemessen, der Prozess kontinuierlich verbessert und somit sicherer geplant werden. Durch die direkte Verantwortlichkeit der Teams wird sowohl die Produktqualität als auch die Motivation der Mitarbeiter gesteigert. Doch wie genau lässt sich hier bei uns die Form der Organisation der Teams in der beck-online-Entwicklung gestalten?

Entwicklungsteams

Um die Reaktionsfähigkeit bei Problemen zu erhöhen, werden die diversen Anforderungen nach Themengebieten klassifiziert. Sind solche Issues erstmal identifiziert und definiert, können diese an die jeweiligen Spezialisten-Teams kommuniziert werden. Es obliegt nun den Product-Ownern, ob bei flexiblen Anforderungen eine Prioritätenänderung durchzuführen ist und somit bei Bedarf das Sprintziel präzisiert werden muss. Die interdisziplinären Teams sind hierbei auf folgende Bereiche aufgeteilt:

20211112_wie_wir_arbeiten_5.jpgInfrastruktur

Um das reibungslose Programmieren im agilen Umfeld gewährleisten zu können, müssen die Entwickler freien Zugriff auf Ressourcen erhalten, die normalerweise nur dem Administratoren-Betrieb vorbehalten sind. Die Basis hierfür ist eine solide Infrastruktur der IT. Sie ist die Voraussetzung für die Entwickler. Das Team verantwortet an dieser Stelle das Zusammenspiel und übernimmt das Management der Ressourcen wie z.B. Datenbanken und Applikationsserver.

20211112_wie_wir_arbeiten_3.jpgBackend

Ziel und Aufgaben sind u.a. die Modularisierung von beck-online, Refactoring und die Cloud-Migration.

Suche

Optimierung und Weiterentwicklung der zentralen Suchkomponente

20211112_wie_wir_arbeiten_1.jpgWeb

Hier landen alle Belange in Bezug auf eine Weiterentwicklung oder Verbesserung der Benutzeroberfläche.

 

Alle Teams arbeiten dabei nach den folgenden vier Leitsätzen, dem sogenannten „Agilen Manifest“:

  • Personen und Interaktionen haben Vorrang vor Prozessen und Tools.
  • Funktionsfähige Software hat Vorrang vor umfassender Dokumentation.
  • Zusammenarbeit mit dem Kunden hat Vorrang vor Vertragsverhandlungen.
  • Eingehen auf Veränderungen hat Vorrang vor dem Befolgen eines Plans.

Um die Qualität der Software sicherzustellen und weiter voranzutreiben, werden in allen Entwicklungsschienen der agilen Core-Teams auch agile Methoden verwendet. Eine bewährte Methode ist hierbei die Verwendung von Unit- und Akzeptanztest, um eine grundsätzliche Stabilität und immer fortwährende Qualität der Software zu garantieren. Im Rahmen eines inkrementellen Softwareentwicklungsprozesses können Unittests langfristig änderbaren Code zusichern. So bilden sie eine zuverlässige Voraussetzung für Refactorings. Dank der Tests können versehentliche Regressionen im Verhalten auf Knopfdruck aufgedeckt werden. Eventuelle und unbeabsichtigte Seiteneffekte durch neue Feature-Entwicklungen werden somit frühzeitig bemerkt.

20211112_wie_wir_arbeiten_4.jpg

Auch ein regelmäßiges Training der Entwickler sieht das Model der agilen Softwareentwicklung vor. Hierbei werden immer wieder Schulungen, Coding Dojos oder auch teamübergreifende, interne Entwicklerforen angesetzt, um gemeinsam Techniken und Methoden der Softwareentwicklung zu trainieren. Ein weiteres, bewährtes Stilmittel ist das sogenannte Pair-Programming, wodurch sich das Wissen im ganzen Team verbreitet. Durch dieses 4-Augen-Prinzip wird die Qualität der Software verbessert, Fehler werden früher erkannt, die Kommunikation im Team wird gestärkt und nicht zuletzt macht diese Art des Arbeitens mehr Spaß.

20211112_wie_wir_arbeiten_2.jpg

 

Weitere Meldungen

Agile Softwareentwicklung mit Jira!

Agile Softwareentwicklung bedeutet, in kurzen Entwicklungszyklen verbesserte Versionen einer Software zu erstellen und dabei auf veränderte Kundenvorstellungen einzugehen. Dies ist ein hochdynamischer Vorgang. Um in einem solchen Prozess nicht die Orientierung zu verlieren, ist eine Softwareunterstützung unerlässlich. Wir verwenden zu diesem Zweck die Software Jira.

Agile Softwareentwicklung mit ...