Kontakt

Maßgeschneiderte Individualsoftware für
spezielle Anforderungen

Nicht immer kann eine Standard-Software die individuellen Ansprüche eines Unternehmens optimal erfüllen, denn zur Unterstützung einzigartiger Unternehmensprozesse bedarf es manchmal auch einer einzigartigen Software.

An diesem Punkt kommt unsere Individualsoftware zum Einsatz. Als Softwareentwickler und IT-Dienstleister mit 30 Jahren Projekterfahrung in unterschiedlichen Themengebieten und Systemlandschaften lassen wir unser gesamtes Know-how und viel Innovationskraft in unsere Software einfließen. Unser Team deckt alle Aspekte anspruchsvoller Softwareprojekte ab - von der Anforderungsanalyse über die Projektleitung und Programmierung bis hin zu Wartung und Support. Bereits in der Planungs- aber auch in der Entwicklungsphase wird jeder Schritt individuell mit Ihnen abgestimmt, bis die maßgeschneiderte Lösung perfekt zu Ihnen passt und wir Ihnen ein überragendes Ergebnis präsentieren können. Dafür steht Panvision - mit einer Vielzahl individueller Softwareprojekte und zufriedener Kunden, die uns bereits über viele Jahre hinweg begleiten.

Sie sind noch nicht sicher, ob Standard- oder Individualsoftware?

Dann lesen Sie hier weiter
Icon Info
Entscheidungsfinder
projektablauf - Projektablauf mit Panvision

Wie läuft ein Individualsoftware-Projekt mit Panvision ab?

Ein kompetenter, verlässlicher und immer ansprechbarer Partner ist bei der Softwareentwicklung mindestens genau so wichtig, wie das Softwareprodukt, das schließlich aus dem gemeinsamen Projekt hervorgeht. Damit Sie sich eine Vorstellung davon machen können, wie wir arbeiten, worauf wir Wert legen und wie ein gemeinsames Projekt mit uns aussehen kann, haben wir im Folgenden unsere wichtigsten Überzeugungen für ein gelungenes Individualsoftware-Projekt zusammengefasst.

 

Das Projekt im Ganzen verstehen: Analyse der Anforderungen

Um eine möglichst genaue Vorstellung davon zu erhalten, was Sie von einer Individualsoftware erwarten, analysieren wir gemeinsam mit Ihnen ihre Ideen, Unternehmensstrukturen und Problemstellungen und überführen diese in konkrete, IT-spezifische Anforderungen. In dieser Phase möchten wir alles über Sie und Ihr Projekt erfahren und beraten Sie über verschiedene Optionen, den besten Ansatz und die wirtschaftlichste Lösung. Wenn wir glauben, dass eine Individualentwicklung nicht die richtige Lösung für Ihr konkretes Problem ist oder ein anderes Konzept besser zu Ihnen passen würde, raten wir Ihnen ehrlich von Ihrem Vorhaben ab und finden gemeinsam mit Ihnen die passende Lösung.

Icon Anforderungen
 

Die Basis schaffen: Bestimmung wichtiger Parameter

Nachdem wir skizziert haben, wie Ihre individuelle Software funktionieren soll, machen wir uns Gedanken über das technische Grundgerüst und klären gemeinsam mit Ihnen wichtige Parameter für die Entwicklung: Welche Systemvoraussetzungen gibt es? Auf welchen Endgeräten soll die Software später laufen? Welche Technologien und Programmiersprachen sollen zum Einsatz kommen – haben Sie hierfür eine Vorgabe oder sind wir frei bei der Wahl der optimalen Lösung? Wo soll die Software gehostet werden – in unserem bzw. einem externen Rechenzentrum oder bei Ihnen - und wer übernimmt die Wartung der Server? Durch unsere langjährige Erfahrung sowohl in der Softwareentwicklung, als auch in der Administration und im Hosting, können Sie die Betreuung Ihrer Software von A-Z komplett sorgenfrei in unsere Hände geben.

Icon Parameter
 

Für den Wohlfühlfaktor sorgen: User Experience großschreiben

Während die technischen Grundlagen für die Entwicklung geklärt werden, läuft sich bereits ein weiteres Team warm: Unsere Grafik. Denn jetzt geht es zum einen darum, zu definieren, welche Anforderungen der spätere Nutzer an die Bedienung der Software stellt und wie man das bestmögliche Nutzererlebnis gewährleistet. Zum anderen besprechen wir, welche geschäftlichen Ziele Sie mit dem Einsatz der Software verfolgen, und machen uns Gedanken darüber, wie wir diese Ziele durch die Gestaltung der Software erreichen.

