Software Engineering

Software entscheidet heute häufig über den Erfolg eines Unternehmens. Optimale Software braucht nicht nur optimale Entwicklungsprozesse, sondern erfordert auch Flexibilität und die Planung von Qualitätsfaktoren sowie den Einsatz der richtigen Methoden und Werkzeuge, um die entsprechenden Qualitätsziele zu erreichen.

Mit der Projekterfahrung aus der Anwendung dieser Methoden und Werkzeuge beraten wir gerne unsere Kunden, damit auch die Umsetzung Ihrer Softwareprojekte termintreu und mit optimaler Qualität vonstatten geht. Dies sichert den Erfolg des Unternehmens, die Akzeptanz bei AnwenderInnen und die Zufriedenheit der Auftraggeber.

Schon seit 2001, in der frühen Phase von Extreme Programming (XP), begannen auch wir mit dem Einsatz der agilen Methoden und entwickelten Kundenprojekte mit Test-driven Development (TDD) und Pair-Programming. Heute ist es selbstverständlich, für jedes Projekt das passende Vorgehensmodell zu verwenden.

Dabei setzen wir auf eine der folgenden Methoden: Scrum, Kanban oder Extreme Programming (XP)

Die Vorteile all dieser Methoden sind bekannt:

  • mehr Transparenz und Qualität durch kurze Iterationen
  • Steigerung der Produktivität
  • reduziertes Risiko durch 4-Augen-Prinzip
  • Optimierung der Kommunikation im Team und zum Kunden
  • Flexibilität im Entwicklungsprozess
  • klare Prioritäten

Parallel zur Einführung der agilen Entwicklungsmethoden wurde auch klar, dass es nicht ausreicht, den Quellcode des Projekts einfach mit einer Versionskontrolle zu versehen. Vom Einsatz der ersten Build-Tools wie ANT war es bis zu den heutigen Continuous-Integration (CI) Systemen noch ein "steiniger Weg" mit vielen Migrationen.

Heute verwenden wir ein modernes CI- und Build-System mit folgenden Vorteilen:

  • es ist immer ein aktueller, lauffähiger Softwarestand verfügbar
  • problembehafteter Code wird dem/der verantwortlichen EntwicklerIn sofort gemeldet
  • automatisierte Tests ermöglichen die schnelle Beseitigung von Fehlern

Das entscheidende Kriterium für den Erfolg von Software ist, dass die Anforderungen der Benutzer genau festgehalten und optimal umgesetzt werden. Enorme Bedeutung kommt dabei der Fähigkeit zu, den Fachbereich zu verstehen und die Wünsche so zu dokumentieren, dass diese später softwaretechnisch umgesetzt werden können.

Was in den klassischen Vorgehensmodellen das Lasten- oder Pflichtenheft ist, wurde im agilen Prozess durch den Backlog ersetzt. Dadurch werden angrenzende Aufgaben wie Schätzung oder Sprint-Planung erleichtert, die Transparenz erhöht und die Team-Effizienz enorm gesteigert.

Ob klassisch oder agil - wir begleiten Sie gerne im Prozess des Requirement Engineering oder unterstützen Sie durch Prototyping.

Software unterliegt stetiger Veränderung, da sich auch die zugehörigen Prozesse häufig verändern. In diesem Umfeld können die Qualität und Wartbarkeit durch den Einsatz der passenden Entwurfsmethoden sowie durch die Anwendung von Design Patterns und Best Practices im Entwurfsprozess deutlich gesteigert werden. Um eine hohe Qualität dauerhaft garantieren zu können, sind auch im Bereich der Softwaretechnik Messungen und Kennzahlen sowie deren laufendes Monitoring üblich und erforderlich.

Die Architektur von Software-Systemen enthält wichtige Kriterien, die die spätere Flexibilität für Anpassungen und dauerhafte Wartbarkeit beeinflussen. Daher ist es wichtig, sämtliche Architektur- und Design-Entscheidungen samt deren Begründung optimal zu dokumentieren und die Einhaltung der abzuleitenden Regeln zu überwachen.

Wenn auch Sie Ihre Softwarequalität messbar verbessern möchten - kommen Sie zu uns!

East or West - Testing is Best! Das Motto hört sich nett an, führt aber nur dann zu verbesserter Qualität, wenn das auch systematisch und zum richtigen Zeitpunkt passiert. Mit dem richtigen Test-Konzept können auch mit akzeptablem Aufwand sehr gute Ergebnisse erzielt werden.