Software

Services

Wir entwickeln Software für Sie.
Zur SW-Entwicklung gehört das Programmieren und die Identifikation von Anforderungen.
Mindestens.

Dienstleister Individualsoftwaren Deutschland

Firmen-
und Projekt-
kultur

Unsere Leistungen erbringen wir sowohl in agilen oder multi-agilen Umgebungen wie z.B. Scrum, SAFe oder Kanban. Ungeachtet welche Projekt-Umfelder unsere Kunden haben, unsere SW-Consultants sind nicht nur zertifiziert, sondern auch erfahren. Übrigens auch in klassischen Methoden wie Wasserfall, V- oder Phasenmodellen.

Das gilt ebenso für unsere Requirements Engineers. Als ehemalige SW-Entwickler oder SW-Architekten sind sie zertifizierte Prozessanalytiker mit Empathie und Sinn für relevante Fragen.

Muttersprachler als Kommunikationsschnittstelle zum Kunden

Wir wissen, dass die Mitarbeiter unserer Kunden auch wunderbar in englischer Sprache kommunizieren können. Trotzdem sinkt die Projekteffizienz, wenn die Kommunikation ausschließlich in einer Fremdsprache erfolgt. Dies belegen zahlreiche Studien. Daher bieten wir unseren Kunden in unseren Stammländern DACH, USA und China Projektkommunikation in der jeweiligen Muttersprache an. One face and native language to the customer.

Standorte für unsere Softwareentwicklungs-Dienstleistungen

Bevor Corona in unser aller Leben getreten ist vertraten wir die Ansicht, dass unsere Dienstleistungen am besten beim Kunden vor Ort erbracht werden können. Kurze physikalische persönliche Kommunikationswege und Besprechungen waren stets unsere Argumente für die Erbringung unserer Services beim Kunden vor Ort.

Die Coronasituation hat uns jedoch gezeigt, dass Kommunikation via Videokonferenzen, Messenger- und Projektmanagementplattformen nicht weniger persönlich und effektiv ist. Daher erbringen wir unsere Softwareentwicklungsservices mittlerweile häufig virtuell. Die dadurch eingesparte Zeit kann sogar sinnvoll für unsere Kundenprojekte investiert werden. Außerdem wird auch die Umwelt durch reduziertes Reiseaufkommen geschont. Allerdings wissen wir mittlerweile, dass ein Kennenlernen in Person, insbesondere am Anfang von Kundenprojekten, ein schnelles gegenseitiges Vertrauen begünstigt.

Unser modulares
Angebot an Sie

Dienstleistung
Software-Entwicklung

Mit der Softwareentwicklungs-Dienstleistung beschäftigen wir uns täglich. In diesem Bereich wird es etwas technisch. Wir wollen Ihnen, als IT-Leiter oder IT-Ansprechpartner, unsere Erfahrungen und Kenntnisse aus technischer Perspektive kurz darstellen.

Softwareentwicklungs-Dienstleistungen erbringen wir HighPots-intern als auch für Kunden. Dienstleistungen rund um die Softwareentwicklung ist unser Alltagsgeschäft. Wir entwickeln bereits seit Ende der 80er Jahre Software im Kundenauftrag. Im Auftrag unserer Kunden und Partner entwickeln wir Software professionell, schnell und wirtschaftlich.

Projektumfeld

Wir unterstützen Sie bei der Wahl der richtigen Projektorganisation und der passenden Projektmanagementmethode. Ob multi-agil, agil, hybrid-agil oder Wasserfall – wir kennen die meisten. Unsere Consultants sind in mehreren Umgebungen und Methoden alltäglich unterwegs. Z.B. in Scrum, RUP, Kanban, MSF, Hermes, Wasserfalls, Prince2, etc. Auch in unterschiedlichen Prozessumfelder wie beispielsweise CMMI.

Business Analytics – Requirements Engineering

Alles beginnt mit der Definition von Anforderungen, die wir gemeinsam erarbeiten als Grundlage für weitere Schritte. Im Ergebnis entstehen z.B. via Enterprise Architect erstellte UML-genormte Use Cases, Ablaufdiagramme, User Stories, Sequenzdiagramme, Klassendiagramme, etc. Dabei vergessen wir natürlich Anforderungen wie Performance, Datensicherheit, Datenschutz, Laufzeitverhalten, Lizenzmanagement und Wartungsintervalle nicht.

Softwarearchitektur

