Schoki-as-a-Service – Ein agiles IoT Projekt der Azubis

In diesem Artikel schildere ich ein Projekt, dass für alle Auszubildenden Fachinformatiker 2018 gestartet wurde. Mithilfe von agilen Methoden und IoT haben wir gemeinsam einen Automaten gebaut, welcher Schokolade ausgeben und später einmal automatisiert nachbestellen kann – Schoki-as-a-Service. Wie wir das geschafft haben, was wir gelernt haben und was agil eigentlich bedeutet, beleuchte ich in diesem Artikel.

Plan/Vorgeschichte

Unser Ausbilder wollte, dass wir Azubis agiles Projektmanagement und das Arbeiten mit agilen Methoden lernen, da diese heutzutage immer noch stark unterrepräsentiert sind, vor allem in den klassisch geprägten und veralteten Lehrplänen, mit denen wir bei der Ausbildung zum Fachinformatiker klarkommen müssen.

Um dies zu bewerkstelligen hat er uns ein Projekt vorgestellt, das wir gemeinsam neben dem alltäglichen Ausbildungsbetrieb ausführen sollen. Bei unserem ersten Meeting stellte er uns seine Idee/ Vision vor, was wir im Großen und Ganzen erreichen, und welche Eckpunkte wir mit einbringen sollen. Was dabei außen vorgelassen wurde: wie wir das erreichen. Für das Projektteam oder den Projektablauf gab es an sich keinerlei Vorgaben, außer das Ganze agil zu machen.

Das Projekt, dass wir erarbeiten dürfen, war eine Box, welche Schokolade ausgibt. Diese soll dabei durch IoT gestützt werden, etwa Sensoren, Lichter oder Funkmodule, und alles zusammen per Raspberry Pi oder etwaige Einplatinencomputer kontrolliert werden. Eine solche Box würde dann, wenn sie einsatzbereit ist, zu Partnern von Proact geschickt werden, um unsere Marke und uns durch eine coole und außergewöhnliche IT-Spielerei zu präsentieren als IT-Nerds. Des Weiteren soll diese Box an eine Cloud angebunden werden (etwa AWS oder Azure) und die Box auf diese Weise überwacht, sowie automatisch Schokolade nachbestellt werden können.

Wir Azubis hatten von den ganzen Themen kaum bis gar keine Ahnung, weder von IoT und Cloudanbindung, noch Raspberry Pi oder von agilen Methoden. Das machte es prädestiniert für ein Projekt, da es uns so mit einer für uns komplexen Problemstellung konfrontiert.

Unsere erste Aufgabe war es, dass wir uns alle zusammensetzen und ein erstes grobes Konzept erarbeiten, was wir genau machen wollen, wer welche Rolle übernimmt und wann wir den ersten Prototypen präsentieren können.

Wir waren anfangs insgesamt fünf Azubis, die an diesem Projekt arbeiten, wovon zwei inzwischen ihre Ausbildung abgeschlossen haben. Das ist aber nicht weiter schlimm, da dieses Projekt an die nächsten Generationen von Auszubildenden weitergegeben wird und es so ein fortlaufendes Azubi-Projekt ist.

Agilität

Wie bereits erwähnt, sollten wir das Projekt agil angehen. Um zu verstehen was das bedeutet, muss man erst verstehen, wie klassische Projekte aussehen:

Klassische Projekte zeichnen sich durch durchgehende Planung aus. Schon bei der Initiierung des Projekts wird versucht, das schwer ausmachbare Ziel zu definieren und vorauszuplanen. Ein Projekt definiert sich durch seine Einmaligkeit in der Zielvorgabe oder andere zeitliche, finanzielle oder personelle Begrenzungen. Diese Einmaligkeit der genannten Bedingungen erschweren es ein vollständig unbekanntes Ziel vorauszuplanen.

Klassische Projekte: Ein Symbolbild

 

Bei der agilen Vorgehensweise hingegen versucht man nicht, das Projekt auf einmal zu umreißen und auf einen Schlag das fertige Produkt zu entwickeln, sondern man geht einen iterativen Prozess ein, das heißt, man legt mehrere Etappen ein und nähert sich so Stück für Stück dem finalen Produkt. Dabei kennt man stets das Ziel, welches man in der aktuellen Iteration erreichen will, jedoch nicht das Endziel.

Agiler Prozess: man nähert sich Stück für Stück dem Ziel

Jede Iteration bringt Ergebnisse hervor, ob die aktuellen Ideen umsetzbar sind und der eigentlichen Vision entsprechen. Durch stetige Beurteilung und Reflexion werden so schnell Konzepte und sogar Prototypen geliefert, anhand derer man neue Erkenntnisse gewinnen und Risiken erkennen kann. Vor allem letzteres ist ein Punkt, weswegen agile Methoden weitaus attraktiver und in der heutigen Zeit besser sind: Viele klassische Projekte scheitern an der Inflexibilität auf unvorhergesehene Ereignisse zu reagieren und der Plan, an welchem man lange gesessen hat, muss umgeworfen werden, da er neuen Anforderungen nicht mehr gerecht wird.

