Warunki pracy a wydajność programistów
W materiałach 8 Międzynarodowej Konferencji na temat Inżynierii Oprogramowania znalazłem ciekawą pracę poświęconą analizie wpływu warunków lokalowych na wydajność pracy programistów. Autorzy, T. DeMarco i T. Lister, zbadali wydajność 166 programistów z kilkunastu instytucji w USA. Badanie polegało na mierzeniu całkowitego czasu potrzebnego na napisanie i uruchomienie dość skomplikowanego programu, wyspecyfikowanego jednakowo dla wszystkich uczestników zawodów, oraz na starannej analizie liczby i rodzaju niedoskonałości, które pozostały w “chodzących” programach.
Uczestnicy eksperymentu — zawodowi programiści — mieli zupełną swobodę wyboru języka programowania. Oto jak wygląda statystyka wybranych języków (w procentach:): Cobol — 41,6, Pascal — 19,3, Fortran — 12,0, język C — 9,6, PL/I — 4,8, Bal — 3,6, inne — 9,0.
Pod względem szybkości pracy wyniki były zgodne z oczekiwaniami: stosunek najwolniejszego do najszybszego wyniósł 5,6:1. Ciekawa była jednak już korelacja między szybkością i jakością pracy: w programach napisanych przez 25% najszybszych programistów było 0 30% mniej niedoskonałości niż w programach napisanych przez 25% najwolniejszych (ogon, pod obydwoma względami, stanowili źli programiści Cobolowi; ich udział w czołówkach był natomiast zgodny z udziałem procentowym w próbce).
Najciekawsze były wyniki charakteryzujące wpływ warunków lokalowych na jakość pracy programistów, przytoczone w tabelce. Pierwsza z trzech kolumn liczbowych dotyczy najlepszej ćwiartki (tj. programistów najlepszych pod obydwoma względami, szybkości i dokładności pracy), druga — najgorszej ćwiartki, trzecia zaś obrazuje wyniki średnie dla całej badanej próbki. Oprócz pierwszego wiersza wszystkie dane liczbowe charakteryzują udział procentowy odpowiedzi twierdzących na pytania z pierwszej rubryki.
Powierzchnia pomieszczenia przypadająca na jednego programistę (w m2)
|
7,8
|
4,6
|
6,3
|
Czy masz znośnie cicho w miejscu pracy?
|
57
|
29
|
42
|
Czy możesz się odizolować od postronnych zakłóceń?
|
62
|
19
|
39
|
Czy możesz wyłączyć telefon na biurku?
|
52
|
13
|
29
|
Czy możesz zlecić przyjmowanie telefonów komuś innemu?
|
76
|
19
|
57
|
Czy często ktoś ci przerywa pracę?
|
38
|
76
|
62
|
Czy uważasz, że warunki lokalowe, w których pracujesz, są zgodne z twymi oczekiwaniami?
|
57
|
29
|
45
|
Jak widać, związek warunków lokalowych pracy z jej wydajnością jest niezwykle wyraźny. Można jednak przypuszczać, że pracodawcy stwarzają lepsze warunki lepszym programistom, i stąd bierze się korelacja wyrażona tabelką. Aby sprawdzić tę hipotezę, w jednej instytucji, zatrudniającej 24 programistów, wylosowano 6 z nich i przeniesiono do specjalnie przygotowanych, obszernych i wyciszonych pomieszczeń, pozostawiając pozostałych 18 na starych miejscach. Po pewnym czasie zbadano jakość pracy obydwu grup, posługując się podobnym co poprzednio testem; okazało się, że grupa pracująca w lepszych warunkach miała wyniki o 40% lepsze niż grupa pozostawiona na miejscu.
Krótko powiedziawszy, jedną z najprostszych metod poprawienia jakości pracy programistów jest stworzenie im lepszych warunków lokalowych! (Dodajmy, że nie należy przesadzać — amerykańskim badaczom nie przyszło do głowy sprawdzić, jak na jakość pracy programistów wpływa np. brak telefonu albo przymusowa izolacja.)
WMT