Unser Prozess für die Softwareentwicklung

GARAIO verfolgt bei der Softwareentwicklung einen inkrementellen Ansatz, der sich auf Grundsätze wie Kundenorientierung, gute Kommunikation aller Beteiligten, Einfachheit und Effizienz stützt.

Das Grundgerüst

Unser Prozess für die Softwareentwicklung basiert auf einem agilen und iterativen Ansatz, ähnlich dem von SCRUM. SCRUM ist ein Framework für das Projektmanagement in der Softwareentwicklung. Dieses Framework besteht aus wenigen klaren Regeln, die das Grundgerüst für unser Vorgehensmodell bilden. Eine der wichtigsten Regeln gibt die Verwendung einer priorisierten Liste von Kundenanforderungen vor, dem sogenannten Product Backlog. Der Product Backlog wird vom Product Owner gepflegt. Diese Person vertritt die Kundenseite und bestimmt, zu welchem Zeitpunkt welche Anforderungen realisiert werden. Eine weitere Regel gilt dem Erstellen von Produktinkrementen innerhalb kurzer Arbeitszyklen. In jedem Arbeitszyklus, bei SCRUM „Sprint“ genannt, realisiert das Entwicklerteam einen Teil des Backlogs. Die Entwicklerteamsorganisieren sich dabei weitgehend selbst. Dabei werden Vorgehen und Methoden laufend den aktuellen Anforderungen angepasst.

Die Praktiken

Aus unserer Erfahrung in der Entwicklung von Individuallösungen wissen wir, dass kein Unternehmen und kein Projekt dem anderen gleicht. Das Grundgerüst unserer Prozesse ist daher bewusst allgemein gehalten, damit es in den meisten Projekten eingesetzt werden kann. Individuelle Anpassungen werden durch das Hinzufügen von erprobten Praktiken erreicht..

Die wichtigsten Praktiken, die wir in zahlreichen Projekten erfolgreich eingesetzt haben, sind nachfolgend aufgelistet:

  • Testgetriebene Entwicklung (TDD): Bei der testgetriebenen Entwicklung werden Tests dazu genutzt, lauffähige Software zu entwickeln. Als Nebenprodukt entsteht eine umfangreiche Sammlung automatisierter Tests.
  • Fortlaufende Integration: Diese Praktik stellt sicher, dass jederzeit ein lauffähiges System vorhanden ist. Zudem werden auftretende Probleme frühestmöglich entdeckt. Dies wird erreicht, indem das komplette System in regelmässigen Abständen neu erstellt und von einem Integrationsserver verifiziert wird. GARAIO unterhält in einer eigenen Build-Infrastruktur mehrere solche Integrationsserver, die kontinuierlich Builds von allen Projekten erzeugen und verifizieren.
  • User Storys: User Storys sind kurze Beschreibungen der Anforderungen an ein Softwaresystem. Die User Story ist bewusst kurz gehalten und ist eher ein Platzhalter als eine exakte Beschreibung für eine zu realisierende Funktionalität.
  • Use Cases: Wenn die Anforderungen etwas ausführlicher beschrieben werden müssen, erstellen wir Use Cases. Ein Use Case ist die textuelle Beschreibung eines Ablaufs aus Sicht eines Benutzers.
  • Agile Modellierung: Mit agiler Modellierung praktizieren wir eine effektive Art, softwarebasierte Systeme zu modellieren und zu dokumentieren. Es kommen dabei einfache UML-Tools wie z.B. Sparx Enterprise Architect zum Einsatz. Oft werden auch nur Skizzen auf Flip-Charts oder Whiteboards gezeichnet, die zur verbesserten Kommunikation innerhalb des Teams dienen.
  • Gemeinsame Code-Verantwortlichkeit: Das Entwicklerteam trägt gemeinsam die Verantwortung für die Implementierung. Das bedeutet auch, dass jeder Entwickler die Möglichkeit hat, jedes beliebige Codestück zu verändern. Teamwork ist in diesem Zusammenhang sehr wichtig. Die GARAIO Programmierstandards helfen, die Zusammenarbeit zu verbessern und tragen zur Qualität des Codes bei.
Der Erfolg

Unser Prozess für die Softwareentwicklung hat sich in unterschiedlichen Projekten bewährt. Wir beobachten eine deutlich verbesserte Kommunikation und Zusammenarbeit in den Projekten. Dank der gewonnenen Flexibilität können wir rasch auf veränderte Anforderungen reagieren. Der Prozess ist ein wichtiger Erfolgsfaktor, um auf einfache und effiziente Weise qualitativ hochwertige Software zu entwickeln.