Wir werden immer wieder gefragt, in welcher Branche wir Experten sind. Meine Antwort lautet dann stets: „In keiner.“ Dies führt gelegentlich zu Skepsis. Unsere Überzeugung ist jedoch, dass es gut und richtig ist, uns branchenübergreifend IT-Projekten anzunehmen. Warum?
Software Development Lifecycle
In Zeiten zunehmender Digitalisierung (ja, ich hole so weit aus) ist die Situation im Unternehmen oft die gleiche: Es existiert ein aktuell gelebter Prozess im Unternehmen, der essenziell für das Tagesgeschäft ist. Manchmal läuft dieser Prozess manuell oder nutzt die Papierform zur Datenübertragung, manchmal gibt es eine (Teil-)Softwarelösung, bei der jedoch Verbesserungspotenzial gesehen oder Features vermisst werden. Das Vorgehen im Projekt, um diese Lösung zu überarbeiten oder abzulösen, ist nahezu immer gleich:
- Analyse der Kernanforderungen des Prozesses (mit dem Fachbereich bzw. den Endnutzern)
- Analyse der Benutzergruppen (mit dem Fachbereich bzw. den Endnutzern)
- Planung des initialen Scopes (MVP)
- Iterative Umsetzung
- Validierung & Test
Der Software Development Lifecycle (SDLC) ist nichts Neues und seit Jahren gelebte Realität in Softwareprojekten. Damit ist geklärt, dass wir uns anfänglich Gedanken um die Anforderungen machen und uns später (hoffentlich iterativ) um die Umsetzung der Lösung kümmern.
Fachwissen und Spezialisierung
Wie zuvor erwähnt, ist es unsere Überzeugung, dass es wichtig und richtig ist, dass wir selbst keine Experten in den Fachbereichen unserer Kunden sind. Diese Unbefangenheit hilft bei der Analyse der Anforderungen. Während der Analyse geben Fachbereichsverantwortliche und Benutzer in der Regel das wieder, was sie kennen und wie sie heute arbeiten. Ziel der Analyse ist jedoch, wie oben beschrieben, die Untersuchung des Kernprozesses. Was heißt das konkret?
- Unterscheidung des Kernprozesses von Edge-Cases: Wie häufig tritt ein bestimmter Fall wirklich auf?
- Ableitung des Kernprozesses in Sub-Prozesse: Welche Teilprozesse sollten entkoppelt betrachtet und möglicherweise sogar wiederverwendet werden? (Hat hier jemand Domain-Driven Design erwähnt?)
- Unterscheidung von Benutzergruppen und gelebter Realität: Was unterscheidet den „Autoverkäufer“ vom „Spezialverkäufer für SUVs“ hinsichtlich der Arbeitsschritte?
- Identifikation der Datenquellen: Welche Daten sind für den Kernprozess notwendig?
- Identifikation der geeigneten Benutzeroberfläche: Desktop, Mobile, Chat-Agent?
Qualitätsanforderungen
Damit ist klar, wie wir zu fachlichen Anforderungen kommen und diese gemeinsam umsetzen können. Doch dadurch allein entsteht noch keine gute Software. Die ISO/IEC 25010 behandelt das Qualitätsmodell von Softwareprodukten. Die korrekte Umsetzung fachlicher Funktionen ist dabei nur ein Teilbereich. Wir sehen es als unsere Aufgabe, im Rahmen der Anforderungsanalyse die richtigen Fragen zu stellen, um weitere Bereiche des Modells wie Effizienz (Performance), Sicherheit (Security) und Verlässlichkeit abzudecken – um nur einige Beispiele zu nennen.
In der Softwareentwicklung spricht man hierbei von Qualitätsanforderungen. Ihre frühzeitige Berücksichtigung macht ein Softwareprojekt erfolgreich und langlebig. Eine Nichtbeachtung führt hingegen zu Mehrkosten und Risiken.
KI
Was davon ändert sich nun mit modernen Technologien im Zeitalter von generativer KI, Large-Language-Models und Agenten, die Teile unserer Geschäftsprozesse übernehmen sollen?
Gar nichts!
Applikationen mit KI-Integration sind in erster Linie eines: verteilte Anwendungen mit mehreren Komponenten, die separat aufgesetzt und betrieben werden müssen und über Schnittstellen miteinander kommunizieren. Diesen Umstand kennen wir bereits seit der Welle an Microservice- und Serverless-Architekturen. Aber: Heute ist die Welt deutlich weiter, was den Betrieb und das Monitoring solcher Lösungen angeht. Zudem existieren genügend Lessons-Learned zu Applikationen dieser Art, die uns helfen, im Rahmen der Anforderungsanalyse (ja, hier schließt sich der Kreis) die richtigen Fragen zu stellen.
Also sind alle Projekte gleich?
Nein. Inhaltlich ist jedes Projekt anders als das vorherige und das nachfolgende. Der Fachbereich und die Endnutzer bringen ihre Fachkompetenz in das Projekt ein. Unsere Expertise liegt darin, die Anforderungen zu verstehen, abzuleiten und gemeinsam mit unseren Projektpartnern zu priorisieren. Unser technischer Fokus auf bewährte sowie topmoderne Tools wie Microsoft .NET, React und TypeScript ermöglicht eine schnelle Umsetzung und gibt unseren Projektpartnern rasch die Möglichkeit zur Validierung.
Neugierig? Sprich uns an und lass uns gemeinsam herausfinden, wie wir euer Projekt aufgleisen können.