Parallel zum Design der Nutzeroberfläche (User Interface Design, kurz UI), in dem zum Beispiel festgehalten wird, wie die Navigation aufgebaut ist und – überspitzt formuliert – welcher Button an welche Stelle gehört, stellen sich unsere ExpertInnen also gemeinsam mit Ihnen die Frage nach dem optimalen Bedienerlebnis (User Experience, kurz UX): Welche Wahrnehmung hat der Nutzer, während er die Software bedient? Was fühlt er? Welche Vorlieben hat er und wie erreicht er seine Ziele effektiv, effizient und vor allem: gut gelaunt? – entscheidende Kriterien für die Akzeptanz und den Erfolg der Software! Einige dieser Erkenntnisse gewinnen wir oft erst während der Arbeit an den Layouts oder beim Testen der Software, weshalb der Design-Prozess selten linear abläuft. Erkenntnisse, die in der UI-Phase gewonnen werden, können also die UX-Phase beeinflussen – und andersrum.

Wenn alle Aspekte besprochen wurden, kümmert sich unser Team um die grafische Optimierung der Software (z. B. Wahl des passenden Farbschemas, Bildsprache etc.) – bei Bedarf natürlich im Corporate Design Ihres Unternehmens, um dem Nutzer unmittelbar ein vertrautes Gefühl zu geben.

Icon UI und UX Design
 

Auf gute Skalierung und Wartbarkeit setzen

Um Ihre Individualsoftware mit Weitblick und vor allem nachhaltig zu entwickeln, achten wir bereits bei der Komposition der einzelnen Bestandteile darauf, dass sie maximal skalier- und wartbar sind. Wir legen großen Wert darauf, dass Sie eine zukunftsfähige Software erhalten, die mit ihren Anforderungen wächst und problemlos weiterentwickelt und ausgebaut werden kann – und keine Software, die Sie nach kurzer Zeit schon ersetzen müssen, weil sie Sie in Ihren Möglichkeiten einschränkt.

Aus diesem Grund entwickeln wir Ihre Software gern auch Cloud-native, um sie stets skalierbar zu halten und die Implementierung in einer modernen, dynamischen Umgebung zu ermöglichen. Zum Einsatz kommen Microservices, die unabhängig voneinander konzipiert und für den Einsatz in der Cloud vorbereitet werden. Die einzelnen Microservices können klassisch als gebündelte Anwendungen ausgeliefert oder alternativ in der Cloud betrieben werden (z. B. Docker oder Kubernetes-Umgebungen). Dadurch können eine kontinuierliche Bereitstellung, saubere Schnittstellen sowie ein einfaches Austauschen von Komponenten gewährleistet werden. Ob die Software in einer öffentlichen, privaten oder hybriden Cloud betrieben wird, können Sie selbst entscheiden, gern beraten wir Sie dazu.

Icon Skalierung
 

Flexibel bleiben: Agile Arbeitsabläufe

Wann immer es möglich ist, arbeiten wir nach agilen Methoden. Was bedeutet das für Sie? Im Gegensatz zum Wasserfall-Modell, in dem die einzelnen Projektphasen zu Beginn festgezurrt und schließlich aufeinanderfolgend abgearbeitet werden, bemühen wir uns darum, dynamisch zu bleiben und das Projekt möglichst kleinschrittig weiterzuentwickeln. Oft ergeben sich bestimmte Anforderungen oder unvorhergesehene Herausforderungen erst während der Umsetzung – denen wir durch eine agile Arbeitsweise jedoch offen und flexibel begegnen. Das hat den Vorteil, dass wir uns zu jeder Zeit auf neue Ideen einlassen und stets hinterfragen können, ob der gemeinsam gewählte Weg noch der richtige ist. Das Gesamtziel verlieren wir dabei aber keinesfalls aus den Augen: In definierten Abständen (Sprints) werden die Ergebnisse und Fortschritte besprochen und die nächsten Entwicklungsschritte definiert.

Sie möchten Ihre Software nicht agil entwickeln oder haben Anforderungen und Pläne, die sich bereits präzise beschreiben lassen und im Laufe der Entwicklung nur wenig ändern werden? Dann bestehen wir natürlich nicht auf eine bestimmte Entwicklungsmethode und können Ihnen durch unsere jahrelange Erfahrung auch andere Vorgehensweisen anbieten.

Icon agile Arbeitsabläufe
 

Qualität sichern durch intensives Testen

Noch bevor wir Ihnen in den terminierten Sprints unsere Entwicklungsfortschritte präsentieren, durchlaufen die einzelnen Komponenten der Software bereits verschiedene Tests, die wir durchführen, damit Sie die bestmögliche, funktionsfähige Version der Anwendungen erhalten. Ein Beispiel hierfür sind etwa automatisierte Tests von Webinterfaces (z. B. mit Selenium).