Erstes Konzept

Wir Azubis haben uns also zusammengesetzt und angefangen zu überlegen wie wir das Projekt angehen wollen. Ganz ohne leere Hände mussten wir zum Glück nicht starten: ein Kollege hatte uns zur Veranschaulichung eine einfache Holzkiste gebaut, welche kleinere Sensoren wie eine Wägezelle, einen Lichtsensor oder ein Gyroskop enthielt. Die Box diente dazu, dass wir uns grob vorstellen konnten, in welche Richtung das Projekt gehen soll und wir uns mit den technischen Anforderungen vertraut machen konnten, wie etwa die Bedienung eines Raspberry Pis.

Die erste Version ist eine einfache Box mit Sensoren

Grob gesagt gibt es drei Bereiche die getan werden müssen: die Zusammenstellung und der Aufbau der erforderlichen Hardware, also Sensoren und Baumaterialien, das entwerfen der Software, etwa von Skripten und Dashboards, und die Anbindung an die Cloud. Letzteres haben wir erst einmal ausgeklammert, da wir zuerst eine vollwertige Box bauen wollten, bevor wir diese mit einer Cloud verbinden.

Wir haben dann angefangen uns zu überlegen, was wir genau bauen wollen. Schnell ist uns dabei in den Sinn gekommen, dass eine einfache Box mit Waage ziemlich langweilig ist, da der Nutzer die Schokolade selber herausnehmen muss und das ganze Technische nur im Hintergrund abläuft. Zudem wäre diese dann immer auf den gleichen Schokoriegel angepasst mit dem gleichen Gewicht. Wir entschieden uns daher für ein Automaten-Konzept, bei dem der Nutzer durch die Betätigung eines Knopfs, ob digital oder physisch, automatisch Schokolade bekommen soll. Das Problem hierbei ist, dass wir einen passenden Mechanismus bauen müssen, welcher etwaige Schokoriegel auch einzeln ausgeben kann. Nach weiterer langer Überlegung haben wir uns dann entschieden, uns erstmal auf Schüttgut – oder besser gesagt Schokolinsen – zu fokussieren, welche durch eine Förderschnecke ausgegeben werden.

Des Weiteren haben wir noch diverse kleine Sensoren und LEDs herausgesucht, und einen umfassenden Plan erstellt, was wir wie bauen wollen. Es wurden auch schon diverse Konzeptzeichnungen erstellt, wie der Automat mal aussehen soll/könnte. Wir haben dann bestimmt, wer für welches Gebiet verantwortlich ist, haben die ersten Kosten berechnet und das Alles grob zusammengetragen für die Präsentation, die wir vor unserem Ausbilder halten sollten.

diverse erste Konzeptzeichnungen für einen Automaten, der Schokolinsen ausgeben soll

Zum Scheitern verurteilt

Wie sich der ein oder andere jetzt schon denken mag: das klingt im ersten Moment alles ganz gut, aber wirklich agil scheint das nicht zu sein. Das mussten wir auch schmerzlich erfahren nachdem wir Stolz unser Konzept präsentiert haben und unser Ausbilder dies in der Luft zerrissen hat (nur metaphorisch gesprochen natürlich).

Wir hatten zwar eine Idee, wie der Automat später einmal aussehen soll, aber nicht, wie und ob wir das überhaupt umsetzen können. Außerdem hatten wir keinen Ablaufplan erstellt, wir wussten zwar wie unsere Idee am Ende aussehen soll, nicht aber wann wir Zwischenergebnisse liefern können in Form von ersten abgespeckten Prototypen. Zuletzt hatten wir auch kein eindeutiges Projektziel formuliert. Nachdem unser Ausbilder uns nach diesem gefragt hat, schauten wir uns nur gegenseitig in die leeren Gesichter und stammelten, dass wir „halt so ‘nen Automaten bauen wollen, der Schokolade kann“.

Also warfen wir unser ganzes Konzept erstmal über den Haufen. Nach der Belehrung durch unseren Ausbilder sollten wir nochmal von vorne Beginnen und dabei klein anfangen. Wir sollten uns auf ein, maximal zwei Dinge beschränken, die wir bei einem ersten Konzept erreichen wollen und diese auch umsetzen. Das Beste um dies zu erreichen ist es, sich anzuschauen, was es bereits auf dem Markt gibt und einfach zwei Sachen miteinander zu vereinen, um etwas Neues zu kreieren.

Unser weiteres Vorgehen: Ein Symbolbild

