Verbessere den Entwicklungsprozess durch die Verbesserung von Anforderungen

Einleitung

Während meiner Zeit als Entwickler bin ich oft auf unvollständige Anforderungen gestoßen. Während die Benutzerstories in der Regel gut beschrieben waren, fehlten oft wichtige Elemente wie UI-Designs oder Backend-Endpunkte. Das Sammeln aller notwendigen Informationen erforderte erhebliche Zeit und Mühe, was ich frustrierend fand. Leider war dies kein isoliertes Problem; Kollegen und Freunde im Bereich der Softwareentwicklung teilten ähnliche Erfahrungen. Die Herausforderung wurde durch die fragmentierte Speicherung wichtiger Informationen in verschiedenen Systemen verschärft. Designer verließen sich auf Tools wie Zeplin, während Backend-Entwickler Swagger-Dateien verwendeten. Trotz des Erhalts von Kopien dieser Ressourcen wurden sie schnell veraltet, was während der Entwicklung zu Verwirrung und Fehlern führte - eine wirklich frustrierende Erfahrung! 🤯

Idee und Insperation

Motiviert durch diese gemeinsame Frustration, machte ich mich daran, eine Lösung zu schaffen: ollayr. Ziel war es, Anforderungen in einer vereinheitlichten Plattform zu konsolidieren, die Entwicklern umfassende und aktuelle Informationen bietet. Anstatt Ressourcen zu duplizieren, würde ollayr Live-Verweise auf externe Quellen herstellen, um sicherzustellen, dass Änderungen automatisch in den Anforderungen reflektiert werden. Dieser Ansatz zielte darauf ab, Entwicklung Workflows zu optimieren und Fehler zu minimieren.

Funktionen und Screenshots

Die Hauptfunktion von ollayr besteht darin, Benutzern eine ganzheitliche Sicht auf Projekte oder Systeme aus verschiedenen Perspektiven zu bieten:

  • Product Owner können Anforderungen und ihren Status leicht nachverfolgen.
  • Designer können fehlende Designs für bestimmte Anforderungen identifizieren und auf vorhandene Komponenten verweisen.
  • Entwickler haben Zugang zu allen erforderlichen Informationen, einschließlich Benutzerstories, Akzeptanzkriterien, Designs und Endpunktdefinitionen. Dies ermöglicht es ihnen, fundierte Entscheidungen zu treffen und die Verfügbarkeit der erforderlichen Daten vor dem Codieren zu überprüfen, was letztendlich zu genaueren Schätzungen und kürzeren Entwicklungszyklen führt.

Requirements Sicht

Epic Representation - Epic Übersichtsseite: Epic Overview

Epic Representation - Verknüpfte Designs Seite: Epic Designs

Epic Representation - Verknüpfte Stories Seite: Epic Stories

Epic Representation - Verknüpfte APIs Seite: Epic APIS

API Sicht

Parsing und Visualisierung einer Swagger / OAI Datei - Übersichtsseite: API Detail Page

Parsing und Visualisierung einer Swagger / OAI Datei - Detailsseite: API Modell Details

Design Sicht

Integration von Zeplin - Übersichtssage: Integration von Designs

Integration von Zeplin - Detailsseite: Integration von Designs - Detailseite

Das Team und Planung

Wie bei vielen meiner Projekte übernahm ich die Rollen der Anforderungsanalyse und Entwicklung, während meine Frau ihr Fachwissen im Bereich Design einbrachte. Das Projekt begann mit einer gründlichen Untersuchung bestehender Herausforderungen und der Ableitung von Anforderungen für ollayr. Wir haben einen Wasserfallansatz verfolgt, zuerst alle Anforderungen dokumentiert und dann Design und Implementierung durchgeführt. Die Zusammenarbeit zwischen Design und Entwicklung gewährleistete eine kontinuierliche Abstimmung und Machbarkeit während des gesamten Prozesses.

Technologie Stack

Aufgrund von Budgetbeschränkungen habe ich versucht, die Kosten zu minimieren und gleichzeitig die Funktionalität zu maximieren:

Infrastruktur

Für das Hosting habe ich einen kleinen HPE ProLiant Microserver Gen10 Plus mit Proxmox VE 7.2 für die Virtualisierung verwendet. pfSense war für Firewall- und Routingkonfigurationen zuständig.

Backend

Ursprünglich entschied ich mich für Appwrite aufgrund seiner umfangreichen Integrationsmöglichkeiten. Die ausschließliche Nutzung externer Tools erwies sich jedoch als weniger effizient als erwartet, was während der Entwicklung Anpassungen erforderlich machte.

Frontend

Obwohl Flutter Web zunächst vielversprechend erschien, führten praktische Überlegungen dazu, dass ich mich für Vue3 mit TypeScript und TailwindCSS entschied. Vue und TypeScript waren zwar eine Herausforderung, aber ihre entwicklerfreundliche Natur ermöglichte schnelle Fortschritte.

Reflektionen und Erkenntnisse

Im Nachhinein erwies sich mein Ehrgeiz, jeden Aspekt des Projekts unabhängig anzugehen, als zu optimistisch. Das Verwalten von Server-Hosting, Konfigurationen und die Implementierung von Funktionen allein beanspruchte viel Zeit und Energie und betonte die Vorteile von Cloud-Hosting-Lösungen. Darüber hinaus überstieg der Umfang des MVP die handhabbare Größe und unterstrich die Bedeutung von Priorisierung und Fokussierung auf Kernfunktionalitäten.

Lektionen gelernt

  • Beginnen Sie mit einem äußerst kleinen MVP, das sich auf wesentliche Funktionen konzentriert.
  • Vermeiden Sie es, die gesamte Arbeitslast allein zu tragen, um kognitive Überlastung zu verhindern und die Produktivität aufrechtzuerhalten.
  • Erwägen Sie die Zusammenarbeit mit einem Programmierpartner für bessere Ergebnisse und schnellere Entwicklung.
  • Nehmen Sie sich ausreichend Zeit für ehrgeizige Projekte, um Burnout vorzubeugen und realistische Zeitpläne sicherzustellen.

Fazit

Trotz der Herausforderungen bleibt ollayr ein Beweis für die Bedeutung der Verfeinerung von Anforderungen und der Bereitstellung unterschiedlicher Perspektiven auf Projekte. Während die Reise mir wertvolle Erkenntnisse in Technologie und Projektmanagement vermittelte, betonte sie auch die Notwendigkeit, zu erkennen, wann man umschwenken oder Anstrengungen reduzieren muss. Bei der Fortsetzung meiner Entdeckungsreisen in neuen Projekten bin ich entschlossen, diese Erkenntnisse anzuwenden, um reibungslosere und erfolgreichere Unternehmungen zu gewährleisten. Bleiben Sie dran für Updates zu zukünftigen Projekten! 🚀