Kategorien
Allgemein

Forschung fördert Fortschritt

PermanEnt – Performance-Überwachung Effizient Integriert

Wettbewerbsfähigkeit ist mit Entwicklung verbunden. Wir investieren in neue Prozesse & Technologien. Ausdruck findet das im Forschungsprojekt PermanEnt des Bundesforschungsministeriums.

Der wirtschaftliche Softwareentwicklungsprozess stellt immer eine Balance zwischen Produktqualität und Entwicklungsaufwand dar. Durch automatisierte Werkzeuge kann der Entwicklungsaufwand verringert und dadurch höhere Qualität wirtschaftlich sinnvoll erreicht werden. Die funktionale Stabilität eines Projektes ist von hoher Bedeutung, gerade bei größeren Projekten ist sie jedoch zunehmend schwierig sicherzustellen. Deshalb wurde eine Reihe Werkzeuge entwickelt (im Java-Umfeld Jenkins, Maven SureFire, JUnit, …) um möglichst frühzeitig unbeabsichtigte Regressionen (=Verschlechterungen) festzustellen. Der hohe Grad der Automatisierung ermöglichte in der Folge die Anwendung von automatisierten Tests auch bei kleineren Projekten, sodass die Qualität der Softwareprodukte auch bei solchen stieg, die nicht als kritisch eingestuft werden.

Eine weitere Dimension der Softwarequalität ist die Laufzeitperformance. Dort, wo diese kritisch ist, werden bereits sporadisches oder automatisiertes Monitoring eingesetzt, teilweise auch Regressionstests während des Entwicklungsprozesses. PermanEnt stellt eine Automatisierung dieses Prozesses dar: Aufbauend auf den verbreiteten Methoden der funktionalen Unit-Tests und ihrer Integration in den Entwicklungsprozess (CI), soll eine höhere Codequalität für viele solcher Projekte erreicht werden, für die automatisierte Performance-Überwachung bisher nicht wirtschaftlich war. Dabei werden die funktionalen Unit-Tests zu Performance-Tests erweitert und durch eine Erweiterung des Jenkins automatisiert getestet. Peass-CI-Plugin für Jenkins Server
Die Ergebnisse informieren dann über mögliche Regressionen der Performance.

Zusätzlich wird der Aufrufbaum analysiert und kombiniert mit den tatsächlichen Codeänderungen eine Ursachenanalyse erstellt, um die Softwareentwickler weiter zu unterstützen.
Die entwickelten Technologien bauen dabei maßgeblich auf den Arbeiten von David Georg Reichelt von der Universität Leipzig auf.

Konkret werden die Technologien anhand dreier aktiver Entwicklungsprojekte bei den Forschungspartnern erprobt: dem Hamburger Fahrgastleitsystem der HBT GmbH, dem Immobilieninformationssystem von GeoMap durch evermind GmbH und dem Android-Management-System durch IOTIQ.

BMBF Logo

 

Kategorien
3. Digitale Innovation umsetzen

Softwaretechnologie- und Architekturberatung

Am Beginn eines Projektes steht die Definition des zu erreichenden Ziels. Für die Entwicklung einer Cloud-Strategie bzw. einem Betriebsführungskonzepts sollten einige Eckpunkte vereinbart werden. Gemeinsam werden Punkte wie die erwartete Benutzerzahl bzw. die zu verarbeitende Last besprochen. Auch die Art der zu verarbeitenden Daten sollte hinsichtlich dem abgeschätzten Volumen oder auch Vertraulichkeitsstufe bekannt sein.

Aus den Informationen zum neuen Projekt werden Eckpunkte für einen zukünftigen Betrieb der Applikation vorgeschlagen und mit allen Beteiligten diskutiert.

Dabei gibt es Schnittpunkte mit der implementierten Softwarearchitektur. Diese soll den Anforderungen an Skalierbarkeit und Transaktionssicherheit sowie Zuverlässigkeit gerecht werden. Eine enge Abstimmung zwischen Softwarearchitekt und Cloud-Architekt ist dabei sehr sinnoll.

Ein weiterer wesentlicher Erfolgsfaktor für eine zuverlässige Betriebsführung ist die Wiederholbarkeit von Installationen auf Basis von verbreiteten Standards. Dabei soll das Wissen über die Betriebsführung möglichst nicht von einigen wenigen Personen abhängig sein. Als Mittel dafür hat sich Infrastructure As Code (IaC) bewährt. Sämtliche Konfigurationen und Installationsschritte werden in Dateien systematisch verwaltet und unterliegen dem gleichen Lebenszyklus wie die zu betreibende Software.

Die Umsetzung dieses Ansatzes gelingt sowohl auf Basis von Cloud-Produkten als auch auf kundeneigener Hardware bzw. gemieteter Hardware. Auch ein Mischbetrieb als Hybrid-Cloud ist möglich.