Auf Basis der Anforderungen entwerfen unsere Softwarearchitekten und SW-Ingenieure die passende Architektur für Ihre Geschäfts- und IT-Welt. Natürlich wird dabei nicht nur die Grundlage für die Programmierung und Softwareentwickler geschaffen. Sondern auch die kosteneffiziente Wartung und das Testen sowie das Fehlermanagement gleich mitberücksichtigt. Selbstverständlich definieren wir für Sie auch die Deployment-Prozesse für Test- und Produktivumgebungen als auch das Release-Management.

Richtige Definition der Datenmodelle und der Datenbankmodelle

Die Definition des passenden Datenbankmodells für einen zukunftsfähigen Datenraum ist essentiell. Wann eine klassische Datenbank für strukturierte Daten sinnvoll ist und wann eine NoSQL-Datenbank zum Einsatz kommen sollte erläutern wir Ihnen sehr gerne. Häufig sehen wir NoSQL-Datenbanken wie MongoDB oder Cassandra unnötigerweise im Einsatz.

In vielen Projekten die HighPots von anderen Dienstleistern übernommen hatte stellte sich bei der Überarbeitung der Technologie heraus, dass die Konsistenz der Daten wichtiger gewesen wäre als die Performance.
Häufig sehen wir auch, dass dokumentenorientierte NoSQL-Datenbanken wie z.B. MongoDB für Graphen eingesetzt werden, anstelle hierfür geeigneterer NoSQL-Datenbanken wie z.B. Neo4J einzusetzen. Sehr gerne unterstützen wir Sie auch bei der Auswahl des richtigen Datenraums und dessen Architektur und Harmonisierung.

Softwareentwicklung und Programmierung

Die Programmierung der Individualsoftware erfolgt in der definierten Projektumgebung mit den von den Softwarearchitekten definierten Frameworks, Serverkomponenten, Datenbanken, Programmiersprachen und deren IDE‘s. Ungeachtet ob Frontend oder Backend, wir haben die passenden SW-Entwickler für Ihr Projekt.

Testen

Das Testen ist eine wichtige Aufgabe und erfolgt anhand von Testdokumentationen und Testplänen. Testautomatisierung, Unit-Tests, Funktions-Tests, Last-Tests und Ende-zu-Ende-Testverfahren werden nach DIN ISO Norm und/oder gemäß ISTQB durchgeführt.

Dokumentation

Es ist ein bekanntes Klischee, dass Techniker ungern dokumentieren. Wir haben das Glück, dass wir technische Consultants haben, die gerne dokumentieren. Wir kümmern uns sowohl um die Dokumentation im Code, als auch um die Dokumentation für Ihren Datenschutzbeauftragten, Ihre IT-Administration und DevOps und natürlich auch für Ihren Support.

Requirements
Engineering und
Business Analytics

Gutes Requirements Engineering reduziert nicht nur die Projektkosten, sondern es macht auch frühzeitig die Projektmachbarkeit transparent. Außerdem steigert gutes Requirements Engineering die Projekterfolgswahrscheinlichkeit erheblich. Der Aufbau von IT-Infrastrukturen und von Software, die alle Anforderungen erfüllen, kann nur auf einem guten Fundament erfolgen.

Requirements Engineering Definition

Präzise Fragetechnik

Um die Bedürfnisse und Anforderungen aus dem Business zu verstehen, ist das Stellen von präzisen Fragen und auch das Hinterfragen wesentlich.

Empathie und Sympathie

Einem unsympathischen Menschen werden ungern Antworten gegeben. Die Empathie ist eine essenzielle Fähigkeit, die ein Requirements Engineer haben muss.

Darstellung von Anforderungen und Bedürfnissen​

Alle betroffenen Stakeholder müssen das Projekt verstehen. Hierfür bedarf es klarer Kommunikation in Wort, Schrift und insbesondere in Diagrammen. Ungeachtet ob Prozessablaufdiagramme, User Stories, Epics, Use Cases, Sequenddiagramme, Objekt- und Klassen-Diagramme, Aktivitätsdiagramme, etc. Die Fähigkeiten, die Anforderungen und Bedürfnisse klar zu strukturieren, logisch zu abstrahieren und darzustellen ist eine weitere Fähigkeit, die ein Requirements Engineer mitbringen muss.

Anforderungen: Vom Business - in die Technik-Sprache

Ein Übersetzer zeichnet sich dadurch aus, dass er die Sprachen von Sender und Empfänger (und andersherum) beherrscht. Ein Dolmetscher muss diese Fähigkeit sogar in Echtzeit erbringen. Ein Requirements Engineer, der keine praktischen Erfahrungen in der Softwareentwicklung vorweisen kann und ausschließlich aus der Prozesswelt kommt, ist ein Risiko. Andersherum genauso. Aus diesem Grund setzen wir bei HighPots ausschließlich auf Requirements Engineers, die praktische und jahrelange Erfahrungen aus dem Business als auch aus der Technologie mitbringen.