Für eine optimale Effizienz, Sicherheit und Wartbarkeit der Software bieten wir auch die Methode der Testgetriebenen Entwicklung (test-driven development, TDD) an, bei der wir Ihre Anforderungen an die Funktionalitäten der Software zunächst durch Tests beschreiben, noch bevor der Code für diese Komponenten existiert. Dies hat zum einen den Vorteil, dass unsere Entwickler sich noch intensiver damit auseinandersetzen können, was Sie als Kunde von der Software erwarten – und gleichzeitig qualitativ hochwertigen Code schreiben, der auch für andere Entwickler nachvollziehbar ist. Zum anderen erhalten wir so ein frühestmögliches Feedback über die Korrektheit der Implementierung eines Features und verlieren keine Zeit mit der aufwändigen nachträglichen Suche nach Bugs. Da Regressionstests ohnehin unabdingbar sind und mit dem Heranrücken der Deadline die Zeit zum intensiven Testen aus Erfahrung meist zu kurz ausfällt, sehen wir viele Vorteile in dieser Methode.

Icon Test Driven
 

Hands on: Kunden von Beginn an involvieren

Wir möchten, dass Sie als Kunde jederzeit Einblick in die Projektentwicklung haben und beurteilen können, ob Ihre Anforderungen an die Software erfüllt werden. Hierfür stellen wir Ihnen die Entwicklungszwischenstände kontinuierlich zur Abnahme zur Verfügung, damit Sie zum einen das Look & Feel der Anwendungskomponenten beurteilen können, zum anderen aber auch selbst priorisieren und steuern können, wie zeitnah welche Tasks bearbeitet werden.

Um so flexibel wie möglich auf neue Feature Requests, Änderungen oder Priorisierungen eingehen zu können, wenden wir unter anderem die Methode des kontinuierlichen Softwareauslieferungsprozesses an. Im Gegensatz zur klassischen Entwicklung, bei der die Software erst zum Testen ausgeliefert wird, wenn alle Features enthalten sind und einwandfrei laufen, nehmen wir regelmäßig kleinere Änderungen am Programmcode vor und wiederholen die Produktionsschritte der Entwicklung, Qualitätssicherung und Auslieferung fortlaufend (Continuous Delivery). Dies hat den Vorteil, dass Sie bestimmte Kernfunktionen in kurzen Intervallen testen können, während wir bereits weiter an deren Optimierung arbeiten. So nehmen Sie als Kunde einen wesentlichen Teil in der Qualitätssicherung ein und wir erhalten schnellstmöglich ein wertvolles Feedback, um Ihre Wünsche direkt zu berücksichtigen.

Um die Auslieferung in kurz aufeinanderfolgenden Iterationen erfolgreich und effizient zu managen, orientieren wir uns an aktuellen DevOps-Methoden zur Förderung der Zusammenarbeit der Teams Entwicklung (Dev) und Betrieb (Ops), die über den gesamten Softwarelebenszyklus hinweg an der erfolgreichen Entwicklung und Wartung Ihrer Individualentwicklung beteiligt sind.

Icon Hands on
 

Transparenz schaffen: Aufgaben und Zuständigkeiten koordinieren

Um ein gemeinsames Verständnis der Anforderungen zu entwickeln und gleichzeitig den Kosten- und Zeitrahmen im Blick zu behalten, gehört in jedes unserer Teams ein fester Projektleiter, der sich persönlich um Ihre Ideen und Wünsche kümmert, alle Mitglieder des Teams zusammenhält und ehrlich kommuniziert, wenn das Projekt mal nicht den Weg nimmt, den es nehmen sollte. Das Projektmanagement läuft dabei stets parallel zu allen Entwicklungsschritten ab und bildet den Rahmen unserer gemeinsamen Arbeit.

Da ein gutes Projektmanagement, strukturierte Arbeitsweisen und eine lückenlose Kommunikation essentiell für den Projekterfolg sind, bietet sich der Einsatz einer toolgestützten zentralen Aufgabenverwaltung (z. B. mit Jira oder GitLab) an, um wichtige Informationen zielgerichtet an die betreffenden Personen weiterzuleiten. Die Aufgabenverwaltung bildet so den Dreh- und Angelpunkt für den Austausch aller Projektbeteiligten, gibt Auskunft über den aktuellen Bearbeitungsstand aller Vorgänge und informiert die Mitarbeitenden umgehend über Dashboards und automatisierte E-Mail-Benachrichtigungen, wenn sie auf eine Aktion reagieren müssen oder der Zeitplan gefährdet wird.

