Ich glaube nicht, dass der Rest des Geschäfts helfen wird, da sie keinen Sinn für Entwicklungslebenszyklen haben und sich die Anforderungen innerhalb eines einzigen Sprints ständig ändern.
Eine Sache, auf die Unternehmen im Allgemeinen hören, ist alles, was sich auf das Budget auswirkt. Wenn sich die Anforderungen ständig leichtfertig ändern, sollten Sie ein Argument mit detaillierten Beispielen erstellen, um zu zeigen, wie sich solche Änderungen auf die Teameffizienz auswirken, überlappende Arbeit verursachen und das Unternehmen Geld kosten. Wenn andererseits die Änderungen notwendig sind und zu einem Verlust für das Unternehmen führen können, wenn sie nicht durchgeführt werden, müssen Sie sie möglicherweise einfach tragen und einen Weg finden, um mit sich ständig ändernden Anforderungen umzugehen.
Ich habe jedoch die Erfahrung gemacht, dass wenn sich die Dinge so schnell ändern, wie Sie es vorgeschlagen haben, dies folgende Gründe haben kann:
- Das Konzept ist experimentell. In diesem Fall möchten Sie möglicherweise alle diese Änderungen vornehmen, anstatt sie direkt in den Produktionscode zu implementieren.
- Das Konzept wurde nicht gründlich analysiert, was darauf hindeutet, dass das Produkt nicht wirklich durchdacht wurde und das Produkt während der Ausarbeitung codiert werden muss.
- Ständiger Markt- und Wettbewerbsdruck führen zu ruckartigen Veränderungen
- Eine schlechte Beziehung zwischen Projekttreibern, Managern und dem Implementierungsteam in Bezug auf die Fähigkeit aller Beteiligten, frei über die Notwendigkeit von Änderungen zu kommunizieren.
- Schlechte Priorisierung von Aufgaben, und dies kann sowohl ein Fehler des Managements als auch des Implementierungspersonals sein.
Manchmal wissen Projektbesitzer nicht wirklich, wie das Produkt funktionieren soll, weil sie ein Grundkonzept im Auge haben. Sie müssen jedoch erst sehen, wie es funktioniert, bevor sie sich entscheiden. Dies kann daran liegen, dass die Problemdomäne nicht sehr gut verstanden wird oder dass sie nicht wirklich darüber nachgedacht haben, wie eine Geschäftsfunktion in eine softwarebasierte Lösung umgesetzt werden kann. Prototyping kann in solchen Fällen von Vorteil sein. Sie können GUIs mit Scheinobjekten einfach prototypisieren, wenn die Änderungen kosmetischer Natur sind, oder Sie können Komponententests verwenden, um algorithmische Änderungen zu testen und zu optimieren. Der Schlüssel besteht jedoch darin, sicherzustellen, dass Änderungen so systematisch wie möglich angewendet werden, um den Prozess relativ schlank und kostengünstig zu halten.
Wir haben vorgeschlagen, Prozesse einzurichten, um diesen Anforderungsänderungen auszuweichen und das Unternehmen über Entwicklungslebenszyklen aufzuklären.
Dies ist ein guter Anfang und ermöglicht es Ihnen, mit dem Management in Kontakt zu treten, um zu versuchen, positive Ergebnisse auf gemessene und strukturierte Weise zu erzielen. Bildung ist die effektivste Methode, um Probleme zu lösen, bei denen Entwickler und Management ideologisch nicht synchron sind. Um jedoch den größten Nutzen zu erzielen, muss die Ausbildung in beide Richtungen erfolgen, ebenso wie die Kommunikation. Sie müssen sich selbst und dem Management beibringen, Ihre Bedürfnisse zu kommunizieren und sich gegenseitig zu helfen, die Motivationen zu verstehen, die diese Bedürfnisse antreiben. Zu sagen, dass es "zu schwer" oder "viel Arbeit" oder "Zeitverschwendung" ist, wird nur als Beschwerde und "Faulheit" empfunden. Ihre Argumentation muss klar sein, und in einer Sprache, die zeigt, dass Sie daran arbeiten, positive Ergebnisse für das Unternehmen und das Produkt zu erzielen, an dem Sie arbeiten, und dass Ihre Motive diese Interessen berücksichtigen. Ebenso müssen Sie möglicherweise lernen, die Gründe zu akzeptieren, die Ihnen die Anzüge geben, warum sie das Bedürfnis haben, Dinge so schnell zu ändern. Vielleicht finden Sie zwischen Ihnen einen gut funktionierenden Mittelweg, wenn beide Seiten den Standpunkt des anderen verstehen können.
Was ist, wenn das Unternehmen nicht auf die Idee kommt? Was würden Sie tun?
Wenn Sie nicht das erhoffte Ergebnis erzielen, stimmt das Timing möglicherweise nicht. Vielleicht müssen Ihre Argumente anders gemacht werden. Vielleicht haben Sie alles falsch gemacht und müssen mehr darüber erfahren, was die andere Seite denkt. Wenn Ihr spezieller Ansatz fehlschlägt, liegt es letztendlich an Ihnen, zu entscheiden, wie wichtig es für Sie ist, sich damit befasst zu haben. Denken Sie jedoch positiv darüber nach, was Sie heute tun können, anstatt sich mit dem zu befassen, was passieren kann oder nicht. Die Probleme von morgen sind nicht unbedingt garantiert und es lohnt sich nicht, sich Sorgen zu machen, bis sie tatsächlich auftreten.
Ein letzter zu berücksichtigender Punkt. Ihr CTO ist möglicherweise besorgt über viele der gleichen Probleme wie Sie. Ein Dekret zur Einführung von TDD lässt mich vermuten, dass dies sehr wohl der Fall sein kann, da TDD in Situationen, in denen sich der Code häufig ändert, sehr effektiv ist. In einem Test-First-Szenario werden Tests am nächsten Tag nicht unbrauchbar, da Sie über ein Sicherheitsnetz verfügen, in dem Sie schnell und sicher Änderungen vornehmen können. Sie müssen jedoch noch einen Weg finden, um die Erwartungen der Personen, die Änderungen anfordern, zu verwalten, um Änderungen effizient verwalten zu können.