Temat: Efektywność programisty
Witam
Ciekawe szkolenie, bardzo istotny temat i często pomijany!
Mariusz S.:
1) Programiści szczególnie często pracują w TRANSIE.
I świetnie, bo dzięki temu są w stanie ogarnąć, to co tworzą! Jednak zbyt długa praca w takim stanie powoduje, że programista traci obiektywizm. W efekcie, łatwo "zawiesza się" na błędzie, krąży wokół problemu przez wiele godzin, nie mogąc znaleźć rozwiązania
To jest charakterystyczne ale tylko dla bardzo początkujących programistów.
2) Programiści NIE ORGANIZUJĄ swojej pracy
Doświadczam tego podczas wielu szkoleń i realizowanych projektów - duża część programistów jest niezorganizowana. Nie planuje. Działa bardzo chaotycznie. Tworzy tymczasowe rozwiązania. W praktyce oznacza to, że stworzony kod jest dużo bardziej skomplikowany niż mógłby być.
Programowanie to kreatywność, a taką rzecz ciężko zorganizować. To, co niezbędne z punktu ORGANIZACJI czy PLANOWANIA PROJEKTOWEGO powinno być w gestii Project Leadera lub Project Managera i/lub projektu systemu i/lub konwencji w nim stosowanych.
3) Programiści są nastawieni na SZCZEGÓŁ
Tylko dlatego są w stanie napisać program! Jednak duża część programistów nie potrafi przełączyć się na widok ogólny (spojrzenie z lotu ptaka). A tylko wtedy są w stanie bardziej obiektywnie spojrzeć na to, co robią i znaleźć luki w swoim rozumowaniu, skupionym na szczególe.
I nigdy tak nie będzie! Nie każdy ma zdolności widzenia z lotu ptaka tak jak nie każdy będzie mógł zarządzać ludźmi. To kwestia predyspozycji. W projekcie potrzebni są ludzie skupiający się na detalach jak i tacy dostarczający "kleju" dla poszczególnych części budowanego systemu (patrząc na niego z wysokości).
==================================
Efektywność programisty w liczbach
==================================
A teraz pomyśl ... jeśli zmienisz swoje nawyki (lub nawyki swoich programistów) i dzięki temu zyskasz średnio 5 minut w ciągu godziny. W ciągu dnia - zyskasz 40 minut. W ciągu tygodnia prawie 3,5 godziny ... w ciągu roku … ok. 21 dni!
Pięknie to wygląda, tylko w żaden sposób nie przekłada się to na efektywność programisty rozumianą jako szybkość i jakość tworzonego kodu. To tak, jakby twierdzić, że zwiększenie czasu pracy programiście z 8 do 10 godzin przyspieszy projekt o 25%, a to oczywista nieprawda.
Każdy PM wie, że programista pracuje bardzo efektywnie przez 3 godziny dziennie (najlepiej od 8:30 do 11:30), a jego wydajność spada drastycznie już po 6 godzinach przed klawiaturą. Po 9ciu godzinach jest ona efektywnie równa zeru, tzn. że gdyby poszedł do domu po 8miu godzinach i wrócił na drugi dzień to w skali szerszego spojrzenia na projekt nie będzie widać żadnej różnicy szybkości (a tylko za nadgodziny zapłacimy i później będziemy poprawiać niezłe krzaki w kodzie).
Programowanie to nie czynność mechaniczna tylko kreatywna i jako taka nie liczy się z prostą matematyką typu 5min+5min. Programowanie to myślenie, a mózg działa inaczej niż "łopata" ;-)
Najnowsze badania z USA (wiem, tam udowodnili już wszystko ;) ) mówią nawet o tym, że na każdą godzinę programowania pracownik powinien zrobić sobie 15 minut przerwy. Wtedy jest najbardziej efektywny. To daje zaledwie 6.5h na programowanie!
Mam nadzieję, że moje uwagi pomogą w lepszym dopasowaniu szkoleń :)