Insgesamt sehen wir sehr viele Vorteile in dieser Arbeitsweise und legen sie deshalb all unseren Kunden ans Herz. Aus Erfahrung können wir sagen, dass Prozesse dadurch zuverlässiger, strukturierter und schneller umgesetzt und Absprachen prüfbar und transparent für alle Beteiligten festgehalten werden. Besonders agil entwickelte Projekte profitieren von der toolgestützten Aufgabenverwaltung, da Änderungen an der Software schneller finanziell abgeschätzt, priorisiert, getestet und bewertet werden können.

Icon Transparenz
 

Neue Möglichkeiten entdecken, Bewährtes beibehalten

Individuell zu entwickeln bedeutet nicht zwingend, das Rad jedes Mal neu zu erfinden. Vielmehr kommt es darauf an, Ihre individuellen Anforderungen zu spezifizieren und darauf aufbauend die bestmögliche Lösung zu entwerfen.

Für bestimmte Anwendungen innerhalb der Software haben wir deshalb Bausteine und Komponenten entwickelt, die es uns erlauben, den Code regelmäßig benötigter Funktionen (z. B. Login, Benutzerverwaltung etc.) nicht immer wieder neu schreiben zu müssen. Sie profitieren davon, dass diese Bausteine bei unseren Kunden live im Einsatz sind, sich hinsichtlich ihrer Performance und Usability bereits mehrfach bewährt haben und von uns fortlaufend optimiert werden. Konkret bedeutet der Einsatz der Komponenten für das gesamte Team also mehr Sicherheit, Arbeit- und Zeitersparnis – bei gleichbleibender Flexibilität.

Um die Verfügbarkeit, Austauschbarkeit und Wartbarkeit einzelner Softwarebestandteile noch weiter zu maximieren, bieten wir zudem die Umsetzung der Software in einer Microservice-Architektur an. Hierbei werden die einzelnen Services nicht mehr in einem großen Monolithen gebündelt, sondern als monofunktionale Module für das Erledigen jeweils einer bestimmten Aufgabe konzipiert. Die Bausteine selbst werden unabhängig voneinander entwickelt und später über standardisierte Kommunikationsschnittstellen (z. B. REST-APIs) zu einem Gesamtprodukt zusammengefügt. Der Vorteil ist zum einen, dass das gesamte System dadurch robuster wird und im Ernstfall nur einzelne Microservices ausfallen – anstatt der gesamten Anwendung. Zum anderen bietet die Microservice-Architektur die Möglichkeit, neue Services einfacher in das System zu integrieren und bestehende zielgerichtet zu skalieren und zu stärken, sodass das Endprodukt möglichst schlank bleibt und Ressourcen eingespart werden.

Icon bewährt
 

Eine herausragende Software an den Start bringen

Wenn alle Funktionen der Software implementiert sind, diverse Tests durchlaufen wurden, die Schnittstellen funktionieren und das Team allgemein mit dem Produkt zufrieden ist, kommt der Moment, an dem Sie als Kunde entscheiden, dass die Zeit für den GO-live gekommen ist. Im Falle der kontinuierlichen Softwareauslieferung ist hierfür auch kein großer Aufwand mehr nötig, denn die Lauffähigkeit und das Zusammenspiel aller Komponenten wurden bereits während der Entwicklungsphase immer wieder gemeinsam mit Ihnen getestet.

Auch nach dem Release bleiben wir hochkonzentriert am Projekt, denn nun beginnt die spannende Phase, in der erstmals auch weitere Mitarbeiter die Software nutzen, testen und gegebenenfalls Änderungswünsche äußern. Wie gewohnt können wir dabei anfallende Bugfixes und Feature-Requests gemeinsam im Team priorisieren und abarbeiten, bis die Software zu 100 Prozent Ihren Vorstellungen entspricht.

Icon Start
 

Immer ansprechbar bleiben: Weiterentwicklung und Support

Unsere Erfahrung sagt, dass die meisten Individualsoftware-Projekte nicht einfach „fertig“ werden oder „zu Ende“ gehen. Das Produkt muss sich einem stetigen Wandel im Unternehmen, veränderten Prozessen und einer zunehmenden Digitalisierung flexibel anpassen können und in ihren Funktionen mitwachsen. Deshalb konzipieren wir Ihre Software von Beginn an so, dass Ihnen auch in Zukunft keine Grenzen gesetzt sind.

Dies ist der Grund dafür, dass wir mit nahezu all unseren Kunden eine jahrelange Verbindung eingehen, in der man sich gegenseitig vertraut und immer wieder gemeinsam zu neuen Ufern aufbricht. Es ist uns wichtig, dass Sie wissen, wie viel uns ein Softwareprojekt bedeutet und wie ernst wir unsere Verantwortung nehmen. Sie werden bei Panvision niemals nur „irgendein“ Kunde sein, sondern können sich jederzeit darauf verlassen, dass wir an Ihrer Seite stehen.

