Indivi­du­elle Software­ent­wick­lung

Innova­tive Software­lö­sungen für indus­tri­elle Anwen­dungen

Mit der hohen Entwick­lungs­ge­schwin­dig­keit auf allen techno­lo­gi­schen Ebenen ändern sich die Anfor­de­rungen in der Indus­trie, aber auch die Bedürf­nisse der Kunden steigen ständig. Daraus ergeben sich komplexe Aufgaben, die mit Standard­soft­ware selten ausrei­chend gelöst werden können. Daher muss Software meist indivi­duell für den jewei­ligen Anwen­dungs­fall entwi­ckelt werden. Nur so können Unter­nehmen alle Poten­ziale zum strate­gi­schen Vorteil nutzen, die sich durch die neuen Möglich­keiten bieten. Genau hierauf zielt unser Angebot der indivi­du­ellen Software­ent­wick­lung.

Wolfram Schäfer, Geschäftsführer von iT Engineering Software Innovations beschreibt individuelle Softwareentwicklung

„Vor zwanzig Jahren habe ich unser Unter­nehmen gegründet, um anspruchs­volle, indivi­du­elle Software und durch­dachte Archi­tektur für komplexe, varian­ten­reiche Maschinen und Anlagen zu entwi­ckeln. Das ist auch heute noch unser Spezi­al­ge­biet. Und jetzt stehen uns phantas­ti­sche Techno­lo­gien zur Umset­zung noch intel­li­gen­terer Lösungen zur Verfü­gung: Edge- und Cloud Compu­ting, Machine Learning und Künst­liche Intel­li­genz, Simula­tion und Augmented Reality. Damit können wir nicht nur die Effizienz Ihrer Anlagen und Systeme nochmals nachhaltig steigern, sondern in Ihrem Business die Grund­lagen für völlig neue Geschäfts­mo­delle erschaffen.

Mit den wachsenden Möglich­keiten werden natür­lich auch die Anfor­de­rungen an die Software­ent­wick­lung immer unüber­sicht­li­cher und heraus­for­dernder. Außerdem gewinnen alle Aspekte des Life-Cycle-Manage­ments und die Beherr­schung der Varian­ten­viel­falt auch für Software an zentraler Bedeu­tung.

Deshalb ist das profes­sio­nelle metho­di­sche Vorgehen noch wichtiger als bisher schon: flexible Software­ar­chi­tek­turen, nicht-funktio­nale Quali­täts­kri­te­rien, Clean Code, Design Thinking und DevOps sind nur einige Stich­punkte. Wir nutzen die modernsten Werkzeuge und wenden die erfolg­reichsten Methoden an, mit dem einen Ziel, für unsere Kunden die intel­li­gen­testen und nachhal­tigsten Software­lö­sungen zu entwi­ckeln.

Ganz gleich aus welcher Branche Sie kommen, welche Aufga­ben­stel­lung Sie haben oder wie flexibel die Zusam­men­ar­beit mit Ihrem eigenen Entwick­lungs­be­reich gestaltet sein soll: Wir entwi­ckeln indivi­du­elle, anspruchs­volle Software­lö­sungen für innova­tive Unter­nehmen.

Die Zukunft wird program­miert und mit Software zur Realität.“

Wolfram Schäfer

Die Digita­li­sie­rung im indus­tri­ellen Umfeld ist nicht aufzu­halten

Digitale Techno­lo­gien, wie IoT-Kommu­ni­ka­ti­ons­tech­no­lo­gien, Edge & Cloud Compu­ting oder Machine Learning sind Möglich­ma­cher (Enabler) der digitalen Trans­for­ma­tion der Indus­trie hin zu einer Produktion im Sinne von Indus­trie 4.0. Diese eröffnet Poten­ziale für weitere Effizi­enz­stei­ge­rungen, intel­li­gen­tere Prozesse und neue Geschäfts­mo­delle. Kennzeich­nend für den digitalen Wandel ist die rasante Weiter­ent­wick­lung dieser Techno­lo­gien.