Sofern die Softwareentwicklung noch zu erfolgen hat, empfiehlt sich eine Integration der angestrebten Betriebsform bereits während der Entwicklung. Dabei werden Test- und Integrationssysteme automatisch gestartet und können automatisierte Tests bereits in der Umgebung ablaufen lassen, die später auch die Betriebsumgebung sein wird. Dies minimiert die Fehleranfälligkeit beim Übergang einer Entwicklungsversion zu einer Produktivversion.

Schließlich helfen standardisierte Werkzeuge dabei, Standardaufgaben vergleichsweise einfach zu lösen. Dies betrifft die Überwachung der Applikation sowie die automatisierte Reaktion im Fehlerfall. Auch die Auswertung von Logfiles kann mit passenden Tools einfach erfolgen. Die aus dem Cloudbetrieb resultierenden besonderen Anforderungen wie zeitliche Sortierung von Logeinträgen aus mehreren Instanzen oder das Tracing von Anfragen über verschiedene Services hinweg ist dabei bereits abgedeckt.

Schlussendlich ist die eingangs erwähnte Zielstellung natürlich zu erweitern. Verantwortliche müssen benannt und eingewiesen sein. Der dabei notwendige Know-how-Transfer ist ebenso Zielstellung wie auch die Vermittlung von best-pratice für verschiedene Aufgaben.

Wir begleiten Ihr Projekt von Stunde 0, über eine erste Einrichtung bis hin zur regelmäßigen Anpassung und Pflege.

Kategorien
3. Digitale Innovation umsetzen

Softwareentwicklung

Nach der Beratung zur Softwaretechnologie – und der benötigten Cloudinfrastruktur vereinbaren wir mit dem Kunden die entsprechende Entwicklungsmethodik und das weitere Vorgehen.

Protoyping und MVP

Um eine neue Idee oder ein Softwareprodukt zu testen, ist ein Prototyping der Software möglich. Hierfür werden die minimal notwendigen Funktionen definiert, die ein Produkt benötigt, um erlösfähig zu sein, bzw. ein Marktfeedback einzuholen. In der Entwicklung sprechen wir vom sogenannten „MVP“ dem „minimum viable product“. Der Vorteil diese Methode liegt darin, dass mit minimalem Zeit- und Kostenaufwand ein Markttest für die Produktidee möglich ist. Ist der Test erfolgreich, schließt sich dann die Entwicklungsphase an.

SCRUM

In den meisten Fällen kommt dabei die agile Entwicklungsmethodik SCRUM zum Einsatz. Im Unterschied zum klassischen „Lasten- und Pflichtenheft“ wird bei diesem Ansatz nicht versucht, das Projekt gleich von Beginn an vollumfänglich zu definieren, sondern es werden Funktionalitäten der Software festgelegt, die in meist zweiwöchigen sogenannten Sprints bearbeitet werden. Der Vorteil dieses Ansatzes ist die Einbindung des Kunden als sog. „product owner“ gleich von Beginn an. Der Fortschritt bei der Entwicklung ist regelmäßig sichtbar und auf den „Sprint“ folgend anschließend „reviews“, in denen die erreichten Ziele und die möglichen Probleme besprochen werden. Dieses iterative Vorgehen führt durch das regelmäßige Feedback zu einem Produkt, welches die Kundenwünsche von Anfang an berücksichtigt und mit in die Entwicklung einfließen lässt.

Kategorien
3. Digitale Innovation umsetzen

e-Commerce Systeme

Waren und Dienstleistungen online zu verkaufen stellt originär keine große Aufgabe an Softwaresysteme – jedes Shopsystem ermöglicht das präsentieren eines Kataloges und führt den User über einen mehr oder weniger einfachen Bestellprozess zum Kaufabschluss, aber es sind die Details, die diesen relativ trivialen Prozess sehr schnell sehr komplex machen. Individuelle Anforderungen auf allen Ebenen erfordern Know-How in vielen Disziplinen so z.B. in Suchmaschinenoptimierung und Suchmaschinenmarketing, Bezahl- und Warenwirtschaftsysteme oder auch Versandlogistik. Ausgehend von der Erwartungshaltung der Kunden und zudem der Anforderungen der Betreiber soll der Onlinehandel vieles gleichzeitig können und dabei kann man schnell den Überblick verlieren.

Evermind entwickelt individuelle Softwarelösungen für alle Branchen. Im E-Business setzen wir auf bewährte Basistechnologie, die je nach Anforderungskatalog und Budget aus proprietären oder Open Source Anwendungen besteht. In einigen Fällen ist eine komplette Eigenentwicklung sinnvoll. Ob Ihr neuer Onlineshop auf WordPress mit WooCommerce, Magento, Oxid, BigCartel oder gar Wix oder Jimdoo (…) aufgesetzt werden sollte, hängt davon ab, was Sie wollen / was Ihre Kunden wollen / was nötig und möglich ist in Bezug auf Budget, Zeit und Manpower.

