Abnehmende Renditen für zusätzliche Entwickler


10

Gibt es einen Begriff, der den Punkt beschreibt, an dem das Hinzufügen weiterer Entwickler zu einem Softwareprojekt zu sinkenden Renditen führt?

Mir ist klar, dass es auf hohem Niveau komplizierter ist, als nur eine Reihe von Entwicklern, bei denen das Projekt produktiv sein wird (Ex / Status des Projekts, Qualität des hinzugefügten Entwicklers), aber ich versuche, etwas zu finden eine Möglichkeit, dies durch Wiederholung mit nichttechnischem Management in Verbindung zu bringen. Ich suche im Grunde nach einem Begriff, der ein starkes mentales Bild wie "Endgeschwindigkeit" hervorruft, mit Ausnahme von Brooks Gesetz .


2
Ich glaube, dieser Punkt heißt "Jetzt". Im Ernst, Sie sollten ihnen ein Diagramm zeigen, in dem der Moment, in dem ein / fünf / zehn neue Entwickler hinzugefügt werden, und die Auswirkungen auf die Projektlaufzeit aufgezeichnet werden (unter Berücksichtigung von Produktivitätsverlusten aufgrund des Mentorings bestehender Mitglieder, Fehlern neuer Mitglieder und Nacharbeiten usw.). )
Oded

14
"Neun Frauen, die in einem Monat ein Baby zur Welt bringen" ist eine gängige Analogie, die verwendet wird, um dem Management das Problem von Ressourcen und Zeitplan zu erklären.
Dasblinkenlight

2
@dasblinkenlight - "Aber was ist, wenn die Frauen in Schichten arbeiten?" (typische nichttechnische Managementreaktion).
Jfrankcarr

6
but senior management tends to view it as aggressively negativeDie Agenda der Geschäftsleitung in Ihrem Fall hat wahrscheinlich zwei Gründe: die Projektabschlussdaten auf jede mögliche Weise zu verringern und die Entwickler zu kontrollieren. Jede Ansicht, die ihren vorgefassten Vorstellungen zuwiderläuft, wird als negativ angesehen und hängt davon ab, wie aggressiv Sie versuchen, sie zu "überzeugen". Andernfalls werden Sie nur als "kein Teamplayer" bezeichnet. Das Management spricht für jemanden, der nicht kontrolliert werden kann.
maple_shaft

1
Sind Sie (sie?) Besorgt über - Zeitplan, Risiko oder $ oder eine Kombination davon. Finden Sie heraus, worüber sie am meisten besorgt sind, und sprechen Sie an, warum mehr Entwickler dieses Problem nicht beheben (und um ernst genommen zu werden, schlagen Sie eine alternative Lösung vor). Oft ist es subtiler als reines Geld oder Zeitpläne.
Mattnz

Antworten:


7

Ihre Frage enthält die Antwort: den Punkt, an dem die Renditen sinken. Dies ist der Punkt, an dem das Hinzufügen von mehr Ressourcen mehr kostet als der produktive Effekt dieser Ressourcen. Das ist ein grundlegendes wirtschaftliches Konzept, daher wird von Ihrem Management erwartet, dass Sie dies auswendig wissen ...


3
Was Sie beschrieben haben, ist das, was Ökonomen den Punkt negativer Renditen nennen - wo das Hinzufügen von Ressourcen Sie schlechter stellt. Der Punkt, an dem die Renditen sinken, ist der Punkt, an dem das Hinzufügen von mehr Ressourcen die Produktion noch erhöht, jedoch um einen geringeren Betrag. Wenn Sie also Ressourcen hinzufügen, sind Sie etwas besser dran, aber weniger als erwartet.
MarkJ

@ MarkJ Guter Punkt. Ich schätze, ich suche nicht unbedingt nach sinkenden oder negativen Renditen in der Regel. Ich suche nur nach dem Punkt, an dem der leitende Entwickler / Projektmanager zu mehr Ressourcen nein sagen würde. Leider ist das nicht immer geschnitten und trocken.
smp7d

6