Icon Support
Unsere Art zu entwickeln hat Sie überzeugt?
Dann freuen wir uns auf Ihre Kontaktaufnahme!
Jetzt Anfrage senden
casestudies - Case Studies

Von Panvision entwickelte Individualsoftware

Lesen Sie spannende Berichte über Individualsoftware-Projekte, die wir gemeinsam mit unseren Kunden erfolgreich umgesetzt haben.

Sie möchten Ihr individuelles Projekt mit uns besprechen?
Schreiben Sie uns eine Nachricht
entscheidungsfinder - Entscheidungsfinder

Standardsoftware vs. Individualsoftware
Make or Buy?

Was ist eine Standardsoftware und was eine Individualsoftware? Was sind die Vor- und was die Nachteile und wann brauche ich was? Wir geben Ihnen einen Überblick und unterstützen Sie bei Ihrer Entscheidung.

Bild Standardsoftware

Was ist eine Individualsoftware und wann brauche ich sie?

Eine Individualsoftware wird speziell für einen bestimmten Geschäftsprozess oder Anwendungsfall konzipiert, denn: „one size fits all“ ist nicht die Lösung für individuelle Problemstellungen. Wenn der Prozess, den Sie abbilden möchten, so besonders oder komplex ist, dass es ihn kein zweites Mal gibt und keine Standardsoftware ihn abdecken kann, wenn Sie vielleicht noch gar nicht genau wissen, wie der Prozess sich in Zukunft verändern wird oder wenn Sie sich mit der Software von der Konkurrenz abheben wollen – brauchen Sie eine einzigartige, auf Ihre speziellen Anforderungen zugeschnittene Lösung.

Auch wenn eine Standardsoftware Ihren Prozess zwar abbilden könnte, dafür aber so viel Anpassungsaufwand nötig ist, dass die Kosten den Nutzen überwiegen, machen Sie bereits zu große Kompromisse. Sobald Sie Ihre Unternehmensprozesse der Software anpassen (und nicht andersherum), verlieren Sie an Effizienz und mindern Ihre Wettbewerbsvorteile.

Die Kosten für eine Individualsoftware scheinen anfangs höher als die für den Kauf einer Standard-Lösung, jedoch fallen diese nur ein einziges Mal an und sind somit gut planbar. Die Entwicklung der individuellen Lösung dauert im Vergleich deutlich länger als der Kauf einer fertigen, direkt verfügbaren Standardsoftware. Hier sollten Sie Wert auf ein gutes Projektmanagement legen, um zeitlich und finanziell im gesetzten Rahmen zu bleiben.

Große Vorteile bietet eine Individualsoftware durch ihre unkomplizierte und schnelle Integration in Ihre bereits vorhandene IT-Infrastruktur. Wenn Sie viele Schnittstellen zu anderen Systemen benötigen, ist dies ein wichtiges Kriterium, das nicht übersehen werden sollte.

Und wenn sich die Gegebenheiten mal ändern? – Bleibt Ihre Individualentwicklung weiterhin flexibel und passt sich den veränderten Geschäftsprozessen an.
Bild Individualsoftware

Standard- und Individualsoftware

Gegenüberstellung, Vor- und Nachteile

Standard­software

Individual­software

