Individuelle Softwareentwicklung

Kundenspezifische Lösungen für die Industrie

Mit der hohen Entwicklungsgeschwindigkeit auf allen technologischen Ebenen ändern sich die Anforderungen in der Industrie, aber auch die Bedürfnisse der Kunden steigen ständig. Daraus ergeben sich komplexe Aufgaben, die mit Standardsoftware selten ausreichend gelöst werden können. Daher muss Software meist individuell für den jeweiligen Anwendungsfall entwickelt werden. Nur so können Unternehmen alle Potenziale zum strategischen Vorteil nutzen, die sich durch die neuen Möglichkeiten bieten. Wir unterstützen Sie dabei mit unseren Kompetenzen in der individuellen  Softwareentwicklung.

Vor zwanzig Jahren habe ich unser Unternehmen gegründet, um anspruchsvolle Individualsoftware und durchdachte Architekturen für komplexe, variantenreiche Maschinen und Anlagen zu entwickeln. Das ist auch heute noch unser Spezialgebiet. Und jetzt stehen uns phantastische Technologien zur Umsetzung noch intelligenterer Lösungen zur Verfügung.

Edge- und Cloud Computing, Machine Learning und Künstliche Intelligenz, Simulation und Augmented Reality. Damit können wir nicht nur die Effizienz Ihrer Anlagen und Systeme nachhaltig steigern, sondern in Ihrem Business die Grundlagen für völlig neue Geschäftsmodelle erschaffen.

Mit den wachsenden Möglichkeiten werden natürlich auch die Anforderungen an Softwareentwicklung immer unübersichtlicher und herausfordernder. Außerdem gewinnen alle Aspekte des Life-Cycle-Managements und die Beherrschung der Variantenvielfalt auch für Software an zentraler Bedeutung.

Deshalb ist das professionelle methodische Vorgehen noch wichtiger: flexible Softwarearchitekturen, nicht-funktionale Qualitätskriterien, Clean Code, Design Thinking und DevOps sind nur einige Stichpunkte. Wir nutzen modernste Softwareentwicklungswerkzeuge und wenden effiziente Vorgehensmodelle an, mit dem Ziel, für unsere Kunden die intelligentesten und nachhaltigsten Softwarelösungen zu realisieren.

Ganz gleich aus welcher Branche Sie kommen, welche Aufgabenstellung Sie haben oder wie flexibel die Zusammenarbeit mit Ihrem eigenen Entwicklungsbereich gestaltet sein soll: Wir schaffen individuelle, anspruchsvolle Softwarelösungen für innovative Unternehmen.

Die Zukunft wird programmiert und mit Software zur Realität.

Mehr lesen Weniger lesen
Wolfram Schäfer
Geschäftsführer IT Engineering Software Innovations

Die Digitalisierung im industriellen Umfeld ist nicht aufzuhalten

Digitale Technologien sind Enabler der digitalen Transformation der Industrie hin zu einer Produktion im Sinne von Industrie 4.0. Diese eröffnet Potenziale für weitere Effizienzsteigerungen, intelligentere Prozesse und neue Geschäftsmodelle. Kennzeichnend für den digitalen Wandel ist die rasante Weiterentwicklung und grenzenlose Verfügbarkeit neuer innovativer Technologien.

Vernetzung

ML / KI

Edge/ Cloud Computing

Industrial Internet of Things

Digitaler Zwilling

Simulationsmodelle

Virtual/ Augmented Reality

Lösungen für Interoperabilität

Software ist von zentraler Bedeutung für die Zukunftsfähigkeit der Investitionsgüterindustrie

Der Schlüssel, um den technologischen Wandel im industriellen Umfeld zu meistern und aktiv zu gestalten, liegt in der individuellen Softwareentwicklung. Nur durch den Einsatz intelligenter Softwarelösungen gelingen die notwendigen (Produkt-)Innovationen, um in Zeiten der Digitalisierung weiterhin wettbewerbsfähig zu bleiben und Vorteile durch Differenzierung zu erzielen.

Unser Verständnis von Softwareentwicklung

