Der Bigaprozess (Unser Softwareprozess)

Der Prozess bei individueller Softwareentwicklung kann sehr unterschiedlich sein. Unser Biga-Prozess soll bessere Software erzeugen. Doch was bedeutet bessere Software? Wir wollen Software gemeinsam mit den Auftraggebenden entwickeln und iterativ verbessern. Wichtig ist, möglichst früh einen Mehrwert zu erstellen, welcher potenziell produktiv gehen kann und nutzbar ist. In iterativen Schritten wird dann besprochen, was die nächsten Schritte sein können. Bei der Entwicklung leben wir Clean Code Standards, sodass die entstandene Software langfristig wartbar ist. Doch wie sehen die unterschiedlichen Bausteine aus? 

Der beschriebene Prozess in einem Bild

1) KickOff-Workshop

1a) Sofern wir nach einem kostenlosen Erstgespräch übereinkommen, ein gemeinsames Softwareprojekt zu starten, sollte jedes Projekt mit einem KickOff-Termin starten.  

1b) Je nach geschätztem Umfang sollten für den KickOff-Termin 2-8 Stunden eingeplant werden.  

1c) In diesem Termin wollen wir die Anforderungen, Ideen und Wünsche an die Software besprechen.  

1d) Mit einer Story-Map werden alle funktionalen und nichtfunktionalen Anforderungen einsortiert und dadurch visualisiert. Die Story-Map wird auch ein Paket für einen ersten MVP und ein walking skeleton identifizieren. Auch weitere Meilensteine werden hier transparent. Im Anschluss können wir eine detaillierte Schätzung und einen ersten konkreten Zeitplan präsentieren. 

2) Systemarchitektur

Eine Softwarearchitektur muss immer individuell festgelegt werden und wird daher von Projekt zu Projekt unterschiedlich sein. Trotzdem haben wir erkannt, dass die Basis vieler Projekte sehr ähnlich ist.  

2a) Wir benötigen mindestens ein Frontend, um Daten darzustellen, ein Backend, um Daten zu verarbeiten und eine Datenbank, um Daten zu speichern. Mit diesen drei Systemen kann gestartet und viele Usecases erreicht werden.  

2b) Je nach Komplexität ergibt es Sinn, weitere Vertikale aufzubauen und so eine self-contained-system Architektur aufzubauen. Oder es werden weitere Teile hinzugeschaltet, um z.B. Schnittstellen besser anzubinden.  

2c) Sofern der Techstack von uns frei gewählt werden kann, setzen wir aktuell in vielen Fällen auf Vue.js im Frontend, NestJS im Backend und auf eine relationale Datenbank, wie MySQL. Der Grund hierfür ist, dass dieser Techstack sehr schlank ist. Das bietet geringe Kosten bei einer gleichzeitig performanten Verarbeitung. 

ein typischer Architekturstack

3) Entwicklungsphase

3a) Unser Ziel ist es, möglichst schnell einen Mehrwert zu schaffen. Daher sollten die ersten Todos einen Workflow automatisieren oder einen working skeleton darstellen. Wir arbeiten iterativ und agil. Diese Arbeit erfordert aber auch die Mitarbeit der Auftraggebenden.  

3b) Alle 1-2 Wochen wollen wir unser Ergebnis in einem Review präsentieren. In diesem Review wollen wir mit Euch besprechen, ob wir die Anforderungen korrekt verstanden haben und diese korrekt umgesetzt wurden. Sofern es Nachbesserung gibt, wird dies potenziell sofort nachgebessert.  

3c) Sofern alles zur Zufriedenheit ist, wird besprochen, was die nächsten Schritte sein werden. Uns ist bewusst, dass dies Zeit kostet, wir sind aber überzeugt davon, dass dies günstiger ist, als am Ende eines Projektes viele kleine Probleme nachzubessern. 

 3d) Intern wird jeder Code durch eine zweite Person überprüft (Code Review) und automatisiert mit Unittests getestet. So wollen wir eine hohe Codequalität erreichen, die langfristig lebendig bleibt. 

4) Go Live und Wartung

4a) Unser Wunsch ist es, frühzeitig in Produktion zu gehen, um schnell von den automatisierten Workflows profitieren zu können. Sehr häufig benötigt es aber ein fertiges abgerundetes Projekt, um eine Marktreife zu erlangen. Wir unterstützen und beraten bei der Produktivierung.  

4b) Bei Bedarf können wir auch das Hosting übernehmen, um so direkt bei Problemen auf die Server zugreifen zu können. Die SLAs werden wir in einem Wartungsvertrag klären.  

4c) Auch, wenn die fertige Software nicht bei uns gehostet wird, bedeutet es nicht, dass wir keinen Service durchführen können. Wir bieten die Wartung auch nach Projektende an. Dabei entscheidet Ihr, wie wir am besten unterstützen können. Hierzu haben wir günstige Service-Pläne, wie „Kein Auftrag Keine Kosten“ oder aber auch ein Bugfree-Wartungspaket. 

Bonus: GreenIT

Der Klimawandel ist real und beeinflusst uns alle. Was wenige wissen: Mit 4% aller CO2 Emissionen trägt Software maßgeblich zu diesem beim. Wir wollen ein Teil dazu beitragen, dass unser verbrauchter Strom so gering wie benötigt und nachhaltig ist. Unser gewählter Techstack ist nicht nur günstiger, es trägt auch maßgeblich dazu bei, den CO2-Fußabdruck zu senken. Laut einer Studie der Universidade do Minho ist TypeScript zwar nur im Mittelfeld, was die CO2 Emissionen angeht, aber damit drei Mal so gut, wie Python. Kompilierte Programmiersprachen, wie Java oder C# schlagen TypeScript zwar, eine JVM benötigt aber immer mehr Arbeitsspeicher, sodass die langfristige Nutzung günstiger ist.