Was sind die größten Engpässe bei der Entwicklung großer Projekte? [geschlossen]

11

Angenommen, mein Unternehmen sollte eine Replik von MS Word entwickeln (nur als Beispiel). Was wäre der Engpass im Entwicklungsprozess, vorausgesetzt, man hat unendlich viel Geld zur Verfügung und eine Organisation wie Microsoft? Mit anderen Worten, was sind die häufigsten Hindernisse bei der schnellen Entwicklung einer solchen Software? Nehmen wir an, dass alle Spezifikationen vorhanden sind und die Organisation einwandfrei funktioniert. Daher konzentrieren wir uns nur auf die Softwareentwicklung, bis das Produkt versandbereit ist. Einige Alternativen könnten sein: - Schreiben des Codes - Schreiben von Tests - Manuelles Testen des Endprodukts - Umschreiben des Codes aufgrund schlechten Designs - Erstellen des Codes - Überprüfung des Codes durch erfahrene Entwickler - Entwerfen der GUI - Neugestalten der GUI basierend auf Alpha / Beta-Benutzer-Feedback - Feedback von Benutzern verarbeiten - Warten auf Alpha / Beta-Benutzer-Feedback

Bitte verwenden Sie Referenzen in Ihrer Antwort oder geben Sie Ihre Erfahrungen zu diesem Thema an.

David
quelle
4
Haben Sie gute Entwickler?
@ Thorbjørn Ravn Andersen Sagen wir die gleiche Mischung aus gut und schlecht wie Microsoft.
David
1
Dies ist stark unterbestimmt und kann nicht beantwortet werden.

Antworten:

3

Nach meiner Erfahrung ist der größte "Engpass" der Lernprozess . Wenn Ihr hypothetisches Unternehmen das nächste Microsoft Word entwickeln möchte, besteht eine große Lücke zwischen dem, was Sie wissen müssen und dem, was Sie tatsächlich wissen. Die Größe der Lücke hängt von vielen Faktoren ab, es kann sich um eine Technologie oder eine Domäne handeln. Sie haben einige dieser Probleme in Ihrer Frage angesprochen, z. B. Design, Benutzerfeedback usw. Microsoft Word befindet sich seit über 30 Jahren in der Entwicklung. Zwischen Geschichte, Code, Tools und Personen steckt also viel Wissen dahinter.

Wenn ich dies versuchen würde, würde ich versuchen, die besten Leute mit Erfahrung auf diesem Gebiet einzustellen, sowohl im technischen als auch im Management. Versuchen Sie, die verfügbare Literatur auf diesem Gebiet zu lesen. Ich würde auch versuchen, so schnell wie möglich Kundenfeedback zu erhalten. Das größte Problem sind die kritischen Dinge, die Sie nicht kennen und die Sie möglicherweise erst sehr spät in Ihrem Prozess erfahren.

Dies gilt übrigens nicht nur für Softwareprojekte. Dies gilt für jedes Großprojekt, bei dem Sie versuchen, etwas Neues zu tun. Schauen Sie sich zum Beispiel den Boeing Dreamliner an. Es gibt viele Bücher darüber. Der Monat des mythischen Mannes ist einer.

Guy Sirton
quelle
37

Nehmen wir an, dass alle Spezifikationen vorhanden sind und die Organisation einwandfrei funktioniert.

Sie haben angenommen, dass die beiden größten "Engpässe" in den Softwareentwicklungsprozessen nicht existieren (aus meinen persönlichen Erfahrungen).

Brandon Moretz
quelle
4
++ Ja. Und die Annahme, dass wenn Sie Spezifikationen haben, diese nicht geändert werden. Erfahrene Entwickler müssen wissen, wie sie vorhersehen können, welche Änderungen noch nicht angefordert wurden, und wie sie damit umgehen können, wenn sie dies tun.
Mike Dunlavey
Ich weiß, dass dies große Hindernisse sind, aber ich frage nicht nach ihnen, da ich bereits über sie Bescheid wusste und sie offensichtlich sind.
David
8

Selbst in Ihrer hypothetischen, perfekten Welt gibt es einige Probleme, die ich sehen kann:

