Powtórzę zdanie GrandmasterB, mówiąc, że jeśli twoi programiści zostają tylko na 4-9 miesięcy, to problemem nie jest fakt, że ci programiści są poddawani konserwacji. Masz większy problem, a ludzie, którzy odchodzą z Twojej firmy i mówią Ci, że to z powodu prac konserwacyjnych, po prostu próbują pokryć prawdziwy problem. Chociaż nie mogę mówić w imieniu innych, jednym z powodów, dla których mógłbym zrobić coś takiego, byłoby to, że czuję, że gdybym poruszył prawdziwy problem, nie zostałbym wysłuchany. Może coś takiego jak toksyczny menedżer, który jest w firmie od lat i kierownictwo go kocha, ale wszyscy jego bezpośredni podwładni narzekają na niego, ale HR nigdy nic nie robi, ponieważ uważają, że jest świetny i przynosi wyniki. Czy znasz kogoś, kto mógłby pasować do tego opisu w Twojej organizacji? (wskazówka: jeśli nie, to możesz być ty). Możesz przeszukać swoją firmę w Glassdoor i zobaczyć, co ludzie mówią o Twojej firmie; ludzie są bardziej uczciwi, gdy są anonimowi, i możesz znaleźć prawdziwy powód. Przeglądając recenzje Glassdoor, ważne jest, aby zrozumieć, że większość ludzi nie próbuje cię oczerniać, udzielają prawdziwych rad opartych na ich prawdziwych doświadczeniach, a wiele firm przyjmuje obronę, gdy mówi się, że mają problem, podczas gdy powinieneś być introspekcyjny i spróbuj rozwiązać problem.
Oto kolejne pytanie, które może wyjaśnić, w jaki sposób Twoja firma może być prowadzona na poziomie makro: Załóżmy, że dołączam do Twojej firmy. Przekazałeś mnie do projektu na pierwsze 6 miesięcy, potem kończę projekt i zlecasz mi utrzymanie na resztę mojej kadencji w firmie. Następnie chcesz rozpocząć nowy projekt, więc zatrudniasz kogoś innego. Następnie przechodzą na konserwację. Następnie zaczynasz nowy projekt, zatrudniasz kogoś innego i tak dalej. W międzyczasie ja i drugi facet nadal jesteśmy w firmie, jesteśmy zdolnymi programistami, którzy mogliby wykonać projekt, a ty nie wykorzystujesz nas do spełnienia swoich potrzeb projektowych. Pomijając fakt, że sprawia to, że czujemy się bezużyteczni, ponieważ nie wykonujemy „interesującej” pracy nad projektem, oznacza to również, że baza kodu jest bałaganem, ponieważ za każdym razem, gdy robisz nowy projekt, zatrudniasz nowych ludzi, którzy przychodzą do firmy z własnymi standardami, doświadczeniami i stylami. Zwiększa to koszt utrzymania Twojej usługi jako całości, ponieważ oprócz regularnych czynności konserwacyjnych, takich jak jakość danych i selekcja błędów, my (konserwatorzy) musimy również zrozumieć potencjalnie dziesiątki lub setki różnych stylów kodowania od różnych osób, niektóre z nich którzy mogli opuścić firmę po przesłaniu swojego kodu.
Realistycznie nie powinno być „zespołu projektowego” i „zespołu konserwacyjnego”. Powinieneś podzielić swój zespół według obowiązków lub domen, a wtedy każdy programista w każdym zespole jest odpowiedzialny zarówno za nowy rozwój, jak i utrzymanie tego, co jest w jego domenie. Następnie masz liderów zespołów lub menedżerów technicznych, którzy dzielą te zadania między członków swojego zespołu, aby każdy miał przyzwoity udział zarówno w nowych zadaniach związanych z rozwojem, jak i konserwacją.
Kolejną czerwoną flagą dotyczącą Twojej firmy jest to, że w ogóle czujesz potrzebę posiadania „zespołu konserwacyjnego”, tj. zespołu programistów, którzy pełnią służbę konserwacyjną w pełnym wymiarze godzin. To wiele mówi o jakości kodu aplikacji. Błędy na pewno się zdarzają, ale jeśli masz tak wiele błędów, że masz zespół, którego podstawową odpowiedzialnością jest latanie od jednego błędu do drugiego, aby gasić pożary, warto rozważyć przepisanie aplikacji, ponieważ nie jest to przypuszczalne wydarzyć się. Wynika to z zatrudniania złych programistów, a źli programiści to także ludzie, którzy mogą odejść w ciągu 4-9 miesięcy, na przykład „oto mój kiepski kod, teraz to twój problem, do zobaczenia” (nie żeby dobrzy programiści nie mają powodów, , ale źli programiści mają więcej powodów, aby szybko odchodzić). Prawdopodobnie powinieneś również przyjrzeć się pakietowi wynagrodzeń dla swoich pracowników i porównać go ze stawkami rynkowymi, aby sprawdzić, czy może nie przyciągasz talentów. Talent przyciąga więcej talentów; Chciałbym pracować z ludźmi, którzy są mądrzejsi ode mnie, ale jeśli wszyscy inni są mniej wykwalifikowani ode mnie, to nie mam prawdziwego powodu, aby zostać, ponieważ nie uczę się ani nie robię nic ciekawego i ciągle muszę naprawiać innych ludzie to zły kod, ponieważ nikt nie pisze kodu tak dobrego jak mój.
Krótko mówiąc:
1) Prawdopodobnie masz problem w swojej organizacji w postaci kogoś toksycznego w zarządzaniu. Dowiedz się, kto to jest i pozbądź się ich.
2) Prawdopodobnie powinieneś podzielić swoje zespoły na domeny projektowe, a nie utrzymanie kontra projekt, i mieć kierowników zespołów, którzy dzielą zadania związane z projektami i konserwacją, aby utrzymać programiści są zadowoleni.
3) Prawdopodobnie powinieneś podnieść stawki wynagrodzenia, aby przyciągnąć talenty, które potrafią tworzyć lepszy kod, więc musisz wykonywać mniej czynności konserwacyjnych. Możesz także zechcieć porzucić obecną aplikację i całkowicie ją przebudować, gdy będziesz mieć na pokładzie dobry talent, aby zmniejszyć koszty utrzymania.