Die Fähigkeit, nämlich in beiden Welten Zuhause zu sein, ist ein wichtiger Erfolgsbaustein. Die Erfahrungen in der Technologie sollten dabei nicht nur die Programmierung beinhalten, sondern ebenso die Softwarearchitektur und die IT-Infrastruktur. Ein Requirements Engineer bei HighPots ist daher ein erfahrener Generalist, der sowohl psychologisch, technologisch und sprachlich erfahren und geschult ist und auch das Business Prozess Management beherrscht.

Individual-
software-
entwicklung

Individuelle Software ermöglicht das Abheben vom Wettbewerb und macht unabhängig von Standardsoftware der großen Hersteller. Individualsoftware birgt Risiken, aber auch große Chancen.

Individuelle Softwareentwicklungen (Individualsoftware) bilden interne Unternehmensprozesse besser ab als Standardsoftware. Im Zeitalter der Digitalisierung ein wichtiger Wettbewerbsvorteil. Allerdings ist das Setup von Release- und Support-Management mit mehr Aufwand verbunden.

Individualsoftware-Entwicklung

Individualsoftwareentwicklung befreit Ihr Unternehmen von willkürlicher Lizenz-, Sicherheits- und Release-Politiken der Softwarehersteller; denn viele Softwarehersteller sind heutzutage entweder multinationale Konzerne für die Ihre Bedürfnisse nicht wichtig sind, oder es sind kleine Unternehmen mit Ressourcenproblemen.

Aber Individualsoftware hat auch Nachteile. Diese finden Sie gegliedert weiter unten auf dieser Seite. Bei der Betrachtung der Vor- und Nachteile von Individualsoftwareentwicklung haben wir bei HighPots versucht, objektiv zu sein.

Individualsoftware

Entwicklung teurer als der Einsatz von Standardsoftware?

Individualsoftware ist mittelfristig nicht teurer als gekaufte Standardsoftware. Dies belegen relevante Studien (z.B. vom Fraunhofer Institut DOI23/45 vom 15.02.2021). In den Studien sind die Total Cost of Ownership-Kosten berücksichtigt. Inklusive derjenigen Kosten, die anfallen, wenn die Software wieder aus der Organisation entfernt werden soll.

Kann HighPots als

Dienstleister für Individualsoftware

überhaupt objektiv sein?

Unsere Objektivität ist nicht beeinträchtigt, denn wir setzen selbst Standardsoftware HighPots-intern ein. Z.B. von SAP, Microsoft oder der Typo3 Association. Daher kennen wir sowohl die Aufwände für das Customizing der Standard-Software als auch die Lizenzkosten und Change-Politik der großen Anbieter von Standarsdsoftware.

Auch passen wir im Kundenauftrag regelmäßig Standard-Software an. Somit ist das Customizing von Standardsoftware eine wichtigen Säule bei HighPots, genauso wie die Individualsoftwareentwicklung. Daher sind wir in der Lage, objektive Argumente für und gegen Standardsoftware aufzuführen.

Definition Individualsoftware und Standardsoftware

Standardsoftware wird verstanden als „vorgefertigtes Produkt für einen klar definierten Anwendungsbereich“. Individualsoftware ist Software, die gezielt für den Einsatz in einer bestimmten Organisation entwickelt wurde.

Standardsoftware wird unterteilt in:

Nachteile von Standard-Software:

Wir haben sogar bereits festgestellt, dass bei den Herstellern von Standardsoftware bereits sehr viele Code-Altlasten vorhanden sind. Die Vorteile der Standard-Software werden somit wieder
aufgehoben. Außerdem müssen die Hersteller von Standard-Software laufend Kompromisse bei der Entwicklung und Bereitstellung Ihrer Software machen. Denn schließlich muss die Software für alle Kunden und Branchen passen und kann nicht maßgeschneidert pro Kunde sein.

Häufig wird argumentiert, dass die Customizing-Möglichkeiten der Standard-Software den großen Vorteil der Individualsoftware zunichtemachen würde: nämlich die Individualisierungs-Möglichkeiten für die unterschiedlichen Prozesswelten verschiedener Unternehmen.
Dieses Argument spiegelt jedoch nicht die Realität. Denn die Customizing-Möglichkeiten der Standard-Software sind limitiert.

Ebenso sollte beachtet werden, dass der zur Individualisierung entwickelte Code häufig, z.B. bei neuen Releases der Standard-Software, angepasst werden muss. Auch Code-Frameworks für Individualsoftware sind Release-Zyklen unterworfen, doch die Entscheidung ob und wann das Release eingespielt werden soll, kann frei gewählt werden.

Entscheidungshilfe Individualsoftware oder Standardsoftware

Kriterien, die Sie bei der Entscheidung unterstützen:

Wo sollte

Individualsoftware-entwicklung

eingesetzt werden?

An welchen Stellen verdient Ihr Unternehmen das meiste Geld? In welchen Bereichen liegt das Knowhow Ihres Unternehmens? Wo liegt die Wertschöpfung? Wenn Sie diese Fragen beantwortet haben, beantworten Sie die zweite Frage: Wie stark beeinflusst die Software die Wertschöpfung Ihres Unternehmens? Je größer die Abhängigkeit des Unternehmenserfolgs von der Software ist, desto intensiver und sensibler sollten Sie folgende 2 Fragen diskutieren:

Kann sich mein Unternehmen vom Wettbewerb noch absetzen, wenn mein Unternehmen mit derselben Standardsoftware arbeitet wie der Wettbewerb?
Möchte mein Unternehmen in diesem sensiblen Bereich eine starke Abhängigkeit zu einem Standardsoftwarehersteller?

Natürlich könnten Sie nun argumentieren, dass bei der Einführung von Standardsoftware das Risiko des Scheiterns geringer ist. Oder dass der Wettbewerb, der mit dieser oder jener Standardsoftware arbeitet, expandiert hat.

Außerdem könnten Sie zum zweiten Punkt auch anführen, dass bei einer Individualsoftwareentwicklung ebenfalls eine Abhängigkeit zum Softwaredienstleistungsunternehmen, das die Individualsoftware entwickelt, besteht.

Allerdings kann dieses Argument mit einer guten Projektressourcen-Planung entkräftet werden. In dem Sie eigene Entwickler in das Individual-Softwareentwicklungs-Projekt integrieren. Damit die Individualsoftwareentwicklung nicht zu teuer wird, können Sie marktübliche Komponenten verwenden. Z.B. weit verbreitete Programmiersprachen, gängige Softwarearchitekturen und IT-Infrastruktur-Komponenten erleichtern nicht nur die Beschaffung des technischen Personals, sondern auch eine mögliche spätere Einarbeitung in den Code.

Fazit: Individualsoftware oder Standard-softwarehersteller

Mit der Standardsoftware reduzieren Sie das Risiko, dass die Einführung im Rahmen eines IT-Projekts scheitert. Allerdings ist die Wahrscheinlichkeit, dass die Standardsoftware im Laufe der Zeit mehr Geld für Individualisierung und Maintenance kostet als Individualsoftware, hoch. Auch kommen Sie womöglich nicht um die Nutzung von Clouddiensten herum – Vertrauen zu den Standardsoftware-Herstellern wird zur Voraussetzung. Ebenfalls sind Sie der Lizenzpolitik der Standardsoftware-Hersteller ausgeliefert. Wenn Ihre Mitbewerber ebenfalls mit derselben Software arbeiten, wird es schwieriger, einen Digitalisierungs-Vorsprung zu erarbeiten.
Mit einer Individual-Software und einem vertrauensvollen Dienstleister haben Sie höhere Chancen, den Wettbewerb auszuspielen und Kosten zu sparen.

Auswahl des Dienstleisters für Individualsoftwareentwicklung

Der Dienstleister sollte für die Softwareentwicklung zu Ihrer Unternehmenskultur passen. Haben Sie eine Startup-Kultur in Ihrem Unternehmen, passt ein Individualsoftwareentwicklungs-Unternehmen welches im Banken- und Versicherungswesen aktiv ist, womöglich weniger gut zu Ihrem Unternehmen.

Knowhow im Bereich Requirements Engineering bzw. Anforderungs-management

Viel wichtiger ist jedoch, dass der Dienstleister authentisch und erfahren ist. Er muss gut zuhören und die Aufwände gut einschätzen können, um Ihnen ein passendes Angebot zu erstellen. Er sollte genau verstehen, was Sie benötigen. Hierfür bedarf es viel Erfahrung und Wissen im Requirements Engineering. Es gilt, Ihre Anforderungen genau zu dokumentieren und zu skizzieren. Dazu gehören Ihr internes Prozessumfeld, die Prozesse die die zukünftige Individualsoftware abbilden soll sowie die Kommunikation mit anderen Systemen und das Reporting. Aber auch die nicht-funktionalen Anforderungen, Performance, Sicherheit, etc. sollten vom Dienstleister erfasst werden.
Unnötig komplizierte Anforderungen und Prozesse sollten vereinfacht werden. Erfahrungen aus ähnlichen Projekten sollten mit einfließen. Siehe hierzu auch unser Beratungsportfolio im Bereich Software Strategie.