Wir wollten noch an der Idee eines Automaten festhalten, welcher Schokolinsen ausgibt. Für den ersten Prototyp haben wir uns aber darauf beschränkt, dass wir per Knopfdruck die Schokolade bekommen, mehr nicht.

1. Iteration – 1. Prototyp

Nach einer kurzen Suche im Netz fanden wir einen Müslispender, welcher durch eine Drehschaufel den Inhalt nach unten befördert. Da wir einen Automaten bauen wollten, sollte dies natürlich automatisch passieren. Daher besorgten wir noch einen kleinen Motor, welchen man mit dem Raspberry Pi verbinden kann.

Wir bauten den Spender also so um, dass die Drehschaufel durch den Motor gesteuert wird. Diesen bekamen wir nach einigen versuchen und vielen Schaltkreis-Anleitungen zum Laufen, und konnten per Skript jetzt den Spender bedienen.

Unser 1. Prototyp mit 3D-gedruckter Kupplung

Der erste Prototyp war also geschafft, wirklich toll war der aber eigentlich nicht. Die Drehschaufel hakte immer fest, die Linsen blieben stecken und generell war die Konstruktion mit unserem Motor nicht sehr stabil, geschweige denn leistungsfähig. Also setzten wir uns wieder zusammen und planten, wie wir als nächstes vorgehen wollen.

2. Iteration – 2. Prototyp

Wir suchten also erneut im Netz und fanden einen bereits fertigen kleinen Automaten, welcher durch einen Touchsensor Schokolinsen ausgeben kann. Der Vorteil bei diesem war, dass er bereits einen passenden Mechanismus hat (eine Förderschnecke) und einen eingebauten Motor, der diese betreibt.

Wir bestellten uns diesen Automaten und fingen an, ihn für unsere Zwecke umzubauen. Wir schraubten ihn auseinander, kappten die Verbindungen und schlossen den Motor an unseren Pi an. Damit das funktioniert, brauchten wir wieder eine passende Anleitung, da man hierfür Transistoren, Widerstände und ähnliches braucht, und wir davon keine Ahnung hatten.

Verkabelung des Automaten

Der Automat funktioniert: Beim Ausführen eines Skripts wird der Motor gestartet und die Schokolinsen fallen heraus (Bild anklicken um GIF zu sehen)

Letztendlich schafften wir es aber und konnten jetzt automatisiert Schokolinsen ausgeben. Diese Iteration war also ein voller Erfolg und wir konnten jetzt einen Schritt weitergehen.

3. Iteration – Weiterführung des vorherigen Prototyps

Als nächstes Ziel wollten wir jetzt ermöglichen, den Automaten nicht vom Pi aus zu steuern, sondern mit Hilfe eines Touchscreens, auf welchem ein simples Dashboard läuft. Zudem wollten wir eine Möglichkeit einbauen zu messen, wie viele Linsen noch in dem Automaten sind.

Damit wir das Alles gut unterbringen konnten, bastelten wir ein einfaches Gehäuse aus Pappe. Unser Automat fing damit langsam an Gestalt anzunehmen. Dort bauten wir einen kleinen 5 Zoll Touchscreen ein und verbanden ihn mit unserem Pi. Das entsprechende Dashboard zu bauen war erst noch eine Herausforderung, schließlich fanden wir aber eine einfache Software die uns dabei weiterhalf (für die Interessierten: Node-RED; ist auf dem Pi mit installiert).

Um den Füllstand zu messen bauten wir in den Deckel einen Ultraschallsensor ein. Da wir die Höhe der Füllkammer kennen, konnten wir so messen, wie viel noch eingefüllt ist.

Et voilà! Wir hatten einen ersten funktionierenden und halbwegs gutaussehenden Automaten. Unserem Ausbilder gefiel er auch und er war sichtlich begeistert.

Der Automat im jetzigen Zustand. Dieser kann durch den Touchscreen bedient werden.

Und jetzt?

Das ist der aktuelle Stand unseres Automaten. Im nächsten Schritt wollen wir uns jetzt daranmachen, den Automaten nicht aus Pappe, sondern aus einem anderen Material wie Holz zu bauen. Aber bis hierhin haben wir schon viel aus dem Projekt gelernt und mitgenommen. Das Ziel, agiles arbeiten zu lernen mussten wir auf die harte Tour lernen, da wir es, so wie wir es bisher gelernt haben, erst einmal auf klassische Art und Weise angegangen sind. Doch jetzt können wir dies erfolgreich anwenden und haben einen Automaten an unserem Platz stehen, der uns Schokolade ausgibt – wenn den mal jemand nachfüllen würde.

Moritz Magin

Moritz ist seit September 2018 Auszubildender für Fachinformatiker Systemintegration bei Proact.

 
Kommentare

Noch keine Kommentare vorhanden.

Hinterlassen Sie einen Kommentar