Techno­lo­gien als Enabler für die digitale Trans­for­ma­tion:

  • Vernet­zung & Digita­li­sie­rung im Sinne von Indus­trie 4.0
  • Edge/ Cloud Compu­ting
  • Machine Learning & Künst­liche Intel­li­genz
  • IIoT – Indus­trial Internet of Things
  • Digitaler Zwilling & Simula­ti­ons­mo­delle
  • Virtual & Augmented Reality (VR, virtu­elle Realität und AR, erwei­terte Realität)

Software hat DIE zentrale Bedeu­tung für die Zukunfts­fä­hig­keit der Inves­ti­ti­ons­gü­ter­in­dus­trie

Der Schlüssel, um den techno­lo­gi­schen Wandel im indus­tri­ellen Umfeld zu meistern und aktiv zu gestalten, liegt in der indivi­du­ellen Software­ent­wick­lung. Nur durch den Einsatz intel­li­genter Software­lö­sungen gelingen die notwen­digen Innova­tionen, um weiterhin wettbe­werbs­fähig zu bleiben und Vorteile durch Diffe­ren­zie­rung zu erzielen.

Die Anfor­de­rungen an die Software­ent­wick­lung verän­dern sich grund­le­gend und rasant:

Früher

Heute

Zukünftig

Software wird vor allem dort einge­setzt, wo unbedingt notwendig

Bei Produkten wird Software als zentrale Kompo­nente zur Funkti­ons­er­fül­lung einge­setzt

In der Produktion dienen Software­lö­sungen zur Visua­li­sie­rung und Prozess­steue­rung

Software wird als strate­gi­sches Schlüs­sel­ele­ment bei Produkten, Dienst­leis­tungen und Geschäfts­mo­dellen einge­setzt

Software bewirkt „echte“ Wertschöp­fung durch Techno­lo­gien wie Machine Learning & Künst­liche Intel­li­genz

Software­ent­wick­lung im indus­tri­ellen Umfeld wird eher „stief­müt­ter­lich“ betrieben

Unter­nehmen haben meist eigene Kompe­tenzen in der Software­ent­wick­lung

Unter­stüt­zung durch Dienst­leister mit breitem Kompe­tenz­spek­trum oder „Insel­ex­per­tise“

Unter­nehmen erkennen die Software(-kompetenz) als strate­gi­sches Schlüs­sel­ele­ment für den Unter­neh­mens­er­folg

Integrierte Zusam­men­ar­beit mit spezia­li­sierten Partnern

Entwick­lung orien­tiert sich an den vorhan­denen Kompe­tenzen

Heraus­for­de­rung, mit den Entwick­lungen Schritt zu halten und den Überblick zu bewahren

Eigene Kompe­tenzen werden nach den Bedarfen der Anwen­dung geschult/ gesucht

Heraus­for­de­rung, interne & externe Teams in einer agilen & vertrau­li­chen Zusam­men­ar­beit zu führen

Techno­lo­gien & Kompe­tenzen sind Innova­ti­ons­treiber für Produkte, Dienst­leis­tungen und Geschäfts­mo­delle vom Unter­nehmen bis zum Kunden, über den gesamten Produkt­le­bens­zy­klus und der Kunden­be­zie­hung

Früher

Software wird vor allem dort einge­setzt, wo unbedingt notwendig

Software­ent­wick­lung im indus­tri­ellen Umfeld wird eher „stief­müt­ter­lich“ betrieben

Entwick­lung orien­tiert sich an den vorhan­denen Kompe­tenzen

Heute

Bei Produkten wird Software als zentrale Kompo­nente zur Funkti­ons­er­fül­lung einge­setzt

In der Produktion dienen Software­lö­sungen zur Visua­li­sie­rung und Prozess­steue­rung