Wir sind davon überzeugt, dass die digitale Transformation der Industrie der Schlüssel zu neuen Potenzialen und die Voraussetzung für den zukünftigen Erfolg. Das bedeutet für uns:

  • tiefe Überzeugung, dass Softwareentwicklung eine sehr verantwortungsvolle Aufgabe ist
  • das Ergebnis am Nutzen und Mehrwert orientiert sein muss und den unternehmerischen Erfolg nachhaltig beeinflusst
  • Offenheit für neueste Trends, Technologien und Methoden und dauerhafte Lernbereitschaft
  • agile Arbeitsweise in interdisziplinären und flexiblen Kompetenz-Teams
  • Arbeiten mit tool-gestützten Methoden und dem Fokus auf Time-to-Market
  • Erfahrung und Praxisnähe mit Verständnis für die Branchen unserer Kunden und deren Bedürfnisse sind entscheidende Erfolgsfaktoren
  • der Blick über Grenzen hinweg und die Weitsicht für Anforderungen eröffnet Chancen für die Zukunft
  • die enge Zusammenarbeit mit Hochschulen, spezialisierten Partnern, Innovatoren und Fachverbänden ermöglicht uns die notwendige Flexibilität in unseren Lösungen

Mehrwert gestalten: User Experience in der Softwareentwicklung

Gute User Experience (UX) und ein ansprechendes User Interface (UI) werden bei der Entwicklung von Software im industriellen Umfeld immer bedeutender. Denn UX ist darauf aus, Mitarbeitende zu unterstützen und dabei auch Prozesse effizienter zu gestalten.

Von guter UX profitieren nicht nur die Nutzenden, sondern alle Beteiligten am Prozess: gerade auch die Auftraggebenden sowie das Team der Softwareentwicklung.

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.

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.

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.

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.

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.

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 gereviewt werden können. Eines ist jedoch für jedes Projekt gleich und für uns besonders wichtig: dass am Ende eine passgenaue Lösung entsteht.

Softwareentwicklungsprojekte gelten selten als komplett abgeschlossen, da Software laufend verbessert werden kann. Sowohl aus der Verwendung bei den Kunden, als auch aus technologischen Weiterentwicklungen ergeben sich regelmäßig neue Funktionalitäten und Wünsche.

Für uns ist ein Projekt abgeschlossen, wenn der Kunde mit der entwickelten Lösung (mehr als) zufrieden ist, damit arbeiten kann und in der Lage ist, das System mit eigenen Mitteln zu betreuen. Gerne begleiten wir unsere Kunden auch darüber hinaus und stellen so die optimale Weiterentwicklung der Softwarelösung sicher.

Durch die Vielzahl verfügbarer Technologien und komplexer werdenden Rahmenbedingungen steigen die Anforderungen an Softwareentwicklung. Um mit diese Entwicklungen Schritt halten zu können, fehlen vielen Unternehmen die richtigen Ressourcen und das nötige Know-How. In diesen Fällen leisten wir mit einem individuell zusammengestellten Team Unterstützung.

Gerne unterstützen wir auch bestehende Entwicklungsteams und bringen Ihre Mitarbeiter als Sparringpartner in ihren aktuellen Problemstellungen voran. Gerade bei historisch gewachsenen Anwendungen (Legacy Systemen) stecken Entwickler oft in einer Sackgasse. Ein objektiver Blick von außen schafft Klarheit und gibt neue Impulse.

Grundsätzlich praktizieren wir bei Softwareentwicklungsprojekten zwei unterschiedliche Abrechnungsmethoden, die sich für uns und unsere Kunden als sinnvoll und praktikabel etabliert haben:

Agiler Festpreis

  • Formulierung des Projektzieles je Sprint
  • Festlegung des Budgets je Sprint
  • Priorisierung der Anforderungen während des Projektverlaufs
  • (Kommunikation und Transparenz)

Der agile Festpreis ist ein einfach zu handhabendes Modell, es liefert Transparenz und behält das Budget im Auge, ohne dabei großen bürokratischen Aufwand zu generieren. In Verbindung mit agilen Methoden ist er die ideale Lösung, um mit sich ändernden Anforderungen umzugehen. Der Kunde hat stets den Überblick, er steuert und priorisiert die Anforderungen in jedem Sprint.

