Das ist eine gute Frage. Ich antworte aus der Perspektive von jemandem mit 30 Jahren Erfahrung mit einem Jahrzehnt als engagierter Projektmanager in allen Bereichen außer der Softwareentwicklung, bin aber kürzlich unbeabsichtigt in den Bereich Softwareentwicklung gestolpert. Unabhängig von der Methodik, die in Ihrem Team angewendet wird, und der so genannten Methode sind Entwicklungsprojekte am Ende des Tages dieselben wie alle anderen in geschäftlicher Hinsicht, da die Ziele innerhalb konkurrierender Zeit-, Budget- und Qualitätsbeschränkungen erreicht werden müssen. - und während Projekte ausgeführt werden, bewegt sich das Geschäft weiter und hat gute Chancen, Änderungen in Ihr Projekt einzufügen. Daher ist es notwendig, Ziele und Zeitrahmen festzulegen und festzulegen und in der Lage zu sein, regelmäßig und auf Anfrage Aktualisierungen bereitzustellen. Ich nicht
Nach meiner Erfahrung ist es jedoch besonders schwierig, Zeitschätzungen in der Softwareentwicklung vorzunehmen, wenn Entwicklungsprojekte viele Neulandgebiete umfassen. Die technische Definition eines "Projekts" gemäß dem Project Management Institute of Knowledge des Project Management Institute lautet, dass ein Projekt eindeutig sein muss. Die überwiegende Mehrheit der "Projekte" in der IT sind jedoch bloße Neuausführungen zuvor entwickelter Blaupausen und Entwürfe sowie Implementierungslaufbücher. In der Softwareentwicklung verfügen wir über Frameworks und verschiedene generische Entwurfsmuster, die einen Großteil der Entwicklung wiederverwendbar machen. Dennoch ist der Kern jedes Projekts völlig einzigartig.
Darüber hinaus erfordern die meisten Entwicklungsprojekte die Integration in andere Systeme, und wie schnell dies durchgeführt werden kann, ist eine große Vermutung. Ich arbeite gerade an einem Projekt, bei dem meine ursprünglichen Zeitschätzungen auf der Annahme beruhten, dass die 4 Systeme, mit denen ich programmgesteuert interagieren muss, APIs haben würden, und es stellt sich heraus, dass dies keine tun. Darüber hinaus ist eines der Systeme in der Cloud gehostet, und meine Organisation verfügt über Richtlinien, die die Ausführung der Arbeit verbieten. Wer hätte das vorhersagen können?
Da Entdeckungen gemacht werden, die den Zeitrahmen gefährden, ist es wichtig, gut zu kommunizieren, warum die Verzögerung aufgetreten ist, warum sie nicht vorhersehbar war usw.
Mir wurde auch gesagt, dass der angegebene Zeitrahmen nicht funktionieren und es viel "schneller" machen würde. Eine andere Variante besteht darin, eine Bootsladung mit Änderungen zu erhalten, die in die Entwicklung eingebracht werden können, ohne dass zusätzliche Zeit zur Verfügung steht. In der Physik gibt es ein Gesetz, das besagt, dass Materie nicht geschaffen oder zerstört werden kann, und dies kommt mir in den Sinn, weil es mir so scheint, als könne Zeit auch nicht aus dem Nichts geschaffen werden. Eine Beschleunigung der Entwicklung wird sich wahrscheinlich negativ auf die Release-Qualität, die Unterstützbarkeit des Produkts und / oder die zukünftige Entwicklung des Produkts auswirken.
Anfragen zum Zeitplan sollten allgemein beantwortet werden. "Ja, wir sind auf dem richtigen Weg, um die zuvor festgelegten Fristen einzuhalten, und es gibt keine Probleme beim Brauen, die dies gefährden." Anfragen, ohne mehr Zeit einen erheblichen Umfang hinzuzufügen oder einfach die Bereitstellung zu beschleunigen, sollten eine Form von "Wir können das tun, aber nur damit alle wissen, dass das Risiko von Fehlern von Natur aus besteht, da ein Großteil der Entwicklungszeit proaktiv ist." um keine Fehler einzuführen und auch umfassend zu testen. " Wenn sie mit "Also einfach schneller testen" antworten, erhalten sie eine Antwort, die erklärt, dass Entwicklungstests keine Leerlaufzeit mit sich bringen und beschleunigt werden können, ohne dass das Risiko fehlender Fehler besteht.
Zusammenfassend schlage ich lediglich vor, dass alle Entwickler - nicht nur die Leads, Scrum Master oder Projektmanager - bereit sind, ihre Aufgaben in einem Geschäftskontext zu diskutieren und Diskussionen über die Änderung von Projektparametern zu führen, indem sie die Kompromisse berücksichtigen, die sich daraus ergeben würde ergeben.