Unter­nehmen haben meist eigene Kompe­tenzen in der Software­ent­wick­lung

Unter­stüt­zung durch Dienst­leister mit breitem Kompe­tenz­spek­trum oder „Insel­ex­per­tise“

Heraus­for­de­rung, mit den Entwick­lungen Schritt zu halten und den Überblick zu bewahren

Eigene Kompe­tenzen werden nach den Bedarfen der Anwen­dung geschult/ gesucht

Zukünftig

Software wird als strate­gi­ches Schlüs­sel­ele­ment bei Produkten, Dienst­leis­tungen und Geschäfts­mo­dellen einge­setzt

Software bewirkt echte Wertschöp­fung durch Techno­lo­gien wie Machine Learning und Künst­liche Intel­li­genz

Unter­nehmen erkennen die Software(-kompetenz) als strate­gi­sches Schlüs­sel­ele­ment für den Unter­neh­mens­er­folg

Integrierte Zusam­men­ar­beit mit spezia­li­sierten Partnern

Heraus­for­de­rung, interne & externe Teams in einer agilen & vertrau­li­chen Zusam­men­ar­beit zu führen

Techno­lo­gien & Kompe­tenzen sind Innova­ti­ons­treiber für Produkte, Dienst­leis­tungen und Geschäfts­mo­delle vom Unter­nehmen bis zum Kunden, über den gesamten Produkt­le­bens­zy­klus und der Kunden­be­zie­hung

 

Heraus­for­de­rungen für indivi­du­elle Software­ent­wick­lung in der Inves­ti­ti­ons­gü­ter­in­dus­trie

Hohe Varianz der Maschinen, Anlagen & Produkte

Aufgrund sich immer schneller ändernden Anfor­de­rungen in der produ­zie­renden Indus­trie existieren meist mehrere Varianten bzw. Genera­tionen verschie­dener Baureihen „neben­ein­ander“. Dementspre­chend müssen parallel ältere und bereits weiter­ent­wi­ckelte Maschinen mit prinzi­piell den gleichen Funktionen (Software­ap­pli­ka­tionen) betrieben werden.
→ Software­lö­sungen und Updates müssen diesen Spagat der Modula­rität und Aufwärts-/ Abwärts­kom­pa­ti­bi­lität bewäl­tigen!

Lange Produkt­le­bens­zy­klen

Maschinen, Anlagen und Kompo­nenten haben i. d. R. eine sehr hohe Lebens­dauer. Sie werden zudem im Laufe der Zeit erwei­tert, umgebaut und moder­ni­siert. Das muss eine „gute“ Software im Zusam­men­spiel der verschie­denen Elemente zulassen bzw. anpas­sungs­fähig sein.
→ Die Software­lö­sungen müssen updatefähig und über viele Releases kompa­tibel sein und bleiben!

Vergleichs­weise geringe Anzahl an Nutzern

In der Inves­ti­ti­ons­gü­ter­in­dus­trie ist die Nutzer­zahl im Vergleich zu anderen Indus­trien eher gering. Deshalb gilt hier für die Software­ent­wick­lung die beson­dere Maßgabe der Wirtschaft­lich­keit bei gleich­zeitig sehr hohem Quali­täts­an­spruch.
→ Die Software­ar­chi­tektur und die Methodik in der Entwick­lung müssen den Anfor­de­rungen an Effizienz, Nachhal­tig­keit und Güte gerecht werden!

Instal­la­tionen verschie­dener Konfi­gu­ra­tion & Genera­tion sind parallel in Betrieb

Infolge der hohen Varianz und Produkt­le­bens­dauer sind zeitgleich Maschinen, Anlagen und Kompo­nenten mit unter­schied­li­chem Funkti­ons­um­fang und Versio­nie­rung in Betrieb. Für Hersteller und Betreiber ist das eine Heraus­for­de­rung. Für Software­lö­sungen resul­tiert dadurch immer ein gewisser Pflege­auf­wand.
→ Bei der Software­ent­wick­lung (Stich­worte: Wartbar­keit, Verfüg­bar­keit der einge­setzten Techno­logie) und in der Entwick­lungs­or­ga­ni­sa­tion (Kapazität, Know-how) muss das bedacht werden!