Verfügbarkeit
Sofort, nur Hosting bzw. Einrichtung müssen vorgenommen werden
Abhängig vom Entwicklungs­aufwand, kann mehrere Monate dauern
Passgenauigkeit
Angepasst an den Durchschnitts­nutzer, Anpassungen teilweise möglich, oft aber teuer
100 % zugeschnitten auf die Bedürfnisse und Prozesse des jeweiligen Unternehmens
Integration
Kann problematisch sein, wenn bestimmte Prozesse an die Software angepasst werden müssen
Kann individuell an die bestehende IT-Infrastruktur angepasst werden
Schnittstellen
Gängige Schnittstellen meist im Lieferumfang enthalten, individuelle oft nur gegen Aufpreis teilweise möglich
Können von Beginn an geplant und bei Bedarf erweitert werden
Anpassung und Erweiterung
Kann nur bis zu einem gewissen Grad angepasst, erweitert oder verändert werden
Kann von Beginn an so designt werden, dass Änderungen jederzeit möglich sind
Kosten
Gut kalkulierbar, ggfs. initiale Anschaffungs­kosten, Lizenzkosten jährlich, meist pro Arbeitsplatz oder Nutzer; weitere Kosten für Anpassungen, Schnittstellen, Wartung/Support
Meist höher als bei Standardsoftware, abhängig vom Umfang des jeweiligen Projekts und ggfs. Änderungs­wünschen während der Entwicklung
Updates
Abhängig von der eingesetzten Software, nur wenig beeinflussbar
Können bei Bedarf zielgerichtet eingespielt werden
Risiko
Gering, da meist ein Produkt erworben wird, das bereits am Markt bekannt und etabliert ist, meist schon mehrere Entwicklungs­zyklen durchlaufen, daher stabiler
Geringfügig höher, da genau einmal in dieser Form entwickelt und anfälliger für "Kinderkrankheiten", kann bei Nichtgefallen nicht einfach gekündigt werden
Nachhaltigkeit
Bei sich stark verändernden Anforderungen wenig nachhaltig, evtl. muss später auf eine neue Software umgestiegen werden
Wird bereits im Sinne der Nachhaltigkeit entwickelt und wächst mit den Anforderungen an das Unternehmen
Herstellerabhängigkeit
Mittel, zwar abhängig von Entscheidungen des Herstellers aber dafür mehr Service-Anbieter und Agenturen, die die Software kennen und bei Bedarf Administration und Weiter­entwicklung übernehmen können
Mittel, zwar abhängig vom Hersteller, jedoch kann bei der Entwicklung berücksichtigt werden, dass der Code zu anderen Dienstleistern mitgenommen werden kann
Support
Abhängig vom Unternehmen, in der Regel jedoch gut erreichbar und zeitnahe Hilfestellung, je nach Vertragsmodell evtl. kostenpflichtig
Meist individuell durch einen persönlichen Ansprechpartner, der mit dem Projekt vertraut ist, evtl. mit zusätzlichen Kosten verbunden
Akzeptanz
Meist gut, da Bedienoberfläche durch zahlreiche Nutzer und Releases ständig optimiert wird; meist Möglichkeit, die Oberfläche dem Corporate Design des Unternehmens anzupassen
Sehr gut, da die Software speziell auf die Bedürfnisse der Nutzer zugeschnitten wird, Look & Feel kann beliebig angepasst werden
Wettbewerbsvorteil
Eher gering, da die Software unter allen Wettbewerbern nicht heraussticht und keine einzigartigen Funktionen bietet, für die nur das spezielle Unternehmen bekannt ist
Sehr hoch, da die individuell entwickelte Software die Stärken des jeweiligen Unternehmens voll ausspielen kann
Sie haben individuelle Anforderungen, die keine Standardsoftware erfüllen kann?
Dann kontaktieren Sie uns
faq - FAQ

FAQ und Begriffserklärung

Agile Softwareentwicklung, Sprints und DevOps. Begriffe, die Ihnen bei Ihrer Recherche immer wieder begegnen aber nicht wirklich etwas sagen? Wir sind der Überzeugung, hinter diesen "Buzzwords" stecken gewinnbringende Ansätze für alle Projektbeteiligten. Das Gute daran: Sie müssen diese Begriffe nicht erklären können, vertrauen Sie einfach darauf, dass wir sie bei Bedarf anwenden und Ihnen eine moderne und nachhaltige Entwicklung garantieren. Wenn Sie sich aber näher dafür interessieren und wissen möchten, womit Sie es zu tun haben, erklären wir im Folgenden die wichtigsten Fachbegriffe.

Was ist DevOps?

Der Begriff DevOps setzt sich zusammen aus „Dev“ für Development/Entwicklung und Ops für Operations/Betrieb und beschreibt das Zusammenspiel von Prozessen, Technologien und Personen in der Softwareentwicklung, die zuvor meist getrennt voneinander agiert haben (z. B. Entwicklung, Betrieb, Qualitätsmanagement, Sicherheit). Hierbei stehen vor allem der ständige und enge Austausch zwischen den Entwicklern (Dev) und dem Betrieb (Ops) sowie die gemeinsame Zielvorstellung im Vordergrund, um durch bessere Koordination und Zusammenarbeit hochwertigere und zuverlässigere Softwareprodukte zu liefern. Durch die DevOps-Tools und -Methoden können die Entwicklungsteams zudem besser auf die Anforderungen der Kunden eingehen und so die gemeinsam gesetzten Ziele schneller erreichen.

Was bedeutet Continuous Integration (CI)?

Continuous Integration, auch Kontinuierliche Integration oder kurz CI, bezeichnet eine Vorgehensweise in der Softwareentwicklung, bei der die Entwickler ihre Änderungen am Code regelmäßig in einer zentralen Versionsverwaltung (Repository) zusammenführen. Diese Änderungen können dann in eine ausführbare Anwendung umgewandelt und automatisch auf ihre Funktionsfähigkeit hin getestet werden. So erhält der Entwickler schnellstmöglich ein Feedback über den Status der Software und kann Mängel und Fehler in der Codebasis frühzeitig identifizieren und korrigieren. CI-Releases können in Absprache mit dem Projektteam beliebig oft erfolgen, allgemein wird bei dieser Methode jedoch wesentlich häufiger veröffentlicht, als bei traditionellen Ansätzen.

