Direkt zum Hauptinhalt

18.02.2020 // Hackathon, 07.02.20

Strukturiert nach: https://www.mendix.com/de/blog/eine-praktische-anleitung-fur-den-product-canvas/

Product Vision Board

  • Warum erstellen wir die Anwendung?

    • Wir wollen ein System haben, das auf die Bedürfnisse offener Werkstätten zugeschnitten ist.
      • Veränderbar
      • bezahlbar
    • Denn bestehende Systeme sind
      • … zu teuer
      • … passen nicht vollständig zu unseren Bedürfnissen.
      • … nicht problemlos in bestehende Strukturen integrierbar
  • Wer ist unsere Zielgruppe?

    • Offene Räume
    • FabLabs in/an Hochschulen
  • Was sind ihre Bedürfnisse?

    • Möglichst autonomes / autarkes Handeln ermöglichen
      • selbstbestimmtes Arbeiten und Lernen
      • Einfacher niederschwelliger Zugang zu…
        • Türen
        • Maschinen
        • Werkzeuge
    • Einfache Administrationsprozesse
    • Die Möglichkeit haben, das System an individuelle technische Gegebenheiten anzupassen.
    • Möglichkeit zur Abrechnung dieser Vorgänge
    • Zugriff auf Monitoring / Protokollierung / Nutzungs-Statistiken
    • Granulare Berechtigungen
      • Maschinen: Nutzungsberechtigungen
      • Türen: Zutrittsberechtigungen
    • (Anleitung und Nutzungshilfen)
    • Lösen von folgenden Problemen…
      • manuelle zugangskontrolle
      • manuelles Aushändigen von Werkzeugen
      • verschiedene Authentifizierung methoden
      • manuelles Abrechnen
      • manuelles Buchführen von Nutzung und Verbräuchen
      • funktionierende Software/Hardware zu teuer (Fabman)
      • Nutzung von selbstgebauter Hardware aus versicherungstechnischen Gründen nicht möglich
  • Was sind dabei unsere Ziele?

    • Das System soll sich verbreiten, das bedeutet.
      • Das System soll auf einer möglichst breiten und agilen Basis entwickelt werden.
      • Wir wollen für die User entwickeln, nicht für uns.
      • Das System soll Menschen Arbeit abnehmen statt aufbürden.
    • Das System soll im Rahmen einer nachhaltigen Struktur entstehen - nicht an einer Person hängen, sondern jederzeit durch andere weiterentwickelt werden können.
    • –> strictly OpenSource.
    • In Zukunft optional als Föderation funktionieren

Abgrenzung

Zur Diskussion

  • Spaces die sich neu einrichten (Hauptzielgruppe sind bestehende Labs)
  • Spaces mit homogenen Geräte/Maschinenpark (Hauptzielgruppe hat eine organisch gewachsenen Gerätepark)
  • Spaces ohne Geräte/Maschinen (Hauptzielgruppe haben diese)
  • Spaces die Geräte und Werkzeuge verleihen (Hauptzielgruppe hat Werkzeuge immer am Ort)
  • Spaces mit viel Geld (Hauptzielgruppe hat knappes Budget)
  • Spaces die Service möchten (Hauptzielgruppe kann sich selbst helfen)
  • Spaces die eine Einzellösung benötigen

Fragen zur Zielgruppe

  • Darf unsere Zielgruppe Veränderungen an Maschinen vornehmen?
  • Darf unsere Zielgruppe Veränderungen an Türen vornehmen?
  • Darf unsere Zielgruppe virtuelle Guthaben verwalten?
  • Hat die Zielgruppe feste ein Buchungsprozess (vorherige Vergabe fester Zeitslots) für Geräte
  • Wie hoch ist die Fluktuation von Endnutzer unserer Zielgruppe?
  • Wie hoch ist die Fluktuation von Technischen Administratoren unserer Zielgruppe?
  • Wie hoch ist die Fluktuation von Supervisor unserer Zielgruppe?
  • Kurz wie viel Einarbeitung von allen Personas ist noch zulässig?
  • Welche Skills und technischen/nichttechnischen Möglichkeiten stehen der Zielgruppe in welchen Umfang zur Verfügung?
    • Techniker (Kabel ziehen, Geräte modifizieren)
    • Netzwerker (Netzwerke einrichten, Systeme warten, Backups durchführen und zurückspielen)
    • Einweiser für Endnutzer (Karten ausgeben, Ansprechpartner)
    • Einrichter (Einrichten des Systems, Probleme beheben)
    • Entwickler (Erweiterung und Anpassung des FabAccess) ? welche Sprachen sind zu erwarten?
  • Welche Geräte sind zu erwarten?
    • 3D Drucker
    • CNC Fräsen
    • Plotter
    • Drucker
    • Nähmaschinen
    • Lötkolben
    • Werkzeugkoffer
  • Wie viele und welche Besonderheiten haben die Räume unser Zielgruppe?
    • Anzahl von Räumen?
    • Sind Räumlichkeiten verteilt auf mehrere Standorte?
    • Haben die Türen unterschiedliche Öffnungsmechanismen?
    • Können Öffnungsmechanismen getauscht werden?
    • Gibt es Sicherheitstüren?
    • Gibt es kritische Bereiche?