Technologische Umsetzung bzw. technische Realisierung

Das Dienstleistungsunternehmen das die Individualsoftware entwickelt sollte mit bewährten modernen Technologien und Software-Architekturen arbeiten. Die Individualsoftwareentwicklung sollte am Ende innovativ sein und stabil funktionieren – sie muss nicht „hip“ sein.
Sie würden damit am Ende nur Kunden verlieren und unzufrieden sein. Daher ist es wichtig, dass das Individualsoftwareentwicklungs-Unternehmen realistisch und ehrlich ist.
Auch sollte der Dienstleister, der die Individualsoftware entwickelt, damit einverstanden sein, dass Entwickler von Ihrem Unternehmen an dem Projekt mitwirken. Der Dienstleister sollte Verständnis dafür haben, dass Sie sich nicht in eine vollständige Abhängigkeit begeben möchten.
Wenn möglich sollten auch weit verbreitete standardisierte und gut dokumentierte Technologien und Programmiersprachen eingesetzt werden. So dass Sie notfalls die Entwickler mit möglichst geringen finanziellen Zusatzaufwänden austauschen können. Oder potentiellen Personal-Fluktuationen entgegenwirken können.

Data Analytics-Erfahrungen beim Dienstleister sollten Voraussetzung für Individualsoftware-Entwicklung sein

Heutzutage kann Software nicht mehr unabhängig von Datenbanken und Datenanalyse-Anforderungen entwickelt werden. Softwareentwickler benötigen Erfahrungen, welche Datenauswertungen möglich sein werden. Auch wenn die Kunden-Anforderungen womöglich nur wenig aufwendige Reports enthalten. Der Bereich Daten entwickelt sich bei allen Unternehmenskunden rasant, so dass die Anforderungen von heute morgen schon keine Gültigkeit mehr haben werden. Daher muss die Softwarearchitektur, Datenbankstruktur bereits bei der Realisierung der Individualsoftware auf die Zukunft ausgerichtet werden. Wissen und Erfahrungen im Bereich Daten, Datenräume, Datenanalysen bzw. Data Analytics sollte der Dienstleister für die Individualsoftware-Entwicklung mitbringen.

Programmier-
Portfolio

auf einen Blick

Mit der Softwareentwicklungs-Dienstleistung beschäftigen wir uns täglich. In diesem Bereich wird es etwas technisch. Wir wollen Ihnen, als IT-Leiter oder IT-Ansprechpartner, unsere Erfahrungen und Kenntnisse aus technischer Perspektive kurz darstellen.

Softwareentwicklungs-Dienstleistungen erbringen wir HighPots-intern als auch für Kunden. Dienstleistungen rund um die Softwareentwicklung ist unser Alltagsgeschäft. Wir entwickeln bereits seit Ende der 80er Jahre Software im Kundenauftrag. Im Auftrag unserer Kunden und Partner entwickeln wir Software professionell, schnell und wirtschaftlich.

Allgemeiner Überblick über unsere

SW-Entwicklungs-dienstleistung

Überblick

Programmiersprachen

Überblick

Frameworks

Frameworks für die Software-entwicklungs-Dienstleistung in Java, PHP, und C++

Frameworks für die Individual-softwareent-wicklung in Python

Full-Stack Frameworks

Non-Full-Stack Frameworks

Framework für die Softwareentwicklungs-dienstleistung in C# und Visual Basic ist Spring MVC.

Frameworks für die Softwareentwicklung in JavaScript

Unsere SW-Entwicklungs-Consultants arbeiten gerne mit folgenden IDEs

Code-Management

Repository-Systeme mit denen wir bei der Individualsoftware-entwicklung langjährige Erfahrungen haben

HighPots entwickelt

Software auf folgenden Betriebssystemen

Unsere Software Services in den Bereichen

Maschinelles Lernen und Deep Learning

Wir haben Projekterfahrung in nachstehender Deep Learning Software und in den aufgeführten Software-Paketen für Maschinelles Lernen:

Dienstleistungsportfolio bei der

Webportal-Entwicklung

Mobile Computing

<