Warum ist es so schwierig, Entwicklungszeitpläne zu bewerten (plus eine Aufgabe für Entwickler)

    Bild
    Ähm, kannst du den rosa Bereich etwas verschieben?

    Im Alltag versuchen wir ständig, alles zu evaluieren: Wie viel Zeit brauche ich, um zur Arbeit zu kommen? Wie viel Geld gebe ich monatlich aus? Habe ich genug zu essen für die bevorstehende große Party? Und so weiter ...

    Es scheint, dass die ständige Bewertung von allem, was dazugehört, ein Teil unseres Lebens ist. Es ist also nicht verwunderlich, dass wir in der Softwareentwicklung dasselbe finden.

    Wir haben alle von Projekten gehört, deren Ausgabe immer wieder verzögert wurde, oder? Vielleicht liegt es daran, dass das Team die benötigte Zeit nicht richtig einschätzen konnte?

    Lassen Sie mich eine Frage stellen: Wie lange dauert es, von Paris nach London zu gelangen? (Die richtige Antwort lautet: "Wie wird es ausgehen?").

    Es kann Optionen von 1 bis 10 Stunden oder mehr geben, oder? Hinweis - Ich habe nur gefragt, wie lange es dauern würde, aber nicht gesagt, wie genau dies geschehen soll. Dies ist wichtig, da wir eine Vielzahl von Reisemöglichkeiten haben. Und da nichts explizit angegeben ist, kann jeder seine eigene Methode wählen. Jemand beschließt, mit dem Flugzeug, mit dem Zug, mit dem Auto oder sogar mit dem Fahrrad zu reisen.

    Nachdem wir alle Möglichkeiten besprochen hatten, entschieden wir, dass der schnellste Weg das Fliegen in einem Flugzeug sein würde. Und wir sollten nicht später als zwei Stunden in London sein, oder? Nun rate mal, wo die Flüge wegen schlechten Wetters abgesagt wurden. Verstehst du, was alles passiert?

    Die geschätzte Entwicklungszeit ist noch schlimmer ...


    Bei Softwareprojekten ist eine genaue Beurteilung sehr viel schwieriger. Dazu gibt es sogar einen speziellen Begriff " Scope Creep " - eine unkontrollierte Ausweitung des Projektumfangs. Denken Sie nicht, dass dies nur für alte, monolithische Projekte gilt, die ihren Höhepunkt längst überschritten haben. Selbst in modernen Anwendungen müssen Sie wissen, wie lange es dauert, die neuesten Fehler zu beheben, aufgrund derer der Benutzer das Produkt nicht kaufen möchte. Zeit ist Geld, nicht wahr?

    Wie können wir das beheben? Es gibt verschiedene Techniken, über die ich in den kommenden Beiträgen sprechen möchte. Aber fangen wir jetzt mit einem kleinen Beispiel an.

    Je einfacher die Auswertung ist, desto mehr Informationen haben Sie über die zu erledigende Aufgabe. Es sieht nach einem Idealfall aus, aber wie wir wissen, ist dies nicht immer der Fall. Was tun wir, wenn wir nicht genügend Informationen haben? Wir müssen eine Annahme machen! Wird dies die Punktzahl verbessern? Es ist unwahrscheinlich, aber es wird zumindest einige Gründe geben, bis Sie die fehlenden Informationen herausfinden.

    Mal sehen, wie das mit einem Beispiel einer Aufgabe funktioniert ...

    Herausforderung


    Stellen Sie sich die Frage eines Kunden vor: Wie lange dauert die Implementierung eines neuen investitionsbezogenen Teils?

    Schauen Sie sich den Code an:

    interface Bank {
    	boolean depositFunds(Funds funds);
    }
    

    Sie müssen lediglich die Schnittstelle implementieren. Wie viel Zeit brauchst du? Hinweis: Es gibt keine richtige oder falsche Antwort und Sie müssen wahrscheinlich einige Annahmen treffen.


    Übersetzung eines Artikels von Roberto Cortez , Original auf ZeroTurnAround .

    Jetzt auch beliebt: