Najlepsza odpowiedź
Zależy to od definicji używanych w Twojej organizacji. Najlepiej poszukać ich w dowolnej formie, w jakiej zostały opublikowane przez dział HR. Jeśli nie możesz ich znaleźć, czas zacząć nad nimi pracować.
Tam, gdzie byłem, zwrot brzmiał „Zakres i wpływ”. „Zakres” dotyczył tego, jak dużą część projektu byłeś odpowiedzialny. „Wpływ” dotyczył efektywności pracy z osobami i grupami spoza standardowej hierarchii deweloperów. W zależności od pełnionej roli możesz zgłaszać się do innych osób lub nie. „Rola” została zdefiniowana oddzielnie. Na przykład Principal był poziomem; Architekt był rolą.
Na poziomie głównym miałeś obowiązki na poziomie produktu. Pracowałeś od najniższego poziomu systemu do poziomu produktu. Zapomniałem o wielu, ale jeśli chodzi o zakres, byłeś odpowiedzialny za co najmniej większą część lub być może wiele części produktu w wielu, wieloletnich cyklach wydawania. Oczekiwano, że znasz wszystkie części systemu, za które jesteś odpowiedzialny, aż do poziomu kodu, lub będziesz w stanie szybko je odebrać w razie potrzeby. Możesz nie robić codziennego kodowania, ale możesz szybko przejść w dowolnym miejscu wymaganym do kodowania i debugowania. Potrzebowałeś doskonałych umiejętności technicznych i komunikacyjnych. Nadal byłeś mentorem dla programistów od poziomu podstawowego do wyższego, formalnie lub nieformalnie. Miałeś szeroką wiedzę techniczną na temat całego produktu poza swoim zakresem odpowiedzialności. Możesz uwolnić innych. Możesz dostrzec potencjalne problemy i działać proaktywnie, aby nie stały się problemami.
Jeśli chodzi o wpływ, pracowałeś z kierownictwem wyższego szczebla i innymi dyscyplinami, aby pomóc w sformułowaniu, a następnie wykonaniu planów produktu. W zależności od poziomu i produktu współpracowałeś również z innymi zespołami ds. Produktów, aby koordynować techniczne aspekty funkcji i wersji.
Odpowiedź
Główny inżynier oprogramowania dostarcza duże, złożone oprogramowanie, samodzielnie kieruje zgodnie z do celów biznesowych, działa w grupach, poprawia produktywność zespołu i ma wpływ przynajmniej na poziom działu. Ich projekty są zwykle zbyt duże dla jednego 10-osobowego zespołu. Ich cele są bardziej ogólne, jak „poprawienie przepływu gotówki” lub „skala 100–1000X”.
Architekt jest odpowiedzialny za projektowanie oprogramowania na wysokim poziomie. Zwykle jest to rola, a nie tytuł i poziom – drabiny inżynierskie w Amazon, Microsoft i Google nie używają tego terminu. Tytuł ma negatywne konotacje, ponieważ niektórzy są bardziej biegli w pisaniu dokumentów technicznych niż w projektowaniu oprogramowania. Termin oznacza jedną osobę, podczas gdy architektura we współczesnych projektach jest zwykle projektowana wspólnie.
Starszy inżynier oprogramowania może obsługiwać średnio złożone projekty bez pomocy. Tytuł nie jest bardzo starszy i wymaga około 5-7 lat doświadczenia. Większość inżynierów pozostaje na tym poziomie i cieszy się ich pracą przez dziesięciolecia.
Zwykle wychodząc poza starszego inżyniera, spędzasz mniej czasu na pisaniu kodu, a więcej na robieniu różnych rzeczy, takich jak ulepszanie procesu, nadzór architektoniczny, mentoring nowszych inżynierów i kontakt z inne jednostki biznesowe.
W niektórych firmach występuje inflacja tytułów, w przypadku których inżynierowie z 7-letnim doświadczeniem wykonują taką samą pracę za takie samo wynagrodzenie, jak starsi inżynierowie w innych miejscach, ale mają tytuły głównego inżyniera.
Większe firmy potrzebują dodatkowych poziomów ze względu na rozmiar. Wybitny inżynier w Google, mający wpływ na całą firmę, zajmuje się znacznie większą liczbą produktów o przychodach 20 miliardów USD / kwartał niż jeden w startupie, który zwraca 20 milionów USD rocznie. Różnice między najwyższymi poziomami a starszymi inżynierami rosną wraz z wielkością firmy.
Bez inflacji tytułów główni inżynierowie są jak dyrektorzy pod względem wpływu, autonomii, tego, komu odpowiadają i wynagrodzenia. Wybitni Inżynierowie są jak Wiceprezydenci.