Czy to słuszne, aby zarząd nadał większe znaczenie lub nagradzał programistów, którzy pracowali nad strategiczną i ważną aplikacją, niż ktoś, kto pracował nad aplikacją ogólną?
Oba mogły włożyć te same wysiłki.
Czy to słuszne, aby zarząd nadał większe znaczenie lub nagradzał programistów, którzy pracowali nad strategiczną i ważną aplikacją, niż ktoś, kto pracował nad aplikacją ogólną?
Oba mogły włożyć te same wysiłki.
Odpowiedzi:
Po pierwsze, bardziej wartościowy nie zawsze oznacza trudniejszy. Na przykład: programowanie wewnętrznych narzędzi może być bardzo przydatne i oszczędzać czas dla personelu, ale wartość dla klientów nie zawsze jest widoczna. Wynagrodzenie powinno być nagradzane za trudność projektu i odpowiedzialność osoby w zespole.
Jeśli nagradzasz drużyny inaczej, powinien istnieć jeden warunek: ludzie powinni mieć możliwość zmiany zespołów, kiedy chcą . Pozwól tym, którzy lubią tworzyć trudniejsze aplikacje, zarobić nieco więcej. Ci, którzy wolą pracę bez stresu, mogą wykonywać łatwiejsze aplikacje. W ten sposób wszyscy są szczęśliwi.
Blokowanie ludzi w zespołach, w których jeden zespół zarabia znacznie więcej, doprowadzi do frustracji i może spowodować, że ludzie odejdą z firmy.
Menedżerowie mogą wdrażać programistów w oparciu o maksymalizację zwrotu z nakładów pracy. Dlatego w przeciwnym razie równi pracownicy powinni być równo wynagradzani.
Menedżer, który wdraża programistę do zadania o niskiej wartości, gdy trzeba wykonać pracę o wysokiej wartości, jest rażąco niekompetentny z perspektywy biznesowej, a programista nie powinien być karany (ani nagradzany) za słabą wydajność swojego menedżera.
Po pierwsze, co należy rozumieć przez „poprawny”. Jeśli pytanie brzmi, czy moralnie uzasadnione jest płacenie ludziom za ważniejszy projekt, myślę, że tak. Zarabiasz na podstawie osiąganych korzyści, a nie na podstawie naliczonych kosztów. Jeśli jeden programista spędza dwa miesiące na wytwarzaniu czegoś całkowicie bezużytecznego, podczas gdy drugi spędza dwa dni na wytwarzaniu czegoś, co podwaja produktywność, drugi powinien otrzymać więcej, pomimo mniejszego wysiłku.
Z tej perspektywy strategiczne i ważne zastosowanie jest po prostu bardziej wartościowe dla firmy, a pracujący nad nią pracownicy wytwarzają dla firmy większą wartość. Jedynym naturalnym rezultatem jest to, że zarobią więcej pieniędzy.
Z drugiej strony, jeśli pytanie brzmi, czy jest to dobra strategia, to prawdopodobnie nie. Automatyczne płacenie ludziom za ważniejszy projekt może wprowadzić przewrotne zachęty. Ludzie będą próbowali dostać się do ważniejszych projektów, gdy będzie im potrzebna praca przy innych projektach. W rezultacie prawdopodobnie lepiej jest płacić ludziom na podstawie umiejętności niż na podstawie projektu. Jak się uda, zapewne będziesz mieć wysoko wykwalifikowanych, a przez to wysoko opłacanych ludzi, którzy będą pracować przy najważniejszych projektach. Ale prawdopodobnie możesz uniknąć problematycznych zachęt.
Tak, najprawdopodobniej. Myślę, że największym powodem nagradzania programistów jest powstrzymanie ich przed przeniesieniem się do innej firmy.
Jeśli masz trzech programistów, którzy utrzymują bardzo ważny system i dwudziestu programistów, którzy utrzymują inny system, prawdopodobnie będziesz bardziej martwił się utrzymaniem trzech programistów, ponieważ utrata jednego z dwudziestu nie jest tak wielkim hitem. Rozsądne może być przeznaczenie większej ilości zasobów na zadowolenie trzech programistów, jeśli nie możesz pozwolić sobie na zadowolenie ich wszystkich.
Nie sądzę, aby istniała taka sprawiedliwość jak „równa płaca za równą wydajność pracy”. To tylko przydatny mit znaleziony w wielu społeczeństwach. Nie wiem, czy twoje pytanie dotyczy przepisów, które mogą istnieć w niektórych krajach, czy też chcesz postawić pytanie etyczne. Tak czy inaczej nie wiedziałbym, jak mierzyć lub egzekwować równość. Czy taksówkarz występuje o wiele mniej niż gwiazda futbolu, którego zarobki mogą być wyższe o kilka wymiarów?
Płatności mogą zależeć od tego, jak dobre były negocjacje, gdy programista zmienił firmę, lub jaka była sytuacja rynkowa, kiedy zaczęło się jego zatrudnienie, więc wątpię, że w pobliżu jest wiele firm, które i tak płacą swoim programistom.
To trudne pytanie, ale na ogólną odpowiedzialność zwykle uznaje kierownictwo. Wynagrodzenie menedżerów zależy od odpowiedzialności, którą on / on ma i myślę, że dotyczy to również programistów.
Jeśli programista Hanna obsługuje krytyczne oprogramowanie (National Security System), podejmuje większe ryzyko, jeśli coś pójdzie nie tak, jak programista Jill, który obsługuje aplikację do gier na iPhone'a. W tym przykładzie Hanna powinna zostać nagrodzona bardziej niż Jill, jeśli wszystkie inne aspekty są równe.
Lepszym programistom płacisz więcej pieniędzy, niezależnie od rentowności projektu. Jakie kryteria zastosujesz do zdefiniowania „lepszego”, to kolejne pytanie.
Nie sądzę, że wszyscy bardziej wykwalifikowani programiści powinni należeć do jednego zespołu, więc kto zostanie zdegradowany do nowego produktu, który jeszcze nie zarabia pieniędzy. Dwaj równi programiści z pierwszego roku otrzymają teraz inną rekompensatę z powodu losowania, aby dostać się do dochodowego zespołu. Wchodzisz w system wynagrodzeń za zasługi w oparciu o rzeczy, nad którymi nie masz kontroli. Polityka biurowa wejdzie w grę i utrudni moralność.
Staje się to kolejnym systemem, w który grają gracze, podobnie jak linie kodu. Lepszy menedżer będzie działał politycznie na rzecz większej nagrody. Wyobraź sobie, że jesteś programistą w Microsoft przy nowym produkcie, który się nie kończy, ale nie zarabiasz tyle, ile zyskowny zespół (ponieważ ich aplikacja ma lata marketingu), który dokonał złej premiery i nie prognozował sprzedaży . Nie nagradzasz drużyny, która zatankowała flagowy produkt.
Przypływ podnosi wszystkie statki.
Dziwi mnie, jak wiele osób po prostu zakłada, że osoba pracująca nad aplikacją strategiczną lub generującą zysk musi być bardziej wykwalifikowana do tego projektu niż osoba pracująca nad aplikacją niskiego ryzyka. Ludzie tutaj zakładają również, że ten drugi programista bierze udział w ogólnym projekcie.
Wszystkie pozostałe rzeczy są równe, a zakładając, że oba mogą być zmieniane z jednego projektu na drugi przy takim samym czasie doganiania, oznacza, że obie powinny być nagradzane tak samo za ten sam wysiłek.
Programiści powinni robić najtrudniejsze programy, z którymi mogą sobie poradzić, i powinni otrzymywać wynagrodzenie w zależności od trudności tego zadania. W (prawie) wszystkich aplikacjach są części łatwe i części twarde. Ludzie, którzy nie potrafią programować, nie powinni być nagradzani, ponieważ pracowali nad naprawdę łatwą częścią bardzo ważnej aplikacji. Podobnie, nawet jeśli projekt nie jest ważny, jeśli jakiś naprawdę dobry programista wykonał ciężką pracę nad nim, należy go odpowiednio wynagrodzić. Jeśli projekt nie jest wystarczająco ważny, aby zapłacić deweloperom odpowiednią kwotę za projekt, być może firma nie powinna go realizować. Być może istnieje tańszy sposób na wykonanie tej samej pracy, na przykład przy użyciu istniejącej biblioteki (licencja open source lub płatna licencja) lub zakup istniejącego pakietu oprogramowania.