" Das Hinzufügen von Arbeitskräften zu einem späten Softwareprojekt macht es später. Ein Arbeitsmonat ist ein Konzept einer Arbeitseinheit, die proportional zur Anzahl der Beschäftigten multipliziert mit der Zeit ihrer Arbeit ist. Brooks Gesetz besagt, dass diese Beziehung ein Mythos ist, und ist daher das Herzstück des Buches. "- Quelle: Wiki-Mythical_Man_Month .


1
"Mein Golfkumpel, der auch eine IT-Beratungsfirma leitet, sagt, dass er zwei 'Black Belt'-Programmierer hat, die derzeit verfügbar sind. Beide haben einen Master-Abschluss in Informatik. Sie sollten in der Lage sein, sie problemlos einzubringen Vielleicht lernst du etwas darüber, wie du deine Zeit besser planen kannst. "
Jfrankcarr

1
@kevincline - "Ich sehe, dass Sie kein Teamplayer sind. Ich beauftrage Sie erneut mit der Wartung unserer 14 Jahre alten VB6-App. Hier ist eine Kopie von Who Moved My Cheese?, die Sie lesen können."
Jfrankcarr

3
"Ich sehe, du bist kein Teamplayer.": Ich hatte auch diesen Kommentar. Meine Antwort war ein Vergleich mit Fußball: Eine gute Mannschaft versucht nicht, sich auf 5 Quadratmeter zu drängen, sondern das gesamte Feld zu besetzen, damit jeder Spieler effektiver sein kann. und die Spieler geben den Ball oft nach Bedarf hin und her. In einem Team zu arbeiten bedeutet, dass die Teammitglieder ihre Aktivitäten koordinieren, aber an unabhängigen, nicht überlappenden Bereichen des Projekts arbeiten. Wenn dies möglich ist, können Sie weitere Entwickler hinzufügen und die Produktivität steigern.
Giorgio

1
@ kevin cline: Vielleicht ist dies der Grund, warum es irgendwann nutzlos wird, neue Entwickler zu einem Team hinzuzufügen. Wahrscheinlich sollte man aufhören, neue Entwickler hinzuzufügen, wenn man keinen Bereich findet, der vom Rest des Projekts völlig unabhängig ist.
Giorgio

2
Die Einstellung des Teams, die Größe des Projekts, die Situation, die Erfahrung der neuen Mitglieder, der aktuelle Stand der Anforderungen usw. sind wichtige Faktoren, die hier zu berücksichtigen sind ...
NoChance

4

Zum Wiederholen verurteilt

Der arme Fred Brooks ist wie Cassandra aus Homers Illiade . Wenn Sie das Buch lesen, aus dem der Film Troy stammt, war sie diejenige, die sich nicht für das (trojanische) Pferd interessierte. Sie sagt die Zukunft genau voraus, aber niemand glaubt ihr, bis die Vorhersage stattgefunden hat und sie es selbst gesehen haben.

Kämpfen Sie nicht gegen Management / passiven Widerstand oder sorgfältige Einstellung?

Mein Rat ist, dass es wahrscheinlich kein guter Tag ist, um zu sterben, und dass Sie es tun sollten, wenn Ihr Manager möchte, dass Sie mehr Personal einstellen. Wenn Sie einige Parameter vorschlagen, z. B. jemanden mit spezifischer Erfahrung und die Verwendung einer schnellen Screen-out-Technik, verdreifacht sich die Suchzeit, und möglicherweise erreichen Sie Ihre Frist, bevor der Disruptor eintrifft.

Wenn Sie die Zeit minimieren, die Sie für unwahrscheinliche Kandidaten aufwenden, sparen Sie viel Zeit. Zum Beispiel wird jeder Lebenslauf ohne Ihre drei wichtigsten Anforderungen im ersten Drittel seines Lebenslaufs geworfen. Die Kandidaten müssen vor Interviews vor Ort einen 30-minütigen Telefonbildschirm durchlaufen und Personalvermittler ignorieren, die Ihre Anforderungen nicht vorab prüfen. Andere Techniken gibt es zuhauf. Stellen Sie sicher, dass alles, was Sie verwenden, effizient und effektiv ist.

Kontrolle der Belastung durch die Integration neuer Mitarbeiter

