Das 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.
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:
- 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.