Was bedeutet Continuous Delivery (CD)?

Continuous Delivery ist eine Methode, die es sich zum Ziel gesetzt hat, den Softwareauslieferungsprozess schneller und zuverlässiger zu machen und die Freigabe von Produktversionen zu verkürzen. Wünscht der Kunde sich eine aktuelle Version seiner Software, kann diese jederzeit ausgeliefert und getestet werden. Bei klassischen Entwicklungsansätzen ist dies nicht möglich, hier wird die Software zunächst programmiert, getestet, evaluiert und erst dann dem Kunden zur Verfügung gestellt. Continuous Delivery hingegen sorgt durch die kontinuierliche Überprüfung aller Änderungen dafür, dass die Software unabhängig vom jeweiligen Entwicklungsstand jederzeit lauffähig und fehlerfrei ist und in kurzen zeitlichen Abständen ausgeliefert werden kann. Dadurch können die Prozesse deutlich verschlankt und beschleunigt werden, was wertvolle Zeit und Ressourcen einspart.

Was versteht man unter Cloud-native?

Cloud-native Entwicklung beschriebt den Ansatz Cloud First, bei dem eine Software für den Einsatz in der Cloud (öffentlich, privat oder hybrid) hin entwickelt wird, bei Bedarf aber auch weiterhin klassisch betrieben werden kann. Beim Cloud-native Ansatz steht nicht im Vordergrund, wo die Anwendung bereitgestellt wird, sondern vielmehr, wie diese entwickelt wird. Charakteristisch hierfür ist, dass die Software weder an eine bestimmte Hardware, noch an spezifische Betriebssysteme gebunden und somit an jedem beliebigen Ort einsetzbar ist.
Zum Einsatz kommen verschiedene Microservices, die meist nur eine einzige, spezifische Funktion bereitstellen und unabhängig voneinander (z. B. auch auf verschiedenen Servern und an verschiedenen Standorten) konzipiert werden können. Gegenüber Anwendungen, die On-Premise, bzw. in herkömmlichen Serverumgebungen betrieben werden, wird hier die Leistungsfähigkeit der einzelnen Dienste exakt an den aktuellen Bedarf angepasst – ohne dabei die Server-, Netzwerk- oder Speicherkapazität skalieren zu müssen.
Gebündelt können die Services dann in Containern (z. B. Docker) organisiert und in Open Source Systemen wie z. B. Kubernetes verwaltet, skaliert und in einem hohen Grad automatisiert bereitgestellt werden. Das Risiko menschlicher Bedien- und Konfigurationsfehler wird somit geringer und die Verfügbarkeit der Anwendungen maximiert.
Langfristig besteht das Ziel also darin, skalierbare Anwendungen in modernen, dynamischen Umgebungen zu implementieren und zu betreiben, wobei dem jeweiligen Unternehmen eine hohe Flexibilität und Agilität zugutekommt.

Was ist Agile Softwareentwicklung?

Agile Softwareentwicklung zeichnet sich im Kern dadurch aus, dem Kunden möglichst schnell eine erste, bereits lauffähige Version der Software bzw. zentraler Funktionen zur Verfügung zu stellen. Typische Vorgehensweisen sind hierbei ein direkter Einstieg in die Code-Entwicklung, das starke Einbeziehen des Kunden sowie fortlaufende Tests und Weiterentwicklungen des Produkts.

Mit Hilfe des Kunden-Feedbacks (Inspect & Adapt) werden dann in kurz aufeinanderfolgenden Abständen weitere Versionen entwickelt (iteratives Vorgehen), die sich dem wunsch-Zustand immer mehr annähern. So lernen alle Beteiligten eines Teams direkt aus den gemachten Erfahrungen und können die Entwicklungsgeschwindigkeit realistisch einschätzen. Anders als bei klassischen Entwicklungsmethoden werden die einzelnen Funktionen sowie das spätere Aussehen der Software also nicht im Voraus detailliert geplant und im Pflichten- und Lastenheft niedergeschrieben, um das Produkt dann schließlich in einem Zug zu entwickeln. Es wird bei der agilen Methode vielmehr davon ausgegangen, dass die Anforderungen zu Beginn des Projekts 1. gar nicht vollständig bekannt sind und sich 2. im Laufe des Projekts sowieso meist noch ändern. Der Kunde gibt also zu Beginn lediglich einzelne Kernfunktionalitäten vor – und das Projekt kann starten.

