Software-Entwicklung

codeDas Entwickeln komplexer Softwaresysteme war schon immer die Kernkompetenz von MUGS. Im Laufe der Zeit ist unser Team um weitere Software-Enthusiasten gewachsen und mittlerweile können wir in fast allen Bereichen Lösungen anbieten.

Welche Technologien bieten wir an?

  • Mobile Systeme (Apps)
    Wir entwickeln auf Android und iOS, für Smartphones, Tablets und auch Smartwatches. Sowohl einfache Apps, als auch komplexe Systeme mit Server Infrastruktur (Backends).
  • Client-Server-Systeme
    Wir setzen Client-Server-Anwendungen auf Basis von JEE (Java Enterprise Edition) um. Dabei ist der Application Server unserer Wahl häufig ein Lizenzkosten freier Wildfly Application Server, ergänzt um diverse Webtechnologien (HTML5, CSS, JavaScript, JSF, etc.). Das hat neben den geringen Kosten auch den Vorteil, dass der Rollout (Installation auf den Benutzerrechnern) sehr einfach erfolgt.
  • Datenbanksysteme
    Auch für unsere Datenbanksysteme setzen wir auf JEE, ergänzt um eine freie Datenbank, wie PostgreSQL, um die Kosten für unsere Kunden gering zu halten. Geht es um sehr große Datenmengen, sollte man über eine Big Data Anwendung nachdenken…
  • Big Data Anwendungen
    Handelt es sich um sehr große Datenmengen oder ist eine sehr rechenintensive Anwendung geplant, lohnt es sich über Big Data nachzudenken. Wir setzen dazu auf die Apache Hadoop Plattform, ggf. ergänzt um ein auf JEE basierendes Frontend.
  • Cloudanwendungen
    Möchten Sie Ihr System in der Cloud laufen lassen, arbeiten wir mit den Amazon Web Services, denn auch hier kann man auf Basis von JEE komplexe Systeme erstellen.

 Technologien

Wie entwickeln wir Software?

Vorgehensmodell

Wir bieten natürlich auch klassisches Vorgehen nach dem Wasserfallmodell an, allerdings schlägt unser Entwickler-Herz ganz klar für agile Entwicklungen nach Scrum oder Kanban. Wenn Sie von agilem Vorgehen noch gar nichts gehört haben oder aber grob wissen worum es geht, aber sich noch nicht wirklich vorstellen können, wie man danach arbeitet und welche Vorteile es bietet, dann denken Sie doch einmal über unsere Schulung Einführung in agiles Arbeiten mit Scrum” nach. Ich versichere Ihnen, dass Ihnen die Augen geöffnet werden und sie ab da an nichts mehr ohne Agilität umsetzen wollen.

Toolchain

Nach jahrelanger Erfahrung in der Entwicklung komplexer Softwaresysteme auch über längere Zeiträume hinweg, hat sich bei uns eine umfangreiche Toolchain angesammelt, mit deren Hilfe wir kostengünstig und mit gleichbleibend, hoher Qualität unsere Dienstleistungen anbieten können. Im Einzelnen heißt das:

Tools

 

  • Entwicklungsserver und Testserver
    Wir verwenden nur selbst gehostete Server zu Entwicklungs- und Testzwecken. Dabei arbeiten wir mit modernsten Virtualisierungslösungen (KVM, Docker, etc.), um in kürzester Zeit neue Umgebungen für neue Projekte in Betrieb nehmen zu können und dabei keine wertvolle Zeit zu verlieren. Ganz nebenbei ermöglicht uns der Betrieb eigener Server auch ein hohes Maß an Sicherheit der Systeme während der Entwicklung zu gewährleisten.
  • Deployments und Testen
    Wir haben unseren Buildprozess (Gradle) komplett automatisiert (Jenkins), um auch hier keine wertvolle Zeit zu verlieren und ganz nach Scrum am Ende eines Sprints ein lauffähiges Inkrement ausliefern zu können. Auf diese Weise können wir auch Dienste zur Qualitätskontrolle des erzeugten Quellcodes einbinden (SonarQube) und natürlich automatisiert unsere Unit- und Oberflächentests bei jedem Buildprozess ausführen zu lassen.