Wenn Sie die Einstellung vor Ablauf Ihrer Frist vornehmen und sich mit einem neuen Mitarbeiter befassen müssen, planen Sie Zeit von Personen ein, die sich nicht auf dem kritischen Weg befinden, an Schulungen teilzunehmen. Es ist hilfreich, wenn Mitglieder Ihres Teams einen sehen, einen machen, einen zeigen. Wenn Sie ein Teammitglied mit geringer bis mittlerer Erfahrung haben, wird dies das Verständnis Ihrer Prozesse, Tools und der Codebasis verbessern, um einen neuen Mitarbeiter in diesen Bereichen zu betreuen.

Hoffentlich haben Sie einige Unterlagen, daher ist es eine gute kurz- und langfristige Investition, die neue Person mit dem Lesen von Unterlagen zu beauftragen, die ihnen beim Hochfahren helfen. Sie sollten schrittweise in Ihre Prozesse einbezogen werden, und ihre Arbeit sollte von Personen überprüft werden, die sie davon abhalten können, das Projekt mit mutigen, aber schädlichen Änderungen auf den Felsen voranzutreiben.

Beste und schlechteste Aufgaben für Neueinstellungen

Wenn Sie ein separates Projekt oder eine Technologieentwicklung haben, die sich auf die Verwendung in einem zukünftigen Projekt vorbereiten kann, kann dies ebenfalls ein großer Vorteil sein. Das Erlernen Ihres spezifischen Tool-Sets, das Ausführen eigener lokaler Builds, Unit-Tests, Usability-Tests, Dokumentationen und die Teilnahme an Überprüfungen sind hervorragende Kandidatenaufgaben für Neueinstellungen. Ein neuer Mitarbeiter hat möglicherweise eine neue Perspektive und kann wertvolle kritische Kommentare zu Dingen liefern, mit denen Ihr Team gelernt hat, zu leben, und die es nicht mehr sehen kann.

Weniger vorteilhafte Anwendungen für neue Mitarbeiter können Teambesprechungen mit Managern und Nicht-Entwickler-Stakeholdern, Einschätzung, Ermittlung und Management von Anforderungen (sofern sie keine Experten sind, nachdem sie bei einem Wettbewerber gearbeitet haben), Patente und Befragungen neuer Kandidaten oder anderweitige Unterstützung bei der Personalbesetzung sein.

Harmonie im Team bewahren, zukünftige Erwartungen setzen

Neue Einstellungsprioritäten kommen immer noch ins Spiel. Wenn Sie ein Team haben, das die Formung, das Stürmen, das Normieren und die Durchführung der Evolution durchlaufen hat, müssen Sie dem neuen Mitarbeiter Ihre Erwartungen an seine Leistung und die geplanten Verantwortlichkeiten innerhalb des Teams mitteilen. Sie dürfen den Job des neuen Mitarbeiters nicht weniger anspruchsvoll erscheinen lassen als andere Rollen im Team. Wenn Ihr Team aggressiv auf Termine drängt, sollte der neue Mitarbeiter Möglichkeiten haben, zu demonstrieren, dass er aggressiv auf Integration drängt.


1

Ich kenne keinen Standardbegriff für die Verringerung der Erträge aus Arbeitskräften. Da es darum geht, Menschen zu überzeugen, versuchen Sie stattdessen, einen Satz zu drehen:

  • "Grenzen der Zersetzbarkeit" könnten für ein mittelgroßes Projekt besonders relevant sein.
  • "Kommunikations-Overhead-Barriere" erinnert an das klassische Brook-Gesetz für große Projekte.
  • "Die Anforderungen an die Design-Iteration" als ausgefallene Art zu sagen: "Wenn Sie etwas wollen, das kein Mist ist, wird es einige Zeit dauern, bis es auf halbem Weg richtig ist."

0

Ein relativ enger Begriff wäre der "Bereich der Elastizität ": Die Analogie zum Erreichen des Preis-Unelastizitätsbereichs, wenn eine weitere Preissenkung Ihren Umsatz nicht steigert, sollte beim Management eine Glocke läuten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.