Stundenkontigent

  • Abrechnung nach Aufwand
  • Flexible, unkomplizierte Abarbeitung laufender Aufgaben
  • Stützen langfristige Partnerschaften

Die Abrechnung nach Aufwand bietet sich bei laufenden Aufgaben und wiederkehrenden Tätigkeiten an, wie z. B. Wartung und Service. Der Kunde kommt umhin, für einzelne kleinere Aufgaben einen Auftrag zu vergeben und wir können die anfallenden Aufgaben im Tagesgeschäft unbürokratisch, schnell und effizient erledigen.

Gerne unterstützen wir auch individuelle Abrechnungsmodelle, die durch ihre vertragliche Ausgestaltung eine flexible und unkomplizierte Zusammenarbeit unterstützen.

Eine professionelle und gleichzeitig vertrauensvolle Beziehung in der Zusammenarbeit ist aus unserer Sicht geprägt von Offenheit, Ehrlichkeit und Transparenz. Während unsere Kunden das Expertenwissen aus ihrer Branche mitbringen, haben wir das Know-How zu Möglichkeiten der Umsetzung. Durch eine Zusammenarbeit auf Augenhöhe entsteht eine Atmosphäre, die durch hohe Motivation geprägt ist und in vorzeigbaren Ergebnissen mündet. Gerne unterstützen wir das Team dabei auch mit unserem Wissen im Projektmanagement und begleiten die Arbeit mit passenden Methoden und Werkzeugen. Dabei sind wir auch im Einsatz virtueller Werkzeuge und der Arbeit in virtuellen Teams geübt. Die Zusammenarbeit mit uns gestaltet sich demnach „Agil. Innovativ. Zuverlässig“.

Softwareentwicklung unterscheidet sich für uns von der Webentwicklung durch das Thema Ganzheitlichkeit. Während Webentwicklung einen klaren Fokus auf den Einsatz von Frontendtechnologien legt und damit zumeist die Schnittstelle zwischen Mensch und Maschine betrachtet, fasst die Softwareentwicklung alle Komponenten des Systems mit ein. Dabei ist gerade die Infrastruktur und das Backend zumeist das Herzstück einer Anwendung, wobei besonderes Augenmerk auf Sicherheit und Performance gelegt werden müssen.

iTE SI Kollege am Arbeitsplatz als Symbol für Supportleistungen

Veränderte Rolle von Software im Investitionsgüterbereich

Früher

alter PC als Symbol für frühere Softwareentwicklung

Heute

zwei PCs und Maschine als Symbol für heutige Softwareentwicklung

Zukünftig

zwei PCs, Fabrik und Cloud als Symbol für zukünftige Softwareentwicklung

Software wird vor allem dort eingesetzt, wo unbedingt notwendig

Bei Produkten wird Software als zentrale Komponente zur Funktionserfüllung eingesetzt

In der Produktion dienen Softwarelösungen zur Visualisierung und Prozesssteuerung

Software wird als strategisches Schlüsselelement bei Produkten, Dienstleistungen und Geschäftsmodellen eingesetzt

Software bewirkt „echte“ Wertschöpfung durch Technologien wie Machine Learning & Künstliche Intelligenz

Softwareentwicklung im industriellen Umfeld wird eher „stiefmütterlich“ betrieben

Unternehmen haben meist eigene Kompetenzen in der Softwareentwicklung

Unterstützung durch Dienstleister mit breitem Kompetenzspektrum oder „Inselexpertise“

Unternehmen erkennen die Software(-kompetenz) als strategisches Schlüsselelement für den Unternehmenserfolg

Integrierte Zusammenarbeit mit spezialisierten Partnern

Entwicklung orientiert sich an den vorhandenen Kompetenzen

Herausforderung, mit den Fortschritten Schritt zu halten und den Überblick zu bewahren

Eigene Kompetenzen werden nach den Bedarfen der Anwendung geschult/ gesucht

Herausforderung, interne & externe Teams in einer agilen & vertraulichen Zusammenarbeit zu führen

Technologien & Kompetenzen sind Innovationstreiber für Produkte, Dienstleistungen und Geschäftsmodelle  über den gesamten Produktlebenszyklus und der Kundenbeziehung hinweg

Früher

Software wird vor allem dort eingesetzt, wo unbedingt notwendig

Softwareentwicklung im industriellen Umfeld wird eher „stiefmütterlich“ betrieben

Entwicklung orientiert sich an den vorhandenen Kompetenzen

Heute

Bei Produkten wird Software als zentrale Komponente zur Funktionserfüllung eingesetzt

In der Produktion dienen Softwarelösungen zur Visualisierung und Prozesssteuerung

Unternehmen haben meist eigene Kompetenzen in der Softwareentwicklung

Unterstützung durch Dienstleister mit breitem Kompetenzspektrum oder „Inselexpertise“

Herausforderung, mit den Entwicklungen Schritt zu halten und den Überblick zu bewahren

Eigene Kompetenzen werden nach den Bedarfen der Anwendung geschult/ gesucht

Zukünftig

 

Software wird als strategiches Schlüsselelement bei Produkten, Dienstleistungen und Geschäftsmodellen eingesetzt

Software bewirkt echte Wertschöpfung durch Technologien wie Machine Learning und Künstliche Intelligenz

Unternehmen erkennen die Software(-kompetenz) als strategisches Schlüsselelement für den Unternehmenserfolg

Integrierte Zusammenarbeit mit spezialisierten Partnern

Herausforderung, interne & externe Teams in einer agilen & vertraulichen Zusammenarbeit zu führen

Technologien & Kompetenzen sind Innovationstreiber für Produkte, Dienstleistungen und Geschäftsmodelle vom Unternehmen bis zum Kunden, über den gesamten Produktlebenszyklus und der Kundenbeziehung

Herausforderungen für individuelle Softwareentwicklung in der Investitionsgüterindustrie

Hohe Variantenvielfalt

Aufgrund sich immer schneller ändernden Anforderungen in der produzierenden Industrie existieren meist mehrere Varianten bzw. Generationen verschiedener Baureihen „nebeneinander“. Dementsprechend müssen parallel ältere und bereits weiterentwickelte Maschinen mit prinzipiell den gleichen Funktionen (Softwareapplikationen) betrieben werden.

Softwarelösungen und Updates müssen diesen Spagat der Modularität und Aufwärts-/ Abwärtskompatibilität bewältigen!

Lange Produktlebenszyklen

Maschinen, Anlagen und Komponenten haben i. d. R. eine sehr hohe Lebensdauer. Sie werden zudem im Laufe der Zeit erweitert, umgebaut und modernisiert. Das muss eine „gute“ Software im Zusammenspiel der verschiedenen Elemente zulassen bzw. ausreichend anpassungsfähig sein.

Die Softwarelösungen müssen updatefähig und über viele Releases kompatibel sein und bleiben!

Geringe Anzahl an Nutzern

In der Investitionsgüterindustrie ist die Nutzerzahl im Vergleich zu anderen Industrien eher gering. Deshalb gilt hier die besondere Maßgabe der Wirtschaftlichkeit für die Softwareentwicklung bei gleichzeitig sehr hohem Qualitätsanspruch.

Die Softwarearchitektur und die Methodik in der Entwicklung müssen den Ansprüchen an Effizienz, Nachhaltigkeit und Güte gerecht werden!

Parallelbetrieb verschiedener Generationen

Infolge der hohen Varianz und Produktlebensdauer sind zeitgleich Maschinen, Anlagen und Komponenten mit unterschiedlichem Funktionsumfang und Versionierung in Betrieb. Dies ist eine Herausforderung für Hersteller und Betreiber. Für Software-
lösungen resultiert dadurch immer ein gewisser Pflegeaufwand.

Bei der Softwareentwicklung (Wartbarkeit & Verfügbarkeit der eingesetzten Technologie) und in der Entwicklungsorganisation (Kapazität & Know-How) muss das bedacht werden!

Möchten Sie weitere Informationen oder Beratung zur individuellen Softwareentwicklung für Ihre Anforderungen? Wir helfen gerne weiter.

Bild von Wolfram Schäfer
Wolfram Schäfer
Geschäftsführer IT Engineering Software Innovations

