Wie sah der Plan ursprünglich aus?
Zu Beginn hatte ich vor, einen funktionalen Prototypen, von Grund auf selbst geschrieben, zu entwickeln. Als mir klar wurde, welche Hürden mir bevorstehen, entschied ich mich, mir von einer Spiel-Engine unter die Arme greifen zu lassen. Mir war es von vornherein wichtig, die Software ausprobieren zu können, um eindeutig zu erkennen, ob ich mich in die richtige Richtung bewege.
GrafikprogrammierungGodot lernen- Ideen skizzieren
- Prototypen entwickeln
- Testen
- Iterieren
Wie kam es zum Planwechsel?
Doch es kam anders. Selbst mithilfe einer Spiel-Engine ist der Programmieraufwand hoch – und dabei käme nicht einmal etwas heraus, woran ich weiter arbeiten wollte. Ich müsste zuerst die Engine verstehen, mit deren Mitteln den Grafikeditor (zumindest zu Teilen) entwickeln und in Zukunft alles noch einmal machen, außerhalb der Engine.
Der Fokus der Masterarbeit soll zudem auf Interaction Design liegen; nach aktuellem Stand läge er aber auf Software-Entwicklung. Bevor ich an den Punkt gelangte, an dem ich mich ernsthaft dem Gestalten der Interaktionen widmen könnte, entstünde fast schon eine Abschlussarbeit in Informatik.
Ich möchte den Aspekten der Software-Entwicklung ja auch Zeit widmen. Allerdings sind viele Entscheidungen zu treffen, die sich langfristig auswirken, hierbei will ich nichts überstürzen. Kurzfristige Ziele – die Fertigstellung der Abschlussarbeit – sollen den Weg zum langfristigen Ziel – ein performanter, gebrauchstauglicher, flexibler Vektorgrafikeditor – nicht erschweren. Beispielsweise muss ich mich entscheiden, für welche Plattform ich zuerst entwickle (Arch Linux, macOS), welche Grafik-API ich wähle (OpenGL, Vulkan, Metal), oder welche Programmiersprachen ich nutze (C, C++, Rust, Swift, Objective-C, Lua, Python).
- Prototypen verursachen enormen Programmieraufwand
- Interaktionsdesign steht in geringem Verhältnis zu Softwareentwicklung
- kurz/mittelfristige Ziele sollen keine längerfristig unklugen Entscheidungen erzwingen (Entwicklungsplattform, OpenGL/Vulkan/Metal)
- Zeit soll möglichst zielgerichtet fokussiert werden
Wie sieht mein aktueller Plan aus?
So kam es zum folgenden Plan:
- kurz- und langfristige Ziele definieren
- Funktionsumfang festlegen
- Projekt in Teilaufgaben zerpflücken
- Nutzungsszenarien und Zielgruppe festlegen
- gedanklich Extreme austesten
- Konzepte entwickeln
- häufiger Austausch mit Nutzern
- Informationsarchitektur entwickeln
- Screendesign
Diesen nehme ich nun in Angriff.