Product Canvas

Personas

  • Wer sind unsere Nutzer?
    • Akteure, die sich Zutritt zu Dingen verschaffen (Nutzer*, Mitglieder der Werkstatt / des Raumes)
    • Der technischen Administrator (installiert / aktualisiert das System Software/Aktoren/…)
    • Supervisor (communitynaher Administrator)
    • Finanzadministrator
    • Ressourcen-Administrator
    • Technischer Maschinen-Betreuer
    • Lab-Lead (Ansprechpartner in der Räumlichkeit)

User Journeys

  • Was sind Eigenschaften sowie Aufgaben der Nutzer und wie stellen wir uns vor, dass sie diese erfüllen?
    • Nutzer / Akteure, die sich Zutritt zu Dingen verschaffen
      • Eigenschaften
        • sind tendentiell ungeduldig, möchten schnell zu Ergebnissen kommen
        • sie sind Laien oder technische Spezialisten - volle Bandbreite
        • sie möchten jederzeit in die Räume und darin arbeiten
      • Aufgaben
        • sollen den Arbeitsschutz beachten (sind daran aber nicht wirklich interessiert)
        • sollen auf die Maschinen achten (verschleißarme Anwendung)
        • sollten aufräumen (wollen es aber nicht)
        • Registrierung: gibt seine Daten selbständig ein und stimmt deren Verwendung zu
      • Bedürfnisse
        • wollen den Preis der aktuellen Verbrauchszeit wissen
        • wollen fehlgebuchte Buchungen stornieren
        • wollen eine Monatsübersicht
    • Technischer Administrator
      • Aufgaben
        • Will / soll das System (die Software/Aktoren/…) installieren
        • sowie aktiv halten (aktualisieren, Fehler beheben)
      • Eigenschaften
        • kennt das System, kann Software installieren
        • kann nicht zwangsläufig programmieren
        • “Semi-Nerd”
      • Infrastruktur
        • für die Software steht ihm entweder ein eigener Server zur Verfügung oder auch nicht
      • Bedürfnisse
        • will von bestehenden Geräte-Beständen Eigenschaften importieren / exportieren
        • hat ggf. bevorzugte Authentifizierungsmethoden
        • moechte moeglichst wenig Administrationsaufwand
        • möchte / kann nicht viel Zeit in das Aufsetzen investieren
        • Möchte nicht ständig Angriffsvektoren abschneiden oder schließen (müssen).
        • will nicht, dass Module bei einem Update kaputt gehen
    • Supervisor (Nutzer*-Administration)
      • Aufgaben
        • Vergibt z.B. Berechtigungen nach Workshops oder Einweisungen
        • Empfängt neue Mitglieder, vergibt Berechtigungen
        • Kann Nutzerdaten eingeben und ändern
    • Finanz-Administration
      • Aufgaben
        • rechnet gegenüber den Nutzern ab
      • Bedürnisse
        • er möchte individuelle Verbrauchswerte erfassen
        • es sollte unterschiedliche Typen von “Rechnungen” geben. Nicht jeder Nutzer braucht eine volle Rechnung mit MwSt.
        • möchte seine individuelle Abrechnungssoftware nutzen
    • Ressourcen-Administration
      • Aufgaben
        • Kauft Material ein
        • Legt Material in Lager
        • gibt Geld aus
      • Bedürnisse
        • Brauch Verbrauchsdaten von Material konsumierenden Maschinen (z.B. 3D-Drucker)
    • Technischer Maschinen-Betreuer
      • Aufgaben
        • kümmert sich um Maschinen
      • Bedürfnisse
        • Verschleißdaten / Nutzungsdaten von Maschinen sollten angezeigt werden können: Rohdaten!
    • Lab-Lead (Ansprechpartner in der Räumlichkeit)
      • Aufgaben
        • Hat Überblick über den aktuellen Betrieb im Labor
        • Können einfache Fragen zur Nutzung beantworten.
      • Bedürnisse
        • will wissen wer gerade da ist
        • wissen welche Maschinen aktiv sind
        • will Nutzer* und ihre Eigenschaften recherchieren können
        • will einfach Stornierungen vornehmen, wenn Falschbuchungen vorliegen
      • Eigenschaften
        • sind immer vor Ort am Tresen
        • sind freundlich
        • haben z.T. geringes technisches Verständnis vom System
    • Programmierer
      • Schreiben den Kern
      • Wollen realisierbare Aufgabenpakete lösen
      • Hören auf die (anderen!) Nutzer