Steigende Anforderungen an die Softwareentwicklung

  • Usability: Gewährleistung einer einfachen und fehlerfreien Bedienung, unter Beachtung der Nutzungssituation und stets orientiert am Anwender
  • User Experience: Schaffung eines positiven Benutzererlebnisses (Stichwort „Gamification“)
  • einfaches Deployment auf unterschiedliche Zielsysteme
  • kontinuierliche Erweiterung bei laufendem Betrieb der Software
  • Plattformunabhängigkeit
  • Nutzung auf unterschiedlichen Endgeräten, wie z. B. Laptop, Tablet und Smartphone (Stichwort „Responsive Design“)
  • ortsunabhängige Nutzung der Software
  • Geschwindigkeit bei der Entwicklung
  • Berücksichtigung funktionaler Qualitätsaspekte
  • Berücksichtigung nicht-funktionaler Qualitätsaspekte (Wartbarkeit, Erweiterbarkeit, Wiederverwendbarkeit)

Erfüllung nicht-funktionaler Qualitätsanforderungen bei der Softwareentwicklung

Bei individueller Softwareentwicklung ist die Erfüllung funktionaler Qualitätskriterien und Anforderungen wichtig, aber für uns selbstverständlich. Der Fokus muss darüber hinaus auf der Erfüllung nicht-funktionaler Qualitätsanforderungen liegen.

Werden diese Kriterien bei der Konzeption und Programmierung beachtet, schafft man nachhaltige Softwarelösungen, die auf lange Produktlebenszyklen ausgelegt sind. Dies ist insbesondere im Investitionsgüterbereich bei Laufzeiten von 15-20 Jahren ein wichtiger Faktor.

 

Wartbarkeit

Erweiterbarkeit

Wiederverwendbarkeit

Unsere Erfolgsfaktoren

Um den hohen Ansprüchen und Trends gerecht zu werden, flexibel für die Nutzung neuer Chancen zu bleiben und aus unserer über 20-jährigen Erfahrung sind dies aus unserer Sicht die entscheidenden Erfolgsfaktoren bei individueller Softwareentwicklung:

  • offene & zukunftsfähige Softwaretools
  • strukturiertes & toolgestütztes Vorgehen
  • agile Methoden
  • flexible Softwarearchitekuren
  • weitere Maßnahmen zur Qualitätssicherung

Verwendung offener & zukunftsfähiger Softwareentwicklungswerkzeuge

Wir verfolgen immer die Strategie, für die jeweilige Problemstellung das richtige Lösungskonzept aus Softwarearchitektur, Programmiersprachen und dem Zusammenspiel von Tools zu erarbeiten. Wir arbeiten plattformunabhängig und sind offen für alle Programmiersprachen.

Deshalb legen wir großen Wert auf die stetige Weiterentwicklung unserer eigenen Experten. Dabei ziehen wir bei Projekten z.B. auch in Betracht, ob im Einzelfall auch Softwareentwickler mit den entsprechenden Fähigkeiten und Kompetenzen verfügbar sind.

Strukturiertes & tool-gestütztes Vorgehen

In einem professionellen Softwareentwicklungsprozess werden bestehende Funktionalitäten bzw. Module bereits während der Programmierung mittels unterschiedlichster Methoden und Prinzipien getestet und deren Funktionsweise sichergestellt.

Durch eine strukturierte Vorgehensweise und den Einsatz entsprechender Systeme, wie beispielsweise Continuous Development garantieren wir eine hohe Qualität der entwickelten Software, die über die Erfüllung rein funktionaler Anforderungen hinaus geht.

Auf diese Weise können Probleme und Fehler bei der Programmierung der individuellen Software frühzeitig erkannt und vermieden bzw. behoben werden. Insgesamt gestaltet sich der Prozess der Softwareentwickung effizienter und flexibler, sodass auch Änderungswünsche der Kunden berücksichtigt werden können.

Agile Softwareentwicklung mit Methodik