Wird im Projektverlauf festgestellt, dass bestimmte Änderungen an der Software notwendig sind oder neue Anforderungen hinzukommen, können diese durch die iterative Vorgehensweise ganz einfach in die nächste auszuliefernde Version mit aufgenommen werden. Die Devise ist hier: Änderungen sind stets willkommen.

Die Struktur und Arbeitsweise agiler Teams unterscheidet sich insofern von der herkömmlicher Entwicklerteams, als dass sie zum einen relativ autonom agieren, also kaum abhängig von anderen Teams sind und ihr Arbeitsergebnis von Ende-zu-Ende (Anforderungsanalyse, Design und Entwicklung, Testen, Deployment, Betrieb) verantworten. Hierfür müssen sie interdisziplinär mit allen erforderlichen Kompetenzen und Berechtigungen ausgestattet sein, um Problemstellungen selbstorganisiert lösen zu können. Zum anderen haben agile Teams meist eine recht überschaubare Größe, um schnell auf sich verändernde Umstände reagieren zu können und unbürokratisch und handlungsfähig zu bleiben. Die Kommunikation erfolgt zeitnah, direkt und zielgerichtet, was sich nicht zuletzt darin bemerkbar macht, dass Entwickler besser nachvollziehen können, was der Kunde sich von der Software erhofft, gleichzeitig aber auch das Verständnis seitens des Kunden wächst, falls eine Abschätzung mal korrigiert werden muss oder etwas noch nicht so funktioniert, wie es geplant war.

Und wie wird das agile Arbeiten unterstützt und umgesetzt? Hierzu gibt es verschiedene Prinzipien und Praktiken wie zum Beispiel Scrum und Kanban. Wenn von einem Scrum-Prozess die Rede ist, sind damit meist bestimmte Regelmeetings wie u. a. „Sprint-Planning“ und „Daily Standup“ gemeint, die den Lernprozess maximieren sollen, indem immer wieder hinterfragt wird, wie gut die bisherige Lösung mit den Kundenanforderungen übereinstimmt, wie gut das technische System ist und wie effektiv die Prozesse innerhalb der Teams ablaufen.

Ohne das richtige Mindset wird die Einführung agiler Entwicklungsmethoden jedoch kaum den erhofften Effekt bringen: für das erfolgreiche Arbeiten mit dieser Methode sind zwei Dinge unumgänglich: das Verabschieden alter Gewohnheiten und das Zulassen einer dauerhaften, aber kreativen Unsicherheit.

Was ist Selenium, bzw. ein Selenium-Test?

Selenium ist ein Framework, mit dem Webanwendungen unabhängig von der benutzten Entwicklungsumgebung bzw. Programmiersprache automatisiert getestet werden können. Hierbei können Interaktionen mit der Anwendung (z. B. das Ausfüllen von Formularen) aufgenommen und beliebig oft automatisiert wiederholt werden, was das Testen schneller und effizienter macht und so wertvolle Zeit und Ressourcen einspart.

Was versteht man unter Skalierbarkeit?

Skalierbarkeit ist die Fähigkeit, die Leistung einer Software ohne Qualitätsverluste verkleinern oder vergrößern zu können, sodass sie flexibel an veränderte Gegebenheiten (z. B. erhöhte Nutzerzahl, erhöhter Speicherbedarf, erhöhte Anzahl an Datenobjekten) angepasst werden kann.

Bei der vertikalen Skalierung, auch "Scale-up", werden dem aktuellen Rechner hierfür einfach weitere, leistungsfähigere Hardware-Komponenten (z. B. CPU, Speicher, Schnittstellen) hinzugefügt. Diese Form der Skalierung wird jedoch mit der Zeit meist sehr kostspielig, zudem ist irgendwann die physikalische Grenze des Systems erreicht. Bei der horizontalen Skalierung, auch "Scale-out", werden für mehr Leistung weitere Rechner zu einem Rechnernetz hinzugefügt und die Aufgaben, bzw. die erhöhte Last auf alle Rechner verteilt.

Unabhängig von der gewählten Methode, ist es wichtig, dass die Software in der neuen Skalierung nicht einfach nur funktioniert, sondern alle sich bietenden Vorteile nutzt. Wie skalierbar ein System ist, hängt zu großen Teilen von der gewählten Softwarearchitektur ab. Möchte man in der Zukunft möglichst flexibel bleiben, ist es besonders wichtig, keine starre und monolithische Architektur zu wählen, da diese meist nur mit großem Aufwand verändert werden kann. Dagegen lassen sich bei einer gewählten Microservice-Architektur gezielt einzelne Funktionen im Sinne eine Scale-outs anpassen.
Platzhalter Platzhalter Platzhalter Platzhalter Platzhalter Platzhalter
Top