Wenn Sie ein Projekt starten, wissen Sie am wenigsten, was Sie jemals darüber wissen werden. Die Verbraucher Ihres Projekts wissen auch das Wenigste, was sie jemals darüber erfahren werden.
Sie können Ihnen einen Pie-in-the-Sky geben. "Hier ist, was ich denke, dass es tun sollte, und hier ist, wie ich Ich möchte, dass es das tut ", aber die Chancen stehen gut, dass sie falsch sind, insbesondere im Detail.
Wenn Sie ein Design nehmen und einen mehr als zwei Monate dauernden Entwicklungsplan erstellen, um es zu implementieren, dann Geh und arbeite daran, du wirst diesem Plan mit ziemlicher Sicherheit nicht folgen. Teile werden schwieriger oder einfacher als Sie denken, andere Teile werden sinnlos sein, wenn Sie sie erreichen, und wenn Sie an dem Projekt arbeiten, werden Sie Fachwissen in diesem Projekt erwerben.
A. In der kommenden Woche haben Sie eine bessere Vorstellung vom Plan und viele Verbesserungen. In einem Monat werden Sie wahrscheinlich denken, Ihr Plan sei dumm.
Ihre Kunden / Chefs haben eine Vorstellung davon, was sie wollen. Sie sind keine Experten für das, was sie machen wollen: Im besten Fall sind sie Generalisten, die wissen, wie man ähnliche Probleme löst, aber der einzige Weg, ein Experte für die Erstellung einer Software zu werden, besteht darin, diese Software zu erstellen. Wenn sie diese Software bereits erstellt hätten, würden sie Sie nicht benötigen.
Ihre Aufgabe ist es, ein Experte für die Erstellung der Software zu werden. Was die Software anfänglich tut, wird vage sein. Sie wissen es nicht wirklich und du weißt es nicht wirklich. Also iterieren Sie: Sie erarbeiten, was Sie denken, dass sie wollen, Sie fragen sie, ob das vernünftig erscheint, Sie implementieren und stellen ihnen so schnell wie möglich etwas vor. Je nachdem, wer sie sind, polieren Sie verschiedene Teile und lassen andere Teile unvollendet.
Dann erhalten Sie Feedback. Sie werden einige Teile mögen, andere Teile für Müll halten und andere Teile für Zeitverschwendung halten. Du gehst los und änderst deine Software - vielleicht verschrottest du sogar die Arbeit und fängst von vorne an (weil jetzt dein Fachwissen beim Schreiben dieses ersten Teils viel besser geworden ist - du hast es einfach getan und du hast wahrscheinlich etwas daraus gelernt) und bekommst schneller zum selben Punkt - oder Sie optimieren es einfach und fügen hinzu, was ihnen gefällt, und ändern, was sie wollen.
Wenn Sie ihr Feedback erhalten, lassen Sie sie sagen, was das Wichtigste ist, was sie wollen verbessert. Lass es aufschreiben. Fragen Sie nach dem, was wichtiger ist (erhalten Sie es in einer geordneten Liste). Angenommen, Sie werden in ein oder zwei Tagen mit Prototypschätzungen zu ihnen zurückkehren. Erraten Sie, wie lange es dauern wird, bis die wenigen gewünschten Funktionen prototypisiert sind, und fragen Sie sie, ob sie in Ordnung sind, wenn ein Prototyp (NICHT eine fertige Version) in X Tagen (einschließlich Puffer für Fehler) einer der Top-Funktionen angezeigt wird 2 Dinge, die sie wollen.
Zeigen Sie ihnen dann Ihren Prototyp und fragen Sie sie, ob sie ihn fertig stellen oder aus der Lösung entfernen möchten. Je nachdem, wer sie sind, möchten Sie möglicherweise anhand des Verhaltens der App verdeutlichen, dass es sich um einen Prototyp handelt. Zu diesem Zeitpunkt sollten Sie eine gute Vorstellung davon haben, wie lange das Polieren des Prototyps dauern wird. Sie können weitere Änderungen anfordern, bevor sie es "fertigstellen", oder sie können verlangen, dass es poliert wird. Wenn sie nach weiteren Änderungen fragen, kehren Sie zu den vorherigen Prioritäten zurück.
Dies ist im Grunde genommen eine entwicklerorientierte Agilität, bei der Sie aktiv Geschäfte mit Ihren Verbrauchern / Vorgesetzten abschließen. Sie erhalten häufig Prototypen und werden häufig um Feedback gebeten. Sie müssen sicherstellen, dass jeder Prototyp entfernt werden kann und wird, wenn Sie nicht aufgefordert werden, ihn zu polieren, und dass er weiß, dass Ihre Prototypen den abgeschlossenen Funktionen nicht so nahe kommen.
Auf diese Weise Ihr Fachwissen beim Schreiben der Anwendung wächst und ihr Verständnis dafür, was sie wirklich wollen, wächst mit der Entwicklung der Anwendung.
Wenn Sie im Voraus nach einer vollständigen Spezifikation fragen, werden die Entscheidungen getroffen, bevor Sie wissen, was funktioniert und was nicht.