Verän­de­rungen bieten Chancen, neue Poten­ziale zu nutzen

Dadurch, dass gute Software allen beschrie­benen Anfor­de­rungen gerecht werden soll, bietet sich stets die Chance, den Verän­de­rungs­druck strate­gisch für Neues zu nutzen. Zusammen mit der laufenden Weiter­ent­wick­lung innova­tiver Techno­lo­gien, können z. B. neue, lukra­tive Geschäfts­mo­delle entwi­ckelt und angeboten werden.

Vergleichs­weise geringe Anzahl an Nutzern

  • nach der Nutzungs­dauer von Maschinen (Zeit, „Pay-per-Use“)
  • nach den produ­zierten Stück­zahlen (Ergebnis, „Perfor­mance-based Contrac­ting“)
  • nach der verwen­deten Belas­tung (Leistung)
  • nach der Anzahl der Nutzung (Lizenz­mo­delle)
  • Freischal­tung spezi­eller Funktionen, evtl. kostenlos für einen Testzeit­raum („Rent instead of Buy“)
Weiter­ent­wick­lung der Software
  • während des Betriebs können Software­funk­tio­na­li­täten weiter- oder neuent­wi­ckelt werden („After­sales“)
  • anbieten neuer Funktionalitäten/ Features für bereits ausge­lie­ferte Maschinen („Upgrade“)

