Zmniejszający się zwrot z dodatkowych programistów

10

Czy istnieje termin opisujący moment, w którym dodanie większej liczby programistów do projektu oprogramowania zapewni malejące zyski?

Zdaję sobie sprawę, że na wysokim poziomie bardziej skomplikowane jest to, że tylko kilku programistów, u których projekt będzie produktywny (dawny / stan projektu, jakość dodanego programisty), ale staram się wymyślić sposób na powiązanie tego z zarządzaniem nietechnicznym poprzez powtarzanie. Zasadniczo szukam terminu, który przywołuje silny obraz mentalny, taki jak „prędkość końcowa”, z wyjątkiem Prawa Brook'a .

smp7d
źródło
2
Uważam, że punkt ten nazywa się „teraz”. Poważnie, powinieneś pokazać im wykres, wykreślając moment, w którym dodaje się jednego / pięciu / dziesięciu nowych programistów i wpływ, jaki ma to na oś czasu projektu (biorąc pod uwagę spadek wydajności z powodu mentoringu istniejących członków, nowych błędów członków i przeróbek itp.) )
Oded,
14
„Dziewięć kobiet rodzących dziecko w ciągu jednego miesiąca” to powszechna analogia stosowana w celu wyjaśnienia kwestii zarządzania zasobami a harmonogramem.
dasblinkenlight
2
@dasblinkenlight - „Ale co, jeśli kobiety pracują na zmiany?” (typowa nietechniczna odpowiedź kierownictwa).
jfrankcarr
6
but senior management tends to view it as aggressively negativeProgram kadry kierowniczej wyższego szczebla w twoim przypadku jest prawdopodobnie dwojaki: zmniejszyć dane o zakończeniu projektu w jakikolwiek możliwy sposób i kontrolować deweloperów. Wszelkie poglądy, które są sprzeczne z ich z góry przyjętymi pojęciami, będą postrzegane jako negatywne i zależą od tego, jak agresywnie spróbujesz je „przekonać”, w przeciwnym razie oznaczy cię tylko jako „nie gracza zespołowego” Np. Kierownictwo mówi za kogoś, kogo nie da się kontrolować.
wałek klonowy
1
Czy martwisz się (nimi?) - harmonogramem, ryzykiem lub $, lub ich kombinacją. Dowiedz się, co ich najbardziej niepokoi, i dowiedz się, dlaczego więcej programistów nie naprawi tego problemu (i poważnie, zaproponuj alternatywne rozwiązanie). Często jest to bardziej subtelne niż zwykłe pieniądze lub harmonogramy.
mattnz

Odpowiedzi:

7

Twoje pytanie zawiera odpowiedź: punkt malejących zysków. Jest to punkt, w którym dodanie większej ilości zasobów kosztuje więcej niż efekt produkcyjny tych zasobów. To podstawowa koncepcja ekonomiczna, dlatego od kierownictwa oczekuje się, że będzie to wiedzieć na pamięć ...

miraculixx
źródło
3
To, co opisaliście, jest tym, co ekonomiści nazywają punktem ujemnych zwrotów - gdzie dodanie zasobów sprawia, że ​​czujesz się gorzej. Punktem malejących zwrotów jest to, że dodanie większej ilości zasobów nadal zwiększa produkcję, ale o mniejszą kwotę. Więc dodanie zasobów pozostawia ci trochę więcej, ale mniej, niż możesz się spodziewać.
MarkJ
@MarkJ Dobra uwaga. Chyba niekoniecznie szukam z reguły malejących lub ujemnych zwrotów. Po prostu szukam punktu, w którym główny programista / kierownik projektu powiedziałby „nie” więcej zasobów. Niestety nie zawsze jest to wycinane i suszone.
smp7d
6

Dodanie siły roboczej do późnego projektu oprogramowania sprawia, że ​​staje się to później. Miesiąc roboczy jest koncepcją jednostki pracy proporcjonalnej do liczby osób pracujących pomnożonej przez czas pracy; prawo Brooka mówi, że ta relacja jest mitem, i jest zatem centralnym punktem książki. ”- Źródło: Wiki-Mythical_Man_Month .

Bez szans
źródło
1
„Mój kumpel golfowy, który również zarządza firmą konsultingową w dziedzinie IT, mówi, że ma dwóch programistów„ czarnego pasa ”, którzy są teraz dostępni. Obaj mają stopnie magistra informatyki. Powinieneś być w stanie sprowadzić ich bez problemu , prawda? Może dowiesz się, jak lepiej zaplanować swój czas. ”
jfrankcarr
1
@kevincline - „Widzę, że nie jesteś graczem zespołowym. Ponownie przydzielam cię do utrzymania naszej 14-letniej aplikacji VB6. Oto kopia Who Moved My Cheese? do przeczytania”.
jfrankcarr
3
„Widzę, że nie jesteś graczem zespołowym.”: Też miałem ten komentarz. Moja odpowiedź to porównanie z piłką nożną: dobra drużyna nie próbuje się wcisnąć na 5 metrów kwadratowych, ale próbuje zająć całe boisko, aby każdy gracz mógł być bardziej skuteczny; a gracze często oddają piłkę tam i z powrotem w razie potrzeby. Praca w zespole oznacza, że ​​członkowie zespołu koordynują swoje działania, ale pracują nad niezależnymi, nie pokrywającymi się obszarami projektu. Jeśli to możliwe, możesz dodać więcej programistów i zwiększyć wydajność.
Giorgio
1
@kevin cline: Może to jest powód, dla którego w końcu dodawanie nowych programistów do zespołu staje się bezużyteczne. Prawdopodobnie należy przestać dodawać nowych programistów, jeśli nie można znaleźć obszaru całkowicie niezależnego od reszty projektu.
Giorgio
2
Postawa zespołu, wielkość projektu, jak dobra jest sytuacja, doświadczenie nowych członków, obecny stan wymagań itp. To wszystkie ważne czynniki, które należy wziąć pod uwagę tutaj ...
NoChance
4

