Individuelle Softwareentwicklung bei iTE SI
Was bedeutet individuelle Softwareentwicklung bei iTE SI?
Für uns ist grundsätzlich jedes Softwareprojekt eine individuelle Entwicklungsleistung, da Projektziele und Rahmenbedingungen unterschiedlicher Kunden nie deckungsgleich und immer individuell sind. In unserer praktischen Arbeit bedeutet individuelle Softwareentwicklung, die Anwendung und sinnvolle Kombination der uns zur Verfügung stehenden Werkzeuge, wie bspw. Methoden, Programmiersprachen und Entwicklungstools, um eine maßgeschneiderte Softwarelösung zu entwickeln.
Worin liegt der Vorteil von individueller Softwareentwicklung?
In Zeiten von Industrie 4.0 und dem IIoT ergeben sich für Industrieunternehmen komplexe Herausforderungen und Probleme, die sich mit Software „von der Stange“ allerdings zumeist nicht mehr lösen lassen. Deswegen setzen wir in unseren Projekten ausschließlich auf individuelle Softwareentwicklung, auch wenn Elemente einer Standardsoftware Teil der Gesamtlösung sein können.
Welche Rolle spielt individuelle Softwareentwicklung in der Industrie?
Die Rolle, die individuelle Software im industriellen Umfeld spielt, hat sich drastisch verändert. Zukunftsfähige, durchdachte Softwarekonzepte stellen mittlerweile einen wichtigen Wettbewerbsvorteil für Unternehmen dar. Zudem lassen sich aus softwaregetriebenen Ansätzen auch neue Produkte, Services und Geschäftsmodelle entwickeln.
Aus unserer Sicht kann Software allerdings noch viel mehr: Nach dem Konzept des
Software Defined Manufacturing
lassen sich viele Vorteile realisieren, die über die Effektivität und Effizienz von Automatisierung in der Fabrik hinausgehen.
Wie konkret müssen Anforderungen eines individuellen Softwareprojekts beschrieben sein?
Natürlich ist es hilfreich, wenn Kunden ihre Anforderungen genau kennen und wissen, was sie brauchen. Erfahrungsgemäß ist dies aber eher selten der Fall und es ist schwierig, die Spezifikationen zu einem ersten frühen Zeitpunkt im Projekt eindeutig zu formulieren. Diese starren Vorgaben sowie Änderungen, die sich aus sich ändernden Einflussfaktoren während des Projektverlaufs resultieren, ergeben dann Change Requests, was den Projektaufwand erhöht.
Deshalb basieren unsere Projekte auf einem gemeinsamen Verständnis. Bereits früh im Projekt wird bei der Analyse der Rahmenbedingungen und der Definition des Projektziels ein Konsens im Team erreicht. Weiterführend stimmen wir uns laufend mit dem Kunden ab, sodass der Projektstatus für alle transparent ist und wir während der Entwicklung schnell und flexibel auf Änderungen reagieren können.
Welches Vorgehen eignet sich bei individuellen Softwareentwicklungsprojekten?
Von Softwareentwicklern für Softwareentwickler hat sich die agile Vorgehensweise entwickelt und verbreitet, sodass auch wir in unseren Projekten gerne agil arbeiten. Dabei bedeutet Agilität für uns viel mehr als nur die Flexibilität, auf kurzfristige Änderungswünsche reagieren zu können.
Agilität ist für uns eine etablierte Reaktionsfähigkeit gepaart mit Sensitivität für zukünftige Marktveränderungen. In diesem Verständnis zieht sich bei uns die agile Arbeitsweise durch alle Projekte und spiegelt sich auch in unserer Unternehmenskultur wider. Gemeinsam sind wir anpassungsfähig und mutig. Wir wagen auch einen Schritt nach vorn, um zu einer optimalen Lösung zu gelangen.
Dies gilt auch für unser Methodenset: Je nach Zusammensetzung des Teams und Projektstand arbeiten wir nach Scrum, Kanban, Design Thinking oder DevOps.
Wie ist der Ablauf eines individuellen Softwareentwicklungsprojekts?
Bei uns beginnt ein Projekt üblicherweise mit einer Startphase, dem sogenannten Sprint 0. Während dabei sowohl die technische Infrastruktur aufgebaut wird, arbeiten wir inhaltlich im Rahmen eines oder mehrerer Workshops zusammen. Diese dienen dazu, ein gemeinsames Verständnis der Problemstellung und des Nutzungskontextes zu erarbeiten und Projektziele festzulegen.
Zudem werden im Rahmen dieser Startphase weitere, einzelne Projektschritte geplant, damit diese in weiteren Sprints umgesetzt und mit dem Kunden gereview