Wann ist es in Ordnung, bei der Arbeit an einem Produkt, das schnell erledigt werden muss und gut funktioniert, auf Wartbarkeit und "Ordentlichkeit" des Designs zu verzichten, damit die Aufgabe schnell erledigt und erledigt werden kann? Und inwieweit ist es in Ordnung, besonders wenn mir die Techniken, mit denen es "ordentlich" gemacht wird, neu sind?
15
Antworten:
Denken Sie daran, dass Sie angestellt sind, um ein Unternehmen zu unterstützen. In gewisser Weise wirkt sich Ihre Software auf das Geschäftsergebnis aus. Sie müssen ein Gleichgewicht zwischen einer technisch perfekten Lösung und der Zeit bis zur Markteinführung Ihres Produkts finden und wie viel Nutzen das Unternehmen daraus ziehen wird.
Meiner Erfahrung nach sind Entwickler oft auf der Suche nach technischer Perfektion. Es gibt jedoch sehr gute Gründe, auf Qualitätsmerkmale wie Wartbarkeit oder Leistung zu verzichten, um ein Produkt schneller auf den Markt zu bringen. Es kommt auf das Geschäft und das Produkt an. Aber "immer nach einem perfekten Design streben" ist ein zu simpler Ansatz.
Letztendlich ist das einzige, was zählt, der Wert für das Geschäft. Finden Sie heraus, wie Sie es kurz- und langfristig maximieren können, und streben Sie dieses Ziel an.
quelle
You need to strike a balance between a technically perfect solution, and the time to market of your product
Ich würde nicht zustimmen, das liegt außerhalb der Verantwortung eines Entwicklers. Sie müssen sich unbedingt darüber im Klaren sein, aber sie sollten die Informationen an jemanden weitergeben, der für eine Geschäftsentscheidung verantwortlich ist.Der Begriff "technische Schulden" ist sehr praktisch, um solche Geschäftsentscheidungen zu treffen. Jegliche Arbeit, die Sie jetzt nicht erledigen, verursacht später einen gewissen Arbeitsaufwand. Genau wie bei den Finanzen ist das Aufnehmen von Schulden riskant, kann sich aber lohnen, wenn Sie die Schulden später zurückzahlen können.
Allerdings ist die technische Verschuldung zur Amortisationszeit kein 1: 1-Verhältnis. Die Behebung von Fehlern nach der Veröffentlichung ist teurer, und die Auswirkungen auf die zukünftige Produktivität bei der Entwicklung von einem chaotischen Altsystem können empörend sein. Möglicherweise müssen Sie doppelt so viel Zeit aufwenden, um Ihre Fehler zu beheben, oder Sie müssen 1000-mal so viele Arbeitsstunden und Ressourcen aufwenden.
Ihre Aufgabe bei dieser Entscheidung ist es, die Auswirkungen der von Ihnen in Betracht gezogenen Eckschnitte zu verstehen und diese Auswirkungen dann den Personen mitzuteilen, die die Geschäftsentscheidung treffen. Diese besondere Fähigkeit zur Schätzung erfordert möglicherweise viel Forschung und Arbeit, um sich im Moment gut zu entwickeln, aber sie wird während Ihrer Karriere von unschätzbarem Wert sein.
quelle
Wenn es akzeptiert wird und die Konsequenzen vom Eigentümer / Kunden / Benutzer verstanden werden.
Ein Klempner muss zur Reparatur einen Müll entsorgen. Ich möchte in der Zwischenzeit die Spüle benutzen, aber er müsste mir die Zeit und das Material in Rechnung stellen, um mit Klebeband, das brechen könnte, provisorische Rohre einzulegen. Dies wird auch die Rückgabe der Entsorgung an die Reparaturwerkstatt verzögern. Wenn ich die zusätzliche Abrechnung mit der Maßgabe akzeptiere, dass ich ein Verstopfen riskiere. Es wird einen Tag länger dauern, bis die Entsorgung repariert ist, und es wird noch länger dauern, bis er sie zurückstellen kann. Das ist akzeptabel.
Sie können jetzt pünktlich und budgetgerecht sein, aber auf lange Sicht eine noch höhere Gebühr opfern / riskieren. Es kann schwierig sein, nicht-technische Leute dazu zu bringen, dies zu verstehen, aber dafür sind die Vertriebsmitarbeiter da.
quelle
Viele Menschen geben es schnell auf, wenn sie etwas Neues lernen, und tun es einfach so, wie sie es immer getan haben. Wenn dies ein Muster ist, leidet nicht nur Ihr Code, sondern Ihre eigenen Fähigkeiten als Programmierer bleiben begrenzt.
Letztendlich ist die einzige erfolgreiche Software die, die ausgeliefert wird.
quelle
Nachdem die weiche Frist verstrichen ist. Und selbst dann ist es ein sehr niedriger Grad von "OK". Nachdem die harte Frist abgelaufen ist, ist es natürlich strittig. Denn das liegt in der Natur harter Fristen.
Darüber hinaus entstehen hieraus technische Schulden. Für jede Stunde / Tag, die Sie damit verbringen, sich in der Mentalität der Geter zu verlieren, wird es Sie ungefähr doppelt so viel Zeit kosten, wenn Sie das nächste Mal dieses Projekt anfassen müssen. Wenn Sie müssen, ist es am besten, zu eilen, zu versenden und dann sofort zu beginnen, Ihr ganzes Entenband zu reparieren. Jahre später zu einem Hack-Eyed-Projekt zurückzukehren, ist ein Albtraum. Wenn du es nie wieder anfassen wirst, ist es niemandem egal. Aber das einzige Mal, dass ich ein Projekt für immer liegen gelassen habe, ist, als ich den Job gewechselt habe.
Denken Sie jedoch daran, dass das Timing dieser Dinge Aufgabe des Projektmanagers ist. Wenn Sie sich beeilen, eine Frist einzuhalten, ist die PM schuld. Mach es richtig, mach es einmal und mach es ruhig und richtig. Das Leben ist zu kurz für alles andere.
quelle
Alle anderen Antworten hier sind gut. Ich möchte jedoch hinzufügen, dass Sie als Entwickler des Projekts der Verwalter (Beschützer) des Designs sind.
Wenn Sie sich nicht für die richtige technische Lösung einsetzen, verspreche ich Ihnen niemand anderes. Sie sollten sich immer dafür einsetzen, dass Sie Ihrem Chef den richtigen Weg weisen, und der Premierminister sollte sich immer für den Abgabetermin aussprechen.
Wenn Sie sich in einer vernünftigen Organisation befinden, wird hoffentlich ein Kompromiss erzielt, der hilft, die Fristen einzuhalten und gleichzeitig nicht zu weit vom Design entfernt zu sein.
Wenn dies gesagt wird, gehe nicht davon aus, dass die Welt untergeht und das Projekt scheitert, wenn die Deadline des Premierministers nicht erreicht wird. Normalerweise ist es nicht so schwarzweiß, und die Frist für die PM ist in den meisten Fällen weich und es besteht Raum für Anpassungen.
Fast jede Frist, unter der ich jemals einen PM-Zeitplan hatte, war größtenteils künstlich. Sie verteidigen es mit aller Kraft und tun so, als ob es anders wäre, denn wenn der Ministerpräsident die Frist überschreitet, dann SIEHT der Ministerpräsident SCHLECHT aus!
Nur weil die PM schlecht aussieht, heißt das noch lange nicht, dass das Projekt gescheitert ist. Wenn Sie das verstehen, werden Sie überrascht sein, wie viel Sie eine PM zum Biegen bringen können.
quelle
Zitieren Sie den Kunden für das ordentliche Design. Wenn dieses Angebot für sie nicht akzeptabel ist, gehen Sie auf die Kosten für jede Komponente ein (in der Regel kosten == Entwicklungszeit). Lassen Sie sie nach Belieben "a la carte" ausziehen. Viele werden die Rasierpause für "nutzlose" Dinge wie Testen und Entwerfen nutzen. Erläutern Sie die Risiken dieses Ansatzes. Wenn Sie jedoch das Risiko akzeptieren, gehen Sie wie angegeben vor. Wenn ich nur genug Geld für ein Clunkerauto habe, werde ich ein Clunkerauto kaufen, auch wenn ich weiß, dass es wahrscheinlich in 8 Monaten kaputt sein wird. Ihr Kunde hat die Verantwortung, diese Risiken abzuwägen und die Konsequenzen zu akzeptieren.
Das einzige, was Sie nicht tun möchten, ist, dem Kunden zu sagen, dass er ein wunderschön gestaltetes Stück Software hat, wenn er nur für einen ungeprüften Müll bezahlt (und ihn erhalten) hat. Wenn etwas schief geht (was wahrscheinlich der Fall sein wird), sehen sie im ersten Szenario schlecht aus, aber im zweiten Szenario sehen Sie schlecht aus.
quelle
Es ist nie in Ordnung, aber manchmal muss man Kompromisse eingehen, um ein Projekt abzuschließen. Die traurige Realität ist, dass die meisten Geschäftsleute völlig unwissend sind und mehr als bereit sind, die Wartbarkeit später für etwas zu opfern. Der Trick besteht darin, zu wissen, wie man ein Gleichgewicht herstellt. Vielleicht ist das Projekt nicht so ordentlich wie es sein könnte, aber solange es kein Schweinestall ist, ist es ein würdiger Kompromiss.
quelle
Das hängt ganz von der Frage ab: "Wollen Sie oder jemand anderes sie möglicherweise später ändern?" Wenn ja, sollten Sie versuchen, ein "ordentliches" Design zu haben, da Sie sonst das Risiko eingehen müssen, alles wegzuwerfen und 6 Monate später erneut zu beginnen.
Natürlich kann man Ordentlichkeit zu weit führen, aber im Allgemeinen erspart ein bisschen Ordentlichkeit Ihnen später die Arbeit.
quelle