Methodisches Vorgehen ist eine Schlüsselkompetenz in der agilen Softwareentwicklung. Wir wenden effiziente und erprobte Methoden generell in allen Softwareentwicklungsprojekten an, sowohl im Hochsprachenbereich, als auch im Bereich der SPS-Softwareentwicklung. Mit Kanban, Scrum, DevOps und Design Thinking machen wir sehr gute Erfahrungen. Folgende Tools unterstützen unsere agile Arbeitsweise:

Design Thinking

Beim Ansatz des Design Thinking wird das Ziel verfolgt, Innovationen zu entwickeln, die sich am Nutzer und dessen Bedürfnissen orientieren. Dabei stehen weniger die „harten“ technischen Anforderungen im Vordergrund, sondern vor allem die  Wünsche aus Sicht der Anwender. Während der Entwicklung wird stets versucht, mit möglichst geringem Aufwand einen ersten Lösungsansatz darzustellen („Minimum Viable Product“, MVP) und dieses abzustimmen.

Grafik beschreibt Scrum Prozess bei individueller Softwareentwicklung

Scrum

Die Anwendung des agilen Vorgehensmodells Scrum bietet zahlreiche Vorteile:
  • sehr effiziente Arbeitsweise im interdisziplinären Team
  • regelmäßig funktionsfähige Softwarestände
  • termingerechte Umsetzung
  • verbesserte Motivation und Einbindung der Mitarbeiter
  • schnellere Reaktion auf geänderte Anforderungen

Kanban

Kanban ist ein nützliches Framework in der agilen Softwareentwicklung. Kapazitäten werden in Echtzeit kommuniziert und alle Aufgaben völlig transparent aufgezeigt. Die einzelnen Aufgabenelemente werden auf einem Kanban Board visuell dargestellt, sodass sich die Teammitglieder jederzeit einen Überblick über den Status der Arbeitsschritte verschaffen können.

  • kürzere Durchlaufzeiten
  • weniger Engpässe
  • termingerechte Umsetzung
  • visuelle Darstellung von Softwaremetriken
  • Continuous Delivery
Grafik beschreibt Kanban Prozess bei individueller Softwareentwicklung
Grafik beschreibt DevOps Prozess bei individueller Softwareentwicklung

DevOps

Der Begriff setzt sich aus „Dev“ (Development, Entwicklung) und „Ops“ (Operations, Vorgänge) zusammen. Dabei werden die eigentlich grundverschiedenen Bereiche Softwareentwicklung und  IT-Betrieb zusammengeführt.

  • Verbesserung der Zusammenarbeit von Teams
  • Steigerung der Produktivität
  • Erhöhung der Entwicklungsgeschwindigkeit
  • Verbesserung der Software

Flexible Softwarearchitekturen

Getreu dem Motto „Form follows Function“ ist auch die Softwarearchitektur auf die jeweiligen Anforderungen der erforderlichen Lösung anzupassen. Skalierbarkeit bzgl. Anzahl der Nutzer und des damit verbundenen Datenvolumens, Zugriff von unterschiedlichen Standorten aus, der Vendor Log-In und die Anforderungen an kontinuierliches Deployment sind nur einige der zur berücksichtigenden Aspekte bei der Entscheidung für den geeigneten Lösungsansatz.

On-Premise Lösungen

Bei einer On-Premise Lösung wird die Software auf einem Server im Netzwerk des eigenen Unternehmens installiert und betrieben.

Vorteile:

    • maximale Kontrolle über die Daten (Datenschutz)
    • uneingeschränkter Zugriff und hohe Verfügbarkeit

Nachteile:

    • schlechte Skalierbarkeit
    • meist kein kontinuierliches Deployment möglicht
    • höhere Investitionskosten für Hardware

Cloud-Lösungen

Bei Cloud-Lösungen kann zwischen Infrastructure as a Service (Iaas), Plattform as a Service (Paas) oder Software as a Service (Saas) unterschieden werden. Entsprechend wird die Software bei einem „Provider im Internet“ ausgeführt.
 

 

Vorteile:

    • maximale Skalierbarkeit
    • keine Investition in eigene Hardware
    • Zugriff von jedem Ort
    • Einfaches und kostengünstiges Software-Deployment

Nachteile:

    • Ggf. eingeschränkte Bandbreite bzgl. der Kommunikation
    • hohe Latenz bei Datenaustausch
    • je nach Service-Level höherer Vendor-Login