Mit der zuneh­menden Bedeu­tung von Software wachsen auch die Anfor­de­rungen daran

  • Usabi­lity: Ziel, die Nutzung einfach zu machen, fehler­frei zu gestalten unter Beach­tung des Nutzungs­kon­textes und stets orien­tiert am Nutzer
  • User Experi­ence: Schaf­fung eines positiven Benut­zer­erleb­nisses (Stich­wort „Gamifi­ca­tion“)
  • Einfa­ches Deploy­ment auf unter­schied­liche Zielsys­teme
  • Platt­form­un­ab­hän­gig­keit
  • konti­nu­ier­liche Erwei­te­rung bei laufenden Betrieb der Software
  • Nutzung auf unter­schied­lichsten Endge­räten, wie z. B. Laptop, Tablet und Smart­phone (Stich­wort „Respon­sive Design“
  • ortsun­ab­hän­gige Nutzung der Software
  • Geschwin­dig­keit bei der Entwick­lung
  • Berück­sich­ti­gung funktio­naler Quali­täts­as­pekte
  • Berück­sich­ti­gung nicht-funktio­naler Quali­täts­as­pekte (Wartbar­keit, Erwei­ter­bar­keit, Wieder­ver­wend­bar­keit)

Unsere Erfolgs­fak­toren

Um diesen hohen Anfor­de­rungen und Trends gerecht zu werden, flexibel für die Nutzung neuer Chancen zu bleiben und aus unserer über 20-jährigen Erfah­rung sind dies die entschei­denden Erfolgs­fak­toren in der indivi­du­ellen Software­ent­wick­lung:

Flexible Software­ar­chi­tek­turen

Einsatz von On-Premise bzw. Cloud-Lösungen

Bei einer On-Premise Lösung wird die Software auf einem Server im Netzwerk des eigenen Unter­neh­mens instal­liert und betrieben. Vorteile: Maximale Kontrolle über die Daten (auch Daten­schutz), unein­ge­schränkter Zugriff und hohe Verfüg­bar­keit. Deshalb setzen wir häufig sog. Edge-Cloud-Lösungen ein.
Bei Cloud-Anwen­dungen läuft die Software bei einem Cloud-Anbieter. Vorteile: Maximale Skalier­bar­keit, überschau­bare Kosten (keine eigene Wartung) und Zugriff von jedem Ort.
Meist bietet sich als Lösung eine optimale Kombi­na­tion aus Edge-Cloud und Cloud-Lösungen an, um die Vorteile von beiden Techno­lo­gien zu kombi­nieren.

Berück­sich­ti­gung verschie­dener Schnitt­stellen

 Für Edge-Cloud und Cloud-Lösungen, bei diversen Anbie­tern
- Platt­formen
- Techno­lo­gien

Moderne, offene und zukunfts­fä­hige Software­ent­wick­lungs­werk­zeuge

Wir verfolgen immer die Strategie, für die jewei­lige Problem­stel­lung das richtige Lösungs­kon­zept aus Software­ar­chi­tektur, Program­mier­spra­chen und dem Zusam­men­spiel von Tools zu erarbeiten. Wir arbeiten platt­form­un­ab­hängig und sind offen für alle Program­mier­spra­chen. Deshalb legen wir großen Wert auf die stetige Weiter­ent­wick­lung unserer eigenen Experten. Dabei ziehen wir in Projekten auch in Betracht, ob absehbar in Zukunft Software­ent­wickler mit den entspre­chenden Fähig­keiten und Kompe­tenzen verfügbar sind.


Microsoft.NET


C# / C++


WPF / ASP.NET


Qt


JavaScript / HTML


Java


Entity Frame­work


SQl / MySQL / PostgreSQL


Influx / Mongo


Windows


Linux


Android


Azure


aws

Struk­tu­riertes und Tool-gestütztes Vorgehen bei der Software­ent­wick­lung: Conti­nuous Integra­tion, Conti­nuous Delivery und Conti­nuous Deploy­ment

In einem profes­sio­nellen Entwick­lungs­pro­zess werden bestehende Funktionalitäten/ Module bereits während der Program­mie­rung mittels automa­ti­siert durch­ge­führter Tests abgesi­chert.

(Plus)  Absiche­rung der Qualität über den gesamten Entwick­lungs­pro­zess
(Plus)  Änderungs­wün­sche können noch flexi­bler berück­sich­tigt werden

Hierfür setzen wir entspre­chende Systeme ein und imple­men­tieren sie in unseren Entwick­lungs­pro­zess des Conti­nuous Develop­ment, der aus den folgenden Phasen besteht:

Conti­nuous Integra­tion (CI)

Automa­ti­sierter Testpro­zess, bei dem neu geschrie­bener Code sofort getestet und Software­kom­po­nenten zu einer Anwen­dung zusam­men­ge­führt werden.

Continous Delivery (CD)

Automa­ti­sierter Release­pro­zess, bei dem Änderungen und Erwei­te­rungen am Code automa­ti­siert und sofort an den Endnutzer ausge­lie­fert werden; Fehler und Ursachen können aufgrund der kleinen Entwick­lungs­schritte schnell identi­fi­ziert werden.

Conti­nuous Deploy­ment (CD)

Sind die automa­ti­sierten Tests erfolg­reich, werden erfolgte Änderung am Code automa­ti­siert in die aktuelle Version der Software imple­men­tiert, ohne weitere Freigaben.

  • Ständige Verfüg­bar­keit eines ausführ­baren Systems
  • Frühzei­tiges Erkennen von Problemen bei der Integra­tion
  • Steige­rung der Effizienz bei der Software­ent­wick­lung
  • Durch­füh­rung von automa­ti­sierten Tests (Unit-/ Regres­sions-Tests)

Weitere quali­täts­si­chernde Maßnahmen

Code-Review ist die effizi­en­teste Methode, um die Software­qua­lität nachhaltig zu steigern. Die ständige Analyse des Source-Codes ermög­licht dem Entwickler eine itera­tive Optimie­rung. Z. B. Gitlab ist eine Sammlung von Web-Appli­ka­tionen, welche die Entwickler unter­stützt über den Source-Code und dessen Änderungen zu kommu­ni­zieren.

Review des Source-Codes nach dem „Vier-Augen-Prinzip“ durch andere Entwickler

(Plus)  Berück­sich­ti­gung & Steige­rung nicht-funktio­naler Quali­täts­merk­male
(Plus)  Effizi­ente Möglich­keit zur Einbin­dung von Kompe­tenzen anderer Entwickler
(Plus)  Erzie­lung einer wartbaren und erwei­ter­baren Software

Effek­tive Unter­stüt­zung einer verteilten, dezen­tralen Arbeits­weise
(Plus)  Unabhän­giges Arbeiten an gleicher Software-Version möglich
(Plus)  Software-Entwick­lung und ‑Anpas­sung auch an externen Stand­orten (z. B. vor Ort beim Kunden)
(Plus)  Spätere Versio­nie­rung der Änderungen und Tool-gestützte Zusam­men­füh­rung im zentralen Repository

Konti­nu­ier­liche Überar­bei­tung einer Software (meist) unter Beibe­hal­tung des Funkti­ons­um­fangs, mit dem Ziel der Verbes­se­rung der Archi­tektur, Optimie­rung des Codes und Besei­ti­gung von Code-Smells (z. B. Code-Dupli­kate)
Refac­to­ring:  Struk­tur­ver­bes­se­rung von Quell­texten unter Beibe­hal­tung des bishe­rigen Programm­ver­hal­tens
Restruk­tu­rie­rung:  Anpas­sung der Software bzw. von Modulen an neue Techno­lo­gien
(Plus)  Steige­rung der Perfor­mance einer Software
(Plus)  Erleich­te­rung der Weiter­ent­wick­lung einer Software

Dieses Prinzip besagt, dass eine Funktion entweder eine Aktion durch­führt (Command) oder Werte abfragt, also Daten an den Aufrufer zurück­gibt und niemals beides in einer Funktion tun sollte. Dadurch entsteht „sauberer“ Quell­code, der intuitiv verständ­lich ist.
(Plus)  Stabi­lere und effizient wartba­rere Programme
(Plus)  Kürzere Entwick­lungs­zeiten bei Funkti­ons­er­wei­te­rung und Fehler­be­he­bungen

Automa­ti­sierte Software­tests lohnen sich insbe­son­dere bei agilen Projekten, da so einfach und regel­mäßig Integra­tions- und Regres­si­ons­tests durch­ge­führt werden können. Dafür müssen bereits am Beginn der Entwick­lung die entspre­chenden Voraus­set­zungen geschaffen und während der Entwick­lungs­phase berück­sich­tigt werden: Testbar­keit ermög­li­chen, Testar­chi­tektur für Kompo­nenten- oder Unittests festlegen, Konven­tionen und Standards für fremden Source­code definieren, aussa­ge­kräf­tige Repor­tings.

Nicht-funktio­nale Anfor­de­rungen an Indivi­du­al­soft­ware

Die Erfül­lung funktio­naler Anfor­de­rungen in der indivi­du­ellen Software­ent­wick­lung ist wichtig, aber für uns selbst­ver­ständ­lich. Wir legen außerdem einen beson­deren Fokus auf nicht-funktio­nale Anfor­de­rungen:

Wartbar­keit

Möglich­keit der leichten Anpas­sung der Software ohne großen Aufwand an geänderte Spezi­fi­ka­tionen. Wartbare Software kann leicht modifi­ziert werden, d. h. Änderungen (z. B. Fehler­be­he­bungen) sind ohne großen Aufwand und Risiko möglich.

Erwei­ter­bar­keit

Möglich­keit der Erwetie­rung der Software an um neue Anfor­de­rungen (z. B. Funktionen, Maschinen-/ Steue­rungs­um­ge­bung). Erwei­ter­bare Software kann einfa­cher z. B. an neue Maschi­nen­va­ri­anten angepasst werden oder ist ohne großen Aufwand skalierbar.

Wieder­ver­wend­bar­keit

Verwen­dung von Softwarebau­steinen ganz oder teilweise für mehrere Maschinen/ Baureihen, Anlagen bzw. Projekte.

Werden diese Krite­rien bei der Konzep­tion und Program­mie­rung beachtet, schafft man nachhal­tige Software­lö­sungen, die auf lange Produkt­le­bens­zy­klen ausge­legt sind. Dies ist insbe­son­dere im Inves­ti­ti­ons­gü­ter­be­reich bei Laufzeiten von 15–20 Jahren ein wichtiger Faktor.

Agile Software­ent­wick­lung mit Methodik

Das metho­di­sche Vorgehen ist die Schlüs­sel­kom­pe­tenz in der agilen Entwick­lung von Software für mecha­tro­ni­sche Systeme. Wir wenden effizi­ente und erprobte Methoden generell in allen Software­ent­wick­lungs­pro­jekten an, sowohl im Hochspra­chen­be­reich, als auch im Bereich der SPS-Software­ent­wick­lung.


Design Thinking


SCRUM


Kanban


DevOps


Jira


Conflu­ence


TFS


Enter­prise Archi­tect


GitLab


Jenkins


Nexus


Rancher OS


Docker

Design Thinking

Beim Ansatz des Design Thinking wird das Ziel verfolgt, Innno­va­tionen zu entwi­ckeln, die sich am Nutzer und dessen Bedürf­nissen orien­tieren. Dabei stehen weniger die „harten“ techni­schen Anfor­de­rungen im Vorder­grund, sondern vor allem die „weicheren“ Wünsche aus Sicht der Anwender. Während der Entwick­lung wird stets versucht, mit möglichst geringem Aufwand einen ersten Lösungs­an­satz darzu­stellen („Minimum Viable Product“, MVP) und dieses abzustimmen.

Anwen­dung des agilen Vorge­hens­mo­dells SCRUM

  • Sehr effizi­ente Arbeits­weise im inter­dis­zi­pli­nären Team
  • Regel­mäßig funkti­ons­fä­hige Software­stände und termin­ge­rechte Umset­zung
  • Verbes­serte Motiva­tion und Einbin­dung der Mitar­beiter
  • Schnel­lere Reaktion auf geänderte Anfor­de­rungen
  • Höhere Kunden­ori­en­tie­rung
Grafik stellt den Scrum Prozess dar

Optimie­rung der Durch­lauf­zeit mit Kanban

Kanban ist ein nützli­ches Frame­work in der agilen Software­ent­wick­lung. Dazu werden Kapazi­täten in Echtzeit kommu­ni­ziert und alle Aufgaben völlig trans­pa­rent darge­stellt. Die einzelnen Aufga­ben­ele­mente werden auf einem Kanban Board visuell darge­stellt, sodass sich die Teammit­glieder jeder­zeit einen Überblick über den Status der Arbeits­schritte verschaffen können.

  • Kürzere Durch­lauf­zeiten
  • Weniger Engpässe
  • Visuelle Darstel­lung von Software­me­triken
  • Conti­nuous Delivery
Grafikl beschreibt den Kanban Prozess

DevOps

Der Begriff setzt sich aus „Dev“ (Develop­ment, Entwick­lung) und „Ops“ (Opera­tions, Vorgänge) zusammen. Dabei werden die eigent­lich grund­ver­schie­denen Bereiche der Software­ent­wick­lung und der IT-Betrieb zusam­men­ge­führt.

  • Verbes­se­rung der Zusam­men­ar­beit von Teams
  • Steige­rung der Produk­ti­vität
  • Erhöhung der Entwick­lungs­ge­schwin­dig­keit
  • Verbes­se­rung der Software
Grafik beschreibt den DevOps Prozess

Unser Verständnis von Exzel­lenz in der Software­ent­wick­lung

Wir sind davon überzeugt, dass die digitale Trans­for­ma­tion in der Indus­trie der Schlüssel zu neuen Poten­zialen und die unbedingte Voraus­set­zung für weiteren Erfolg in der Zukunft ist. Das bedeutet für uns:

  • Tiefe Überzeu­gung, dass die Software­ent­wick­lung eine sehr verant­wor­tungs­volle Aufgabe ist, das Ergebnis am Nutzen und Mehrwert orien­tiert sein muss und den unter­neh­me­ri­schen Erfolg nachhaltig beein­flusst.
  • Offen­heit für neueste Trends, Techno­lo­gien und Methoden und dauer­hafte Lernbe­reit­schaft.
  • Agile Arbeits­weise in inter­dis­zi­pli­nären und flexi­blen Kompe­tenz-Teams mit tool-gestützten Methoden und dem Fokus auf Time-to-Market (TTM).
  • Große Erfah­rung und Praxis­nähe mit hohem Verständnis für die Branchen der Kunden und die Funkti­ons­weisen von Maschinen und Anlagen.
  • Blick über Grenzen hinweg mit Verständnis für Anfor­de­rungen und Chancen in der Zukunft.
  • Enge Zusam­men­ar­beit mit Hochschulen, spezia­li­sierten Partnern, Innova­toren und Fachver­bänden.

Es gibt keine Patent­re­zepte!

Die Anfor­de­rungen für unter­schied­liche Appli­ka­tionen in den verschie­denen Branchen sind sehr vielfältig und indivi­duell. Deshalb gibt es meist keine passenden Standard­lö­sungen bzw. ist Indivi­du­al­soft­ware meist ungeeignet. Als Strategie gilt immer nur, dass für die jewei­lige Problem­stel­lung das richtige Lösungs­kon­zept aus Software­ar­chi­tektur, Program­mier­spra­chen und dem Zusam­men­spiel von Tools erarbeitet werden muss. Dabei gilt es die verschie­densten Anfor­de­rungen, die manchmal gegen­sätz­liche Ansätze erfor­dern können, gegen­ein­ander abzuwägen, um eine für alle Belange optimale Lösung zu finden.

Ein nicht zu unter­schät­zender Faktor ist dabei auch die Verfüg­bar­keit an Software­ent­wick­lern mit den erfor­der­li­chen Fähig­keiten und Kompe­tenzen, heute und in der Zukunft. Deshalb legen wir großen Wert auf die stetige Weiter­ent­wick­lung unserer eigenen Experten. Unter diesem Aspekt berück­sich­tigen wir bei der Projekt­pla­nung auch stets die internen Möglich­keiten bei unserem Kunden, falls Systeme später hausin­tern gepflegt werden sollen.

Wir verfolgen immer das Ziel, für Sie flexible und zukunfts­fä­hige Software­lö­sungen zu entwi­ckeln, an denen Sie funktio­nell und wirtschaft­lich lange Freude haben.

Unser Angebot

Unsere Kernkom­pe­tenz als Dienst­leister liegt in der Entwick­lung anspruchs­voller, indivi­du­eller Software­lö­sungen im indus­tri­ellen Umfeld. Dabei erstellen wir für Sie neue, maßge­schnei­derte Anwen­dungen oder nehmen notwen­dige Anpas­sungen an Ihrer bestehenden Infra­struktur vor. Dafür bieten wir Ihnen Know-how, Kapazität und Erfah­rungen aus den unter­schied­lichsten Projekten und Branchen. Wir verstehen uns als Ihr verläss­li­cher Entwick­lungs­partner und Impuls­geber: Von der Beratung und Konzep­tion, über die Program­mie­rung, Imple­men­tie­rung und Quali­täts­test bis zur konti­nu­ier­li­chen Weiter­ent­wick­lung der Software, decken wir alle Phasen von indivi­du­ellen Software­pro­jekten ab.

Scroll to Top