Ich arbeite in einer Produktionsstätte, die die IT mit der Erstellung eines Fertigungsplanungsprogramms beauftragt hat (das sehr dringend benötigt wird). Basierend auf den Erfahrungen anderer ist es besser, sich weniger Zeit zu nehmen und ein grundlegendes Framework zu erstellen, das verwendet werden kann, und darauf aufzubauen, indem Funktionen hinzugefügt werden, oder zunächst eine vollständig implementierte Lösung zu erstellen. Ich bin erst seit ungefähr einem Jahr Entwickler und habe nicht viel Erfahrung mit der ersten Erstellung von Apps dieser Größe. Ich habe mich der Idee zugewandt, dass eine Barebone-App aufgrund des extremen Bedarfs an digitalem Zeitplan der erste Weg ist, bin aber besorgt, dass das Hinzufügen zufälliger Funktionen nachträglich etwas chaotisch werden könnte. Wenn Sie sich in derselben Situation befänden, zu welchem Weg würden Sie sich neigen?
quelle
Antworten:
Erfahrung führt definitiv dazu, etwas Kleines und Einfaches zu bauen und es so früh wie möglich an die Benutzer zu bringen. Fügen Sie Funktionen hinzu, die von den Benutzern angefordert werden.
Die Chancen stehen sehr gut (an bestimmte Grenzen grenzend), dass das, was sie wollen / verlangen, nicht dem ähnelt, was Sie (wenn überhaupt) sehr selbst gebaut hätten.
Was die Dinge betrifft, die beim Hinzufügen zu Ihrer ursprünglichen Anwendung chaotisch werden: Aus diesem Grund legen Agile (und die meisten ähnlichen Methoden) großen Wert auf das Testen und Refactoring. Refactoring bedeutet, den Code zu bereinigen, während Sie Änderungen vornehmen, und eine solide Testsuite (die Sie jedes Mal ausführen, wenn Sie Änderungen vornehmen) stellt sicher, dass Sie (wenn) wenn Sie Fehler einführen, diese (fast) sofort kennen, sodass Sie etwas freigeben, wenn Sie etwas veröffentlichen Ihren Benutzern haben Sie eine hinreichende Sicherheit, dass es tatsächlich funktioniert.
quelle
Haben Sie eine Idee, ob sie es mit der App ernst meinen, dann möchten Sie möglicherweise keine Frameworks usw. usw. erstellen.
Sie müssen jedoch ein Gleichgewicht finden. Die agile Entwicklung empfiehlt, dass Sie sich zu diesem Zeitpunkt auf die Anforderungen der App konzentrieren. Dies bedeutet jedoch nicht, dass Sie sich einschränken müssen, indem Sie das grundlegende Design vernachlässigen. Es gibt Dinge, die leicht als kommen angesehen werden können (und ja, Erfahrung spielt hier eine Rolle) und andere, die Sie sich derzeit nicht vorstellen können (ich bin mir ziemlich sicher, dass die Leute, die nach der App gefragt haben, sie sich auch nicht vorstellen können).
Ich kenne die Details der Planungs-App nicht, aber ich kann mir vorstellen, dass die "Art der Termine" etwas ist, auf das Sie bald stoßen werden. Vielleicht fragen die Leute jetzt nicht danach, es ist nicht vernünftig, solche Funktionen zu erwarten.
Ich würde diesen Fall wie folgt angehen: Ich würde die Infrastruktur (das von Ihnen erwähnte Framework) erstellen, indem ich eine Tabelle in der Datenbank für Termintypen erstelle, aber ich würde mir nicht die Mühe machen, die Schnittstelle zum Hinzufügen oder Auswählen der Typen zu erstellen. Ich würde einen Basistyp hart codieren und mit den eigentlichen Funktionen fortfahren. Schließlich hat niemand darum gebeten, verschiedene Arten von Terminen aufzunehmen.
Wenn in Zukunft Leute zu Ihnen zurückkehren und nach dieser Funktion fragen, haben Sie die Struktur und bauen einfach das Mid / Front-End.
quelle
Oft verfügen Sie nicht über genügend Informationen, um ein zunächst vollständiges Programm zu erstellen. Tests und Kundenfeedback zeigen fast immer Teile Ihres ursprünglichen Designs, die nicht so gut waren wie theoretisch.
Das heißt, wenn das Problem gut verstanden ist und Sie können zunächst ein komplettes Programm schreiben, das ist besser , weil sonst sind Sie ständig den Code Refactoring und das Ergebnis ist selten so sauber wie eine solide Konstruktion , die von Anfang an verfolgt.
Zumindest denke ich, dass es wichtig ist, über die Art der Funktionen nachzudenken, die Ihr Programm möglicherweise benötigt. Auf diese Weise können Sie es so gestalten, dass solche Funktionen problemlos in die vorhandene Struktur eingefügt werden können.
quelle
Aus persönlicher Erfahrung: Erstellen Sie Ihr MVP (Minimum Viable Product) und fügen Sie dann basierend auf dem erhaltenen Feedback Funktionen hinzu. Es ist einfach, Tonnen von Funktionen zu erhalten und sie von niemandem verwenden zu lassen.
Wichtig ist auch die Benutzererfahrung, mit der Sie das Problem lösen. Überprüfen Sie den Workflow, den Sie mit Ihren tatsächlichen Benutzern erstellen, und fügen Sie dann weitere Funktionen hinzu. Auf diese Weise können Sie sich auf den Kernwert konzentrieren, den Sie aufbauen.
quelle