Hybrid-Ansätze

Für – insbesondere datengetriebene – Lösungen im industriellen Umfeld haben sich auch hybride Architekturen etabliert. Rohdaten aus dem Unternehmensumfeld werden lokal – On premise – vorverarbeitet und nur verdichtete Informationen werden an den Service in der Cloud kommuniziert. Damit lassen sich Gesamtapplikationen so schneiden, dass Vorteile maximiert und entsprechende Nachteile minimiert werden können. In diesem Zusammenhang werden oft auch „Cloud Native“ Lösungen realisiert.

Veränderungen eröffnen neue Potenziale

Dadurch, dass gute Individualsoftware allen beschriebenen Kriterien gerecht werden soll, bietet sich stets die Chance, den Veränderungsdruck strategisch für Neues zu nutzen. Zusammen mit der laufenden Weiterentwicklung innovativer Technologien, können z. B. neue, lukrative Geschäftsmodelle entwickelt und angeboten werden.

Laufzeit-/ nutzungsabhängige Vergütungsmodelle

  • nach Nutzungsdauer von Maschinen (Zeit, „Pay-per-Use“)
  • nach produzierten Stückzahlen (Ergebnis, „Performance-based Contracting“)
  • nach verwendeter Belastung (Leistung)
  • nach Anzahl der Nutzung (Lizenzmodelle)
  • Freischaltung spezieller Funktionen, evtl. kostenloser Testzeitraum („Rent instead of Buy“)

Weiterentwicklung der Software

  • während des Betriebs können Softwarefunktionalitäten weiter- oder neu entwickelt werden („Aftersales“)
  • für bereits ausgelieferte Maschinen oder Anlagen können neue Funktionalitäten bzw. Features angeboten werden („Upgrade“)

Es gibt keine Patentrezepte!

Die Anforderungen für unterschiedliche Applikationen in verschiedenen Branchen und Bereichen sind sehr vielfältig. Deshalb gibt es meist keine passenden Standardlösungen bzw. ist Individualsoftware meist ungeeignet. Für eine erfolgreiche Realisierung muss für die jeweilige Problemstellung das richtige Lösungskonzept aus Softwarearchitektur, Programmiersprachen und dem Zusammenspiel von Tools erarbeitet muss. Dabei gilt es die verschiedensten Erfordernisse, die manchmal gegensätzliche Ansätze erfordern können, gegeneinander abzuwägen, um eine für alle Belange optimale Lösung zu finden.

iTE SI Kollege am Arbeitsplatz als Symbol für Supportleistungen

Ein nicht zu unterschätzender Faktor ist dabei auch die Verfügbarkeit an Softwareentwicklern mit den erforderlichen Fähigkeiten und Kompetenzen, heute und in der Zukunft. Deshalb legen wir großen Wert auf die stetige Weiterbildung unserer eigenen Experten und Mitarbeiter. Unter diesem Aspekt berücksichtigen wir bei der Projektplanung auch stets die internen Möglichkeiten bei unserem Kunden, falls Systeme später hausintern gepflegt werden sollen.

Wir verfolgen immer das Ziel flexible und zukunftsfähige Softwarelösungen zu entwickeln, an denen Sie funktionell und wirtschaftlich lange Freude haben.

Mehr lesen Weniger lesen

Unser Angebot

Unsere Kernkompetenz als Dienstleister liegt in der Entwicklung anspruchsvoller, individueller Softwarelösungen im industriellen Umfeld. Wir erstellen für Sie neue, maßgeschneiderte Anwendungen oder nehmen notwendige Anpassungen an Ihrer bestehenden Infrastruktur vor. Dafür bieten wir Ihnen Know-How, Kapazität und Erfahrungen aus unterschiedlichsten Projekten und Branchen.

Wir verstehen uns als verlässlicher Entwicklungspartner und Impulsgeber: Von der Beratung, Planung und Konzeption, über Programmierung, Implementierung und Qualitätstests bis zur kontinuierlichen Weiterentwicklung der Software, deckt unser Leistungsspektrum alle Phasen von individuellen Softwareprojekten ab.