Aus meiner Sicht ist es wahrscheinlich am wichtigsten, mit Kunden umzugehen. Nach meiner eigenen Erfahrung muss sich das Unternehmen mit Kunden befassen, die häufig versuchen, das Projekt während der Entwicklung zu ändern. In einigen Fällen haben sie versucht, eine Änderungsanforderung als Fehlerbehebung zu verwenden, um zu vermeiden, dass sie Geld bezahlen müssen. Dies kann zu viel Bürokratie führen, die ein Projekt verzögern oder zu schnellen Code-Hacks führen kann, die sich später zu technischen Schulden entwickeln. Ich habe von Teams gelesen und gehört, die sich mit diesen Problemen so leicht wie atmen befassen, und ich wünschte, ich wäre in einem von ihnen :)

Das zweite Problem ist das Fehlen eines geeigneten Domänenmodells. Eric Evans berichtet in seinem Buch Domain Driven Design ausführlich darüber . Das Fehlen eines guten Domain-Modells führt zu einigen der in Glenns Antwort hervorgehobenen Probleme, z. B. dem Versuch, einen Fehler zu finden. Ohne ein sauberes Domänenmodell kann es zeitaufwändig sein, den Code zu durchlaufen / zu debuggen, um ein Problem zu isolieren und zu beheben. Ich würde argumentieren, dass ein gutes Domain-Modell das Leben und Debuggen viel einfacher macht, umso mehr, wenn die Anwendung später gewartet und erweitert wird.

Die oben genannten Probleme führen zu keinen unmittelbaren Problemen. Wenn Sie dieses Produkt jedoch über einen längeren Zeitraum warten müssen, können sie Sie und Ihr Team verfolgen.

Trostloser Planet
quelle
Ich denke, das ist eine ausgezeichnete Antwort!
David
4

Ich bin mir nicht sicher, was Sie unter "Die Organisation funktioniert perfekt" verstehen, aber selbst in einer fantastischen Organisation ist die Kommunikation der größte Engpass in einem größeren Projekt. Mythical Man Month zeigt auf, wie mit dem Wachstum eines Projektteams Kommunikationskombinationen explodieren und fast Fehler und fehlende Informationen garantieren.

JeremyDWill
quelle
2

Nach dem, was ich bisher bei der Arbeit gesehen habe, ist eine große Quelle von Engpässen einfach auf Fehler und das menschliche Versagen zurückzuführen, das sie verursacht hat. Denken Sie nur an die Zeit, die zum Debuggen des Codes benötigt wird, um eine Lösung für das Problem zu finden und die neue Lösung erneut zu testen. Stellen Sie sich nun vor, dass dieses Update einen weiteren subtilen Fehler verursacht hat. Es kann ein großer Schmerzstrom sein und somit die Entwicklung insgesamt verlangsamen.


quelle
Dies ist eine ausgezeichnete Antwort. Was Sie innerhalb von Bugs sagen würden, ist der größte Engpass, der sich von der Frage nach dem größten Zeitverbraucher für den Entwickler unterscheidet. Den Fehler identifizieren, eine Lösung finden, erneut testen oder etwas anderes.
David
1
Ein erneuter Test ist kein Problem. Der eigentliche Engpass besteht meiner Meinung nach in der Regel darin, einen Fehler zu finden, aber die Suche nach einer geeigneten Lösung kann genauso lange dauern.
2

Ich denke, Brandon Moretz hat die beste Antwort. Aber ich möchte hinzufügen, dass es gar nicht so schwer ist, die erste Version aus einem großen Projekt herauszuholen. Ich persönlich habe das nie versäumt.

Was ich versäumt habe, war, die erste Version so zu erstellen, dass die zweite, dritte usw. Version und / oder Fehlerbehebungen und / oder kleinere Funktionsverbesserungen auch rechtzeitig geliefert werden können.

ElGringoGrande
quelle
0

Ja, ich werde den oben genannten Dingen zustimmen und es muss Softwaremodellen folgen. Nach meinem Wissen sind die wichtigsten Dinge:

1. Zeitmanagement 2. Team-Effizienz und Team-Management 3. Koordination im Team und 4. Besseres Verständnis mit dem Kunden

Wenn wir die oben genannten vier haben, können wir mit Erfolg und viel Verbesserung in Bezug auf Persönlichkeit und Software in eine neue Welt vordringen. Dies führt zu einer guten Beziehung zum Kunden und der Kunde wird die Befehle erteilen, ohne an uns zu denken.

kiran
quelle
0

Latente Mängel in Bezug auf Anforderungen, Design, Implementierung, Bereitstellung ... Wie bei Sachen, die kaputt sind, aber Sie müssen sie noch finden. Stellen Sie sich eine Softwareentwicklung vor, bei der jeder neue Fehler durch die letzten Änderungen verursacht wurde.

mattnz
quelle