Umfang und Komplexität eigener Software-Lösungen in kleinen und mittleren Unternehmen (KMU) können sehr schnell zunehmen. Oft bleiben nach einer Anfangsphase mit einer guten Produktidee und deren sofortiger und tatkräftiger Umsetzung in Software mit der Zeit die eigentlich notwendigen Konsolidierungsarbeiten auf der Strecke. Verschiedene Gründe können dazu beitragen, dass ein kleines Entwicklerteam nach einigen Monaten oder Jahren bzgl. der Komplexität, Erweiterbarkeit oder Wartbarkeit des Software-Produktes an seine Grenzen kommt. Derartige Gründe können z. B. sein:

  • Unterschätzung grundlegender Design-Entscheide zu Projektbeginn;
  • Zeitdruck (der zu jener Zeit berechtigt war);
  • fehlendes Fachwissen;
  • etc.

Aber auch während des normalen, gesunden Wachstums erhöht sich die Komplexität einer Software zwangsläufig, so z. B. durch:

  • neue Anforderungen bzgl. Vertrieb;
  • zunehmende Anzahl eingebundener Bibliotheken oder Werkzeuge;
  • verändernde Hardware- oder Software-Voraussetzungen (z. B. MultiCore-Prozessoren, neue Java-Versionen);
  • etc.

Die Dienstleistungen von SimplexaCode unterstützen Sie und Ihr Entwicklerteam professionell an genau jenen Stellen, an denen diese langwierigen, aber oft notwendigen Arbeiten anfallen. Diese beinhalten u. a.:

  • Refaktorisierung

    Die Java-Programmiersprache ist mittlerweile 23 Jahre alt. Ohne jeden Zweifel hat sie sich in dieser Zeit bewährt, was aber nicht darüber hinwegtäuschen darf, dass sich sowohl die Software-Entwicklung als auch Java selbst entscheidend weiterentwickelt haben. Diverse Klassen oder gar Packages gelten heute als veraltet und wurden durch neue ersetzt, nicht selten verbunden mit einem vollständigen Paradigmen-Wechsel. Offiziell behält Java seine Kompatibilät bis hinunter zu Version 1.0 bei. Entsprechender Legacy-Code wiegt aber immer sehr schwer und behindert eine konsistente Modernisierung und Weiterentwicklung der Software erheblich.

    SimplexaCode hilft, veraltete, nicht mehr zeitgemässe Java-Klassen oder Entwicklungsparadigmen zu erkennen und dem aktuellen Stand anzupassen.

  • Build-Prozesse

    Mit einer steigenden Anzahl an Klassen, Packages, Bibliotheken, Entwicklungswerkzeugen, etc. steigt zwangsläufig auch die Komplexität entsprechender Konfigurationen exorbitant an. Nicht selten gilt die Projektdatei der Entwicklungsumgebung (IDE) als «Buch mit 7 Siegeln», die das Entwicklerteam von IDE-Version zu IDE-Version jeweils «mitschleppt», die über die Jahre gewachsen ist und die «einfach so» funktioniert – aber niemand weiss, warum und wie lange noch. Neu eingeführte Entwicklungswerkzeuge (Tools), meist aus spontanem Anlass oder aus der Not heraus, verstärken die Probleme der Komplexität, Inkonsistenz und Handhabung zusätzlich.

    SimplexaCode verfolgt hierbei einen radikal anderen Ansatz: Entscheidend ist nicht, dass Build-Prozesse wie eine «Black Box» gemäss dem Motto «Deckel drauf und gut» funktionieren, sondern eine klare Reduktion unterschiedlicher Entwicklungswerkzeuge, eine Vereinfachung und Automatisierung des gesamten Ablaufs und eine klare Nachvollziehbarkeit anhand dokumentierter Schritte. So soll es prinzipiell möglich sein, die einzelnen Schritte eines Build-Prozesses komplett neu aufzusetzen, ohne auf die geheimen Interna einer Projektdatei angewiesen zu sein.

  • Deployment

    Trotz all ihrer Vorteile – allen voran die Plattformunabhängigkeit – darf ein Java-Entwickler heute nicht mehr pauschal davon ausgehen, dass alle Endkunden eine Java-Laufzeitumgebung auf ihren Rechnern installiert haben. Die Installation ist für Laien nicht offensichtlich, und diverse Sicherheitslücken, v. a. im Applet-Bereich, haben den Ruf von Java bei einigen Endkunden beschädigt. Darüber hinaus ist Java-Bytecode dekompilierbar, sodass Ihr gesamtes geistiges Eigentum, Ihr Know-How und die Funktionalität Ihrer Applikationen Dritten zugänglich ist.

    SimplexaCode unterstützt Sie bei den wichtigen Schritten des Deployments und hilft Ihnen, Ihren Code zu verschleiern, zu schützen und zu signieren. SimplexaCode verwendet die professionellen Werkzeuge install4j und Excelsior JET, um für Ihre Applikationen benutzerfreundliche Installationsprogramme für Windows, Mac und Linux zu erstellen. Diese liefern entweder eine eigene Java Runtime Environment (JRE) – für den Endbenutzter quasi unsichtbar – im Rahmen des Installationsprogrammes mit, oder Ihre gesamte Applikation wird gleich in nativen Maschinencode für das entsprechende Betriebssystem kompiliert.

  • Perfomance-Optimierungen und Profiling

    Performance-Optimierungen, insbesondere in Java, sind ein heikles Thema. Eine Grundregel besagt, dass ein Programmierer von (voreiligen) Optimierungen absehen soll, da er damit in der Regel mehr Schaden anrichtet als Nutzen zieht.

    SimplexaCode ist sich dieser Problematik bewusst. Sie vertritt auch hier das Paradigma, dass sich die beste Optimierung anhand von Vereinfachung erreichen lässt: Code, der einfach, klar, konsistent, modern und übersichtlich geschrieben ist. SimplexaCode verfügt über das notwendige theoretische Hintergrundwissen, welches typische und gewichtige Flaschenhälse in Programmcode erkennt und behebt, z. B. ob die richtigen, zeitgemässen Java-Bibliotheken zum Einsatz kommen und richtig verwendet werden, ob algorithmische Grundprinzipien beachtet werden oder ob typische Fallstricke erkannt und vermieden werden.

    SimplexaCode arbeitet auch mit dem professionellen Werkzeug JProfiler, um typische Hot-Spots im Quelltext zu erkennen und der Frage nachzugehen, ob und auf welche Art sich eine Optimierung erreichen oder eine Skalierung sicherstellen lässt.

2018.06.1