Technische Lösungen

  • Codearchitektur (abgeleitet aus den oben stehenden Bedürfnissen)
    • Es gibt einen Kern mit Funktionen / Methoden, die den kleinsten gemeinsamen Nenner bilden
      • Kontrolliert Zugangsberechtigung
        • Von außen kommt eine Anfrage, die wird validiert und die Entscheidung mitgeteilt
          • Authentifikation
        • Parameter, die die Entscheidung beeinflussen, können vom Administrator über ein externes Interface angepasst werden
      • Der Kern hat ein integriertes Protokollsystem
        • z.B. Zeitspempel der Authentifizierung eines Users / Aktivierung eines Aktors / Grund der Ablehnung von Aktion XY
        • gibt Rohdaten (z.B. auf Socket) aus.
      • Gibt generisches “an” oder “aus” heraus. Was der “Aktor” oder “Sensor” damit macht, ist ihm überlassen
    • Um den Kern gibt es optionale Frameworks / Plugins, die Zusatzfunktionen ermöglichen, wie:
      • konkrete Authentifizierungsmethoden
      • Aktoren-Definitionen
      • Schnittstellen zu ERP-Systemen
      • Rohdaten der Protokollierung werden verarbeitet und abgelegt / ausgewertet / whatever.
    • Begründung: Ein komplett offenes Framework bedeutet beim Einrichten sehr viel Arbeit (benötigt technisch versierten Administrator oder ein sehr aufwendiges Admininterface) und da das höchste Ziel die Benutzerfreundlichkeit und geringen Kosten (auch Zeit) sind, leitet sich die Entscheidung daraus ab.

To-Dos:

  • Technische Anforderungen klarer fassen
  • Eine Umfrage formulieren mit den folgenden Parametern:
    • Wer ist bereit, als Alpha-Tester zur Verfügung zu stehen?
    • Verbreitete Authentifizierungsmethoden (RFID/NFC/UserId+Pwd/…?)
    • Bereits existierende Nutzerdatenbank (LDAP, SQL, AD, …?)
    • Bereits existierende Schliess-/Zugangssysteme
    • Verwendete ERP-Systeme
    • Verbeitete Aktoren
      • 3D-Drucker? Welcher?
    • Welche Server werden verwendet?

Zusammenfassung 08.02.

  • Wir wollen agil arbeiten uns aber keine Rituale mit massivem Kommunikations-Overhead aufbürden

    • In Vollzeit-Teams ist der Kommunikations-Overhad vernachlässigbar. In unserer Konstellation (4 Stunden pro Woche) eher tödlich.
  • Asynchrone Kommunikation ist wichtig und in unserem Fall hilfreich - das lässt manche Elemente der Agilen Arbeitweise nicht zu.

  • Jira können wir testen und schauen ob es uns hilft oder Mailinglisten bzw. die in Gitlab vorhandenen Möglichkeiten sinnvoller sind.

  • Grobe Vorstellung der Arbeitsweise:

    • Es gibt Issues/Tickets in JIRA die das Ziel haben eine konkrete Entscheidung (architekturell) zu treffen
    • Diskussionen finden asynchron innheralb dieser Issues/Tickets statt
    • Ziel der Diskussion sollte bei architekturellen Entscheidung ein ADR sein (Architectual Decision Record)
    • Auslieferbare Features definieren wir in Stories
  • Tasso richtet eine Mailingliste ein

    • Bis JIRA läuft findet die asynchrone Kommunikation über die Mailingliste statt
  • Architekturskizze muss nochmal diskutiert und als Bild entwickelt werden.

    • Hierbei wollen wir auf die Architekturen der bereits im Team vorhandenen Backends eingehen, um zu schauen wo Synthese Sinn macht