EUROKEY - Die Software-ManufakturEUROKEY - Die Software-Manufaktur

Kompetenzen

Methoden

Wie wir Software entwickeln

In vielen Bereichen entwickeln wir Menschen Methoden, um Probleme zu lösen und Aufgaben effektiv umzusetzen

„Man hat so seine Methode“, ein Umzugsauto zu packen, eine mathematische Aufgabe zu lösen oder ein Verkaufs­gespräch zu führen. Wissenschaftler entwickeln Metho­den, um eine repräsentative Umfrage durchzuführen oder Klimaveränderungen zu analysieren.

Auch in den Bereichen der Software-Entwicklung existieren solche speziellen Methoden, die man einsetzt um ein Projekt umzusetzen oder ein Software-Produkt zu entwickeln.

Welche Methoden setzen wir in unseren Projekten ein und welche Vorteile entstehen dadurch?

Agile Entwicklung

Wir entwickeln nach dem Prinzip der agilen Entwicklung.

Das bedeutet, dass wir – anders als bei der klassischen Vorgehensweise – ein neues Projekt nicht bereits vor der Entwicklungsphase bis ins Detail spezifizieren und dann genau diesen Plan umzusetzen. Vielmehr planen wir in allen Prozessschritten die Möglichkeit zur Definition von neuen Anforderungen mit ein. Das bedeutet nicht, dass in agilen Projekten am Anfang der Ent­wicklung nicht auch eine Spezifikation mit Bildschirm-Entwürfen und Umsetzungsvorschlägen erstellt wird. Wir stimmen aber diese Spezifikation – und noch wichtiger die im Aufbau befindliche Software – während des Projektes kontinuierlich mit unserem Auftraggeber ab.

So können wir flexibel darauf reagieren, wenn sich während des Projektes neue Anforderungen ergeben oder ein Ansatz nicht 100% passt.

Statt der festen Reihenfolge ‚Planungsphase – Entwicklungsphase‘ wechseln sich in unseren Projekten also kurze Planungs- und Entwicklungsphasen ab. Nach Erstellen der Grund­spe­zi­fikation planen und entwickeln wir zunächst eine erste Version und nehmen dann in Ab­stim­mung mit Ihnen in mehreren Iterationen alle weiteren Anpassungen vor.

So unterliegt das Projekt während der Projektdurchführung einer ständigen Kontrolle, Fehl­ent­wicklungen werden rechtzeitig erkannt und neue Anforderungen können jederzeit eingearbeitet werden.

Scrum

Scrum ist eine der bekanntesten agilen Methoden.

Dabei teilt sich der Entwicklungsprozess in gleich lange Abschnitte, sogenannte Sprints. Für jeden Sprint werden die zu implementierenden Funktionen definiert und während des Sprints auf Basis der genauen Spezifikation implementiert. Am Ende jedes Sprints wird das fertige Ergebnis präsentiert.  So entsteht ein flexibler aber dennoch sehr gut strukturierter Entwicklungs­pro­zess.

Scrum besticht durch eine einfache Struktur und klar definierte Projektrollen.

Continuous integration

Continuous integration bedeutet, dass unsere Entwickler auf einer gemeinsamen Codebasis arbeiten.

Über eine Versionsverwaltung integriert jeder Entwickler die von ihm gemachten Änderungen in regelmäßigen, kurzen Abständen – in der Regel am Ende eines Arbeitstages – ins Gesamtsystem.

Jede Änderung wird vor der Integration automatisiert getestet und erst dann vollständig integriert. Oder umgekehrt ausgedrückt: man darf nur Softwarestände abgeben, die auch lauffähig sind. So wird jederzeit ein funktionsfähiger Quellcodestand garantiert. Ein automatisiertes Reporting sorgt außerdem für einen genauen Überblick über die erfolgten Änderungen, die Testabdeckung und die Qualität des Quellcodes.