Skazany na powtórzenie

Biedny Fred Brooks jest jak Cassandra z Illiada Homera . Jeśli czytasz książkę, z której pochodzi film Troy, to ona nie dbała o konia (trojańskiego). Dokładnie przepowiada przyszłość, ale nikt jej nie wierzy, dopóki nie nastąpi przepowiednia i sami ją zobaczą.

Czy nie walczysz z zarządzaniem / oporem pasywnym lub starannym zatrudnieniem?

Moja rada jest taka, że ​​prawdopodobnie nie jest to dobry dzień na śmierć i że jeśli twój menedżer chce, abyś zatrudnił więcej pracowników, zrób to. Sugerowanie niektórych parametrów, takich jak zdobycie kogoś z konkretnym doświadczeniem i zastosowanie techniki szybkiego ekranowania, potroi czas wyszukiwania i być może dotrzesz do terminu przed przybyciem zakłócającego.

Minimalizowanie czasu spędzanego na mało prawdopodobnych kandydatach pozwoli zaoszczędzić mnóstwo czasu. Na przykład każde CV bez trzech najważniejszych wymagań w pierwszej 1/3 jego CV zostanie odrzucone, kandydaci muszą przejść 30-minutowy ekran telefonu przed rozmowami na miejscu, ignorując osoby rekrutujące, które nie przeprowadzają wstępnej selekcji zgodnie z Twoimi potrzebami. Istnieje wiele innych technik, upewnij się, że wszystko, czego używasz, jest wydajne i skuteczne.

Kontrolowanie ciężaru integracji nowych pracowników

Jeśli zatrudnisz się przed upływem terminu i potrzebujesz poradzić sobie z nowym pracownikiem, budżetuj czas od osób, które nie znajdują się na krytycznej ścieżce, aby wziąć udział w szkoleniu. Pomocne jest, aby członkowie twojego zespołu widzieli jeden, zrób jeden, pokaż jeden. Jeśli masz członka zespołu o niskim lub średnim doświadczeniu, zwiększy to jego zrozumienie twoich procesów, zestawu narzędzi i bazy kodu, aby mentorować nowe zatrudnienie w tych obszarach.

Mamy nadzieję, że masz trochę dokumentacji, więc przydzielenie nowej osoby do przeczytania dokumentacji, która pomoże jej w rozwoju, jest dobrą inwestycją krótko- i długoterminową. Powinny one być stopniowo wprowadzane do twoich procesów, a ich praca powinna być weryfikowana przez ludzi, którzy mogą powstrzymać ich przed prowadzeniem projektu na skałach za pomocą odważnych, ale szkodliwych zmian.

Najlepsze i najgorsze zadania dla nowych pracowników

Jeśli masz osobny projekt lub jakiś rozwój technologii, mogą zrobić, aby przygotować się do jego wykorzystania w przyszłym projekcie, co również może być dużą korzyścią. Uczenie się określonego zestawu narzędzi, wykonywanie własnych lokalnych kompilacji, testowanie jednostek, testowanie użyteczności, dokumentacja i udział w przeglądach to świetne zadania dla nowych pracowników. Nowy pracownik może mieć nową perspektywę i może zawierać cenne komentarze krytyczne na temat tego, z czym Twój zespół nauczył się żyć i czego już nie widzi.

Mniej korzystne zastosowania dla nowego personelu mogą obejmować spotkania zespołu z menedżerami i interesariuszami niebędącymi programistami, szacunki, wymagania i zarządzanie wymaganiami (chyba że są ekspertami po pracy u konkurenta), patenty i rozmowy z nowymi kandydatami lub w inny sposób pomagać w rekrutacji personelu.

Utrzymywanie harmonii w zespole, wyznaczanie przyszłych oczekiwań

Nadal obowiązują nowe priorytety dotyczące wynajmu. Jeśli masz zespół, który przeszedł formowanie, szturmowanie, normowanie, ewolucję, musisz dać nowemu pracownikowi swoje oczekiwania dotyczące jego wydajności i planowanych obowiązków w zespole. Nie możesz sprawić, by praca nowego pracownika wydawała się mniej wymagająca niż inne role w zespole. Jeśli Twój zespół agresywnie dąży do terminów, nowy pracownik powinien mieć sposoby wykazania, że ​​agresywnie dąży do integracji.

DeveloperDon
źródło
1

Nie znam standardowego terminu zmniejszania zwrotu siły roboczej; ponieważ celem jest przekonanie ludzi, spróbuj zamienić frazę:

  • „limity rozkładu” mogą być szczególnie istotne w przypadku średnich projektów.
  • „bariera komunikacyjna” przywołuje klasyczne prawo Brook'a dla dużych projektów.
  • „wymagania dotyczące iteracji projektu” jako fantazyjny sposób powiedzenia „jeśli chcesz czegoś, co nie jest gównem, zajmie to trochę czasu, aby zrobić to w połowie dobrze”.
nadchodząca burza
źródło
0

Racjonalnie zbliżonym terminem byłby „zakres elastyczności ”: analogia do uderzenia w region nieelastyczności cen, gdy dalsze obniżanie ceny nie zwiększa sprzedaży, powinna zadzwonić do kierownictwa.

dasblinkenlight
źródło