Skip to content

Entwicklung

Softwareentwicklung ist nicht zuletzt in der Welt der neuen und digitalen Mobilität eine besondere Herausforderung. Komplexe Strukturen und heterogene Architekturen müssen zu einem großen Ganzen zusammengeführt und über das Frontend für die Nutzenden intuitiv zugänglich gemacht werden. Dazu muss der Datenfluss vom Frontend über Backend-Systeme und Microservices unterschiedlicher Anbieter ebenso gewährleistet sein wie das Zusammenspiel mit Hardware-Komponenten, beispielsweise in Form von in Fahrzeugen verbauten On-Board-Units (OBUs) oder Bluetooth-fähigen Fahrradschlössern.

Eine weitere Herausforderung besteht in der hohen Dynamik, die Projekte in diesem Umfeld üblicherweise mit sich bringen: Viele Anforderungen sind zu Projektbeginn noch unklar und im Laufe der Umsetzung ergeben sich laufend neue Erkenntnisse, die das Projekt in eine neue Richtung treiben. Daher ist es wichtig, unsere Entwicklungsteams bestmöglich darauf vorzubereiten. Das Team und die Qualität unserer Software stehen bei uns stets im Vordergrund.

Unser Anspruch ist es, uns als Individuen sowie als Team ständig weiterzuentwickeln und immer auf dem neuesten Stand der Technologien und Entwicklungen zu sein. Nur so können wir die anspruchsvollen Projekte unserer Kund*innen erfolgreich umsetzen. Wir nehmen uns deshalb in regelmäßigen Abständen bewusst aus dem Arbeitsalltag heraus und richten den Fokus auf unsere Skills.

Methoden und Maßnahmen zur Steigerung der Softwarequalität

Um Ihrem und unserem Qualitätsanspruch gerecht zu werden, wenden wir diese Methoden und Maßnahmen an:

TDD

Test Driven Development. Vor jeder Implementierung einer neuen Funktionalität werden Tests geschrieben, die das gewünschte Verhalten erwarten. Dadurch wird sichergestellt, dass die Implementierung von vornherein testbar ist.

Manuelle Tests

Manuelle Tests sind fester Bestandteil unseres Entwicklungs- und Review-Prozesses, aber auch alle anderen Projektmitglieder haben die Möglichkeit jeden neuen Entwicklungsstand zu testen, bevor eine neue Version dem Nutzer zur Verfügung gestellt wird.

Code Reviews

Im Rahmen von Code Reviews wird jede Änderung an der Code Basis von mindestens einem weiteren Teammitglied auf Quellcode-Ebene überprüft und die Funktionalität getestet, bevor die Änderung in den Entwicklungsstand übernommen wird.

Pair Programming

Bei anspruchsvollen Aufgaben werden Anforderungen auch mal im Team zusammen an einer Tastatur umgesetzt. Zwei Köpfe kommen schneller zum Ziel und Denkfehler werden möglichst früh erkannt.

Automatisierung

Durch unsere kurzen Releasezyklen und den konsequenten Einsatz von TDD ergibt sich einerseits die Notwendigkeit die für ein Release notwendigen Schritte möglichst umfassend zu automatisieren und die Möglichkeit unsere Tests jederzeit automatisiert ausführen zu lassen.

CI und CD

Continuous Integration (CI) stellt sicher, dass sämtliche Änderungen möglichst ohne Konflikte in die Code-Basis integriert werden können. Unser Continuous-Deployment-Prozess sorgt dafür, dass jeder Projektstand jederzeit an Tester*innen ausgeliefert werden kann.