30. November 2017 von Tom Hombergs
Wenn der Beruf auch Hobby ist
infiniboard – Informations-Dashboards für Projekte
In jedem Projekt gibt es Informationen, die für alle Projektmitglieder interessant sind. In Softwareprojekten sind das Metriken aus der Entwicklung wie zum Beispiel der Status des aktuellen Builds auf dem Build Server, das letzte Ergebnis des Quality Gates der statischen Codeanalyse, die aktuelle Testabdeckung der Software oder die Frage, welche Version der Software eigentlich gerade auf welcher Staging-Umgebung deployed ist und ob die Umgebungen aktuell alle erreichbar sind. Dazu kommen wichtige Informationen aus den produktiven Umgebungen. Gibt es grade Emergency Issues auf der Produktionsumgebung, welche die sofortige Aufmerksamkeit des Teams benötigen? Welche Mitarbeiter aus dem Team sind eigentlich gerade abwesend? Und wann muss die nächste Version der Software zum Abnahmetest an den Kunden geliefert werden?
Da Informationen dieser Art für beinahe jedes Projekt relevant sind, wurde mit infiniboard ein generisches Projektdashboard entwickelt, das aus verschiedensten Quellen Informationen abfragen und zentral zur Anzeige bringen kann. Die so erfassten Daten werden über Widgets auf Dashboards aggregiert. So können pro Benutzer oder Benutzergruppe individuelle Dashboards erstellt werden, die genau diejenigen Metriken übersichtlich zusammenführen, die im jeweiligen Kontext benötigt werden. Die Dashboards aktualisieren die Daten automatisch in konfigurierbaren Intervallen, sodass dem Benutzer stets die aktuellen Werte angezeigt werden. Auf diese Art können beispielsweise Dashboards für Entwicklung, Support und Management erstellt werden, um mit einem Blick immer die wichtigsten Metriken erfassen zu können. Die Widgets und Dashboards sind außerdem so konzipiert, dass sie sich auch für die Darstellung auf einem großen Wallboard hervorragend eignen. infiniboard wurde von Anfang an auf leichte Erweiterbarkeit ausgelegt, sodass jedes Entwicklerteam seine eigenen Widgets einbauen kann.
Das Projekt findet ihr auf GitHub. Ansprechpartner ist Matthias Balke (matthias.balke@adesso.de).
TrenchPlanner - Planung von Ringgrabenkollektoren für Sole-Wärmepumpen
Häuslebauer sollen es möglichst einfach haben, um umweltfreundliche Ringgrabenkollektoren als Heizlösung in ihrem Bauprojekt zu berücksichtigen. Getrieben von diesem Ziel entstand der TrenchPlanner von Claas Rink (claas.rink@adesso.de).
Der TrenchPlanner ist ein kostenlos nutzbares JavaScript-Zeichenprogramm, mit dem zuerst ein Grundstück mit Haus, Garage, Einfahrt, Terrasse, Bäumen und Versorgungsleitungen gezeichnet werden kann. Darauf aufbauend kann ein Ringgrabenkollektor direkt im virtuellen Garten versenkt werden. Es wird sofort − je nach Geometrie, Bodenqualität und Klimazone − dessen Leistungsfähigkeit berechnet. Auf diese Weise kann auch auf kleineren Grundstücken eine sparsame und umweltfreundliche Sole-Wärmepumpe kostengünstig zum Einsatz kommen.
Der TrenchPlanner wird inzwischen − nach Beratung und Support durch adesso − auch von den Wärmepumpenherstellern KNV (Österreich) und Nibe (Deutschland) für die Planung von Ringgrabenkollektoren verwendet. Ihr findet den TrenchPlanner unter diesem Link im Netz.
BrainySnake – Snakes programmieren und gegeneinander antreten lassen
Das Computerspiel Snake ist ein wahrer Klassiker, der unter anderen Namen bereits Mitte der 1970er auf Arcade-Automaten gespielt werden konnte, den meisten aber noch gut von den Nokia-Modellen der 1990er in Erinnerung ist.
BrainySnake ist eine Snake-Variante, die das Spielprinzip aufgreift und einige Besonderheiten hinzufügt. Hier sind ausnahmsweise nicht das Können und die Geschicklichkeit des Spielers gefragt, sondern eine ausgeklügelt programmierte Taktik. Denn in BrainySnake wird die Schlange nicht von einem Spieler selbst gesteuert, sondern von einem Agenten, der selbst programmiert werden muss. Mehrere solcher Agenten treten dann in einem automatisch ablaufenden Spiel gegeneinander an.
BrainySnake wurde initial für den Do!Hack Hackathon entwickelt. Dort wurde mit BrainySnake eine Challenge ausgerufen, bei der die Teilnehmer unter Einsatz ihrer Programmier-Skills gegeneinander antreten können. Zur Bestimmung des Siegers durften die Agenten zusammen auf einem Spielfeld in verschiedenen Matches gegeneinander antreten. Auf diese Weise konnten alle Agenten ihr Können beweisen.
Ein How-To, eine Beschreibung der Regeln sowie weitere Infos zur genutzten Technologie kann dem Readme auf GitHub entnommen werden. Ansprechpartner für dieses Projekt sind Rudi Klassen (rudolf.klassen@adesso.de) und Florian Kroschewski (florian.kroschewski@adesso.de).
reMap – Objektmapping mit Fokus auf Robustheit und Testbarkeit
Aus unserem Kundenprojekt in Zusammenarbeit mit REMONDIS ist reMap entstanden. Dabei handelt es sich um eine Java-basierte Objektmapping-Library, die eine etwas andere Philosophie vertritt, als bisher bekannte Libraries.
Die Hauptfunktion von reMap – wie die von anderen Objektmappern auch – ist die Transformation von Objekten eines Typs in Objekte eines anderen Typs. Dieses Prinzip ist auch häufig in Enterprise-Anwendungen erforderlich, um zum Beispiel zwischen verschiedenen Domänenmodellen zu übersetzen. Jedoch legt reMap Wert darauf, das Mapping explizit und refactoring-safe zu definieren, sodass zur Laufzeit auch wirklich nur die gewünschten Felder gemappt werden. Weiterhin reduziert reMap den Testaufwand von Mappern auf ein Minimum, sodass man sich als Entwickler um die Lösung der fachlichen Anforderungen konzentrieren kann.
Wenn ihr also die Nase voll habt von den üblichen Mapping-Libraries, schaut euch auf GitHub die Code-Beispiele und den Sourcecode an.
Tue Gutes und rede darüber
Das war jetzt nur ein schneller Schnappschuss einiger Projekte, die ich dieses Jahr bei adesso entdeckt habe. Ich hoffe, dass ich die Aufmerksamkeit des einen oder anderen Lesers mit diesem Artikel auf diese Projekte lenken konnte. Vielleicht ist ja etwas dabei, worüber du, liebe Leserin / lieber Leser, auch schon mal nachgedacht hast? Oder etwas, was du gerne mal ausprobieren oder wo du gerne mitwirken möchtest?
Es gibt sicherlich noch viele weitere Projekte bei uns, die ebenfalls mit viel Engagement und Liebe zum Detail entwickelt werden. Wenn ihr selbst Ideen oder Projekte habt, sprecht darüber! Im Blog, auf Yammer, Twitter oder bei Coding-Events. Es ist viel zu schade, wenn eine gute Idee nicht die Aufmerksamkeit bekommt, die sie verdient!