Für Neueinsteiger

Gemeinsam entwickeln wir eine Strategie und stecken konkrete Ziele ab, die wir über einen festen Zeitraum erreichen wollen. Sie definieren, welche Funktionen essentiell sind und wir beraten, welche Ausbaustufen im Laufe der ersten Jahre wichtig sind. Aus dem gemeinsam entwickelten Konzept werden mögliche Softwarelösungen evaluiert (und wenn nötig individualisiert) um den bestmöglichen Start in den Internethandel zu gewährleisten.

Für Alte Hasen

Wenn Sie bereits online erfolgreich sind, Ihr E-Shop aber z.B. an technische Grenzen stößt – es Wachstumsbarrieren in Bezug auf Mehrsprachigkeit, Mobile First, Backendanbindung, SEO o.ä. gibt, dann können wir gemeinsam evaluieren, welche Möglichkeiten sich Ihnen bieten. Nicht immer muss alles neu aufgesetzt / entwickelt werden, denn das bis hier hin erarbeitete digitale Ladengeschäft möchten Sie ja nicht durch einen unüberlegten Systemwechsel in Gefahr bringen, sondern weiter wachsen und sinnvoll ausbauen. Und wenn ein Systemwechsel sinnvoll erscheint, sollte dieser professionell und überlegt erfolgen. Wir können Ihnen dabei helfen.

Für Individualisten

Vielleicht haben Sie auch konkrete Detailvorstellungen und benötigen eine ganz bestimmte Funktion/ ein individuell programmiertes WordPress Plugin / eine App, die das Verkaufserlebnis erweitert / eine Anbindung an ihr CRM oder Wawi oder ähnliches für Ihren bestehenden Onlineshop – sprechen Sie uns an, unsere erfahrenen Softwareentwickler stehen Ihnen gern zur Verfügung.

Bei Interesse an einer Beratung können Sie uns gerne unverbindlich kontaktieren.

Kategorien
3. Digitale Innovation umsetzen

Webportale und -Applikationen

evermind setzt mit Ihnen Ihr neues Geschäftsmodell um, erweitert Ihr bestehendes Webportal um neue Umsatz-treibende Funktionalitäten und bringt mit Ihnen den Re-Launch Ihrer Website voran.

Wir arbeiten und verfügen über erfahrene Front- und Backend-Developer, die Ihre Ideen in responsive Webapplikationen umsetzen.

Zu Beginn möchten wir Ihr Geschäftsmodell verstehen und darauf basierend die User Journey gestalten und in User Stories aufteilen. Dazu nutzen wir eine engmaschige Kommunikation, online und offline Workshops und kollaborative Tools.

Gemeinsam gestalten wir mit Ihnen in einem iterativen Prozess die User Navigation durch Ihr Portal und kreieren basierend auf Ihren Vorgaben CI-gerechtes Design.

Dabei arbeiten Sie mit unseren Grafikern vom ersten graphischen Draft bis zum umsetzbaren gepolishten Design zusammen. Unsere Entwickler setzen die mit Ihnen gemeinsam erarbeiteten graphischen Sketches optisch in HTML und CSS um und nutzen diese auch als Vorlage für die Umsetzung von Navigation und Funktionalitäten.

Dabei arbeiten unsere Entwickler eng mit Ihren IT-Ressourcen zusammen. Wir integrieren Ihre neuen Webportale und -Applikationen in Ihre heterogene IT-Landschaft.

Wir liefern SCRUM basiert im Rahmen einer agilen Webentwicklung ein optimales Ergebnis und gewähren jederzeit Einblick in unseren Entwicklungsprozess. Ein partnerschaftliches Verhältnis mit unseren Kunden hat für uns eine hohe Priorität.

Nach der Erstellung erster Prototypen und Ihres Feedbacks und das eventueller Testkunden erweitern wir Ihr Webportal stufenweise um weitere Funktionalitäten und setzen alle vereinbarten User Stories um.

evermind gestaltet Ihre Webapplikation DSGVO-konform und entwickelt dabei mit allen gängigen modernen Frameworks und Libraries (AngularJS, React, Node.js) und Programmiersprachen (Java, JavaScript, C#). Wir konzeptionieren die hinter Ihrem Webportal liegende Datenbank, importieren bereits bestehende Daten und sorgen für Interfaces zu allen benötigten bereits bestehenden oder geplanten Datenbanken. Wir arbeiten mit allen gängigen SQL Dialekten.

Um Ihre Webportale und -Applikationen national und international mit geringen Antwortzeiten zu versehen und hoch skalierbar zu halten, setzen wir Ihre Idee innerhalb von Cloud Architekturen um.

Nach erfolgreichem Launch Ihres Portals kümmern wir uns sehr gern um Erweiterung und Pflege. evermind strebt langfristige Partnerschaften mit Kunden und Projektpartnern an.