Szukasz kursu specjalistycznego z BHP, SEP lub kursu na wózki widłowe? Kurs edukacyjny!

SACKMAN, ERIKSON I GRANT

Na zebraniach towarzystw komputerowych wciąż słyszymy wypowiedzi młodych szefów, że wolą pracować z małym, bystrym zespołem składającym się ze wspaniałych ludzi niż z setkami programistów, zapewne przeciętnych. Wszyscy to wolimy.

W tym naiwnym stwierdzeniu nie ma jednak słowa o najważniejszym problemie, a mianowicie, jak budować duże systemy zgodnie z sensownym harmonogramem? Zajmijmy się bardziej szczegółowo tym zagadnieniem.

Szefowie zespołów pracujących nad oprogramowaniem od dawna zdawali sobie sprawę z występowania dużych różnic między wydajnością dobrych i słabych programistów. Jednakże wyniki konkretnych pomiarów zdumiały nas wszystkich. W jednym z takich badań Sack- man, Erikson i Grant mierzyli wydajność w grupie doświadczonych programistów. Tylko w tej jednej grupie stosunek najwyższej wydajności do najniższej wynosił w przybliżeniu 10:1 według miar wydajności i – co zdumiewające – 5:1 według miar szybkości i objętości programu! Krótko mówiąc, programista otrzymujący 20 000 USD rocznie może być nawet dziesięciokrotnie wydajniejszy niż ten, który zarabia 10 000 USD rocznie. Może też występować sytuaqa odwrotna. Z danych nie wynikała żadna korelacja między doświadczeniem a wydajnością. (Mam wątpliwości co do powszechności tego zjawiska).

Mówiłem wcześniej, że sama liczba umysłów, których działania trzeba koordynować, wpływa na koszty pracy, bo znaczną ich część stanowi komunikowanie się i poprawianie skutków błędnej komunikacji (weryfikacja systemu). Z tego także wynika, że jest pożądane, aby nad systemem pracowało możliwie mało umysłów. W istocie doświadczenia z budowaniem wielkich systemów oprogramowania wskazują, że prace wykonywane na siłę, z wykorzystaniem wielu ludzi są kosztowne, zajmują dużo czasu, są nieefektywne i prowadzą do powstania produktu, któremu brakuje koncepcyjnej jednorodności. Listę takich produktów można ciągnąć w nieskończoność: OS/360, Exec 8, Scope 600, Multics, TSS, Sage itd.

Wniosek jest prosty: jeśli nad danym projektem pracuje 200 ludzi, a kierownikami jest 25 najbardziej kompetentnych i doświadczonych programistów, to należy zwolnić 175 pracowników i posadzić kierowników do programowania.

Podobne Artykuły

Zostaw odpowiedź

Twoj adres e-mail nie bedzie opublikowany.