Zaczęło się od dev skończy się na dev – o podziale roli w IT

Wstęp
Felieton opisuje podział ról w IT od czasów, gdy byli tylko programiści, przez etapy przejściowe do obecnego podziału i próby analizy co może wpłynąć na powrót do stanu, w którym zostaną sami developerzy. Felieton traktuje temat czysto subiektywne i jest opinią na dany temat.
Najpierw byli programiści
Najpierw byli programiści, którzy po prostu robili swoją robotę. Zajmowali się po prostu programowaniem, od rozmowy z klientem, przez pisanie kodu, testowanie, instalacje na środowisku produkcyjnym i utrzymanie. Miało to miejsce do czasu, aż sami programiści spędzali za dużo czasu nad utrzymywaniem swoich aplikacji.
Później programiści nie chcieli administrować serwerami więc wydzielono adminów
Programiści dalej pisali kod i tworzyli aplikacje. Zadania związane z utrzymaniem infrastruktury produkcyjnej oraz testowej wydzielono na adminów. Zadanie te to utrzymanie fizycznej infrastruktury (wymiana uszkodzonych podzespołów, problemy z siecią), instalacja i utrzymanie systemów operacyjnych na serwerach, później środowisk wirtualizacji oraz zakładanie indeksów w bazie danych. Taki podział w przypadku większych projektów się jednak nie sprawdził i wymagane było wydzielenie innych ról. Bardziej zaawansowani administratorzy tworzyli skrypty konfiguracyjne, a nie tylko instalowali i konfiguracji infrastrukturę „z palca”.
Większe projekty to więcej ról – Dev, Test, QA, DB, SysOps
Coraz większe aplikacje monolityczne, od których coraz więcej było zależne wymagały separacji środowisk i osób odpowiedzialnych za ich utrzymanie. Wydzielono testerów odpowiedzialnych za testowanie automatyczne i manualne, QA (quality assurance) odpowiedzialnego za jakość, administratora baz danych odpowiedzialnego tylko za system baz danych oraz SysOps’a wdrażającego aplikacje. Rola programisty została podzielona na frontend oraz backdev developera. Pomiędzy programistą, a biznesem pojawił się analityk biznesowy „tłumaczący” możliwości techniczne biznesowi oraz wyszukujący szanse wykorzystania oprogramowania. Podział ten może znacząco się różnić w zależności od organizacji i dotyczy zazwyczaj aplikacji biznesowych.
Większa skala i mikroserwisy – Dev, Ops i Architekci
W momencie, którym aplikacje monolityczne były niewystarczające względem skalowalności nastąpiło przejście na architekturę mikroserwisów. W takim przypadku zmieja się podział ról, testowanie oraz QA przejmują developerzy biorąc odpowiedzialność za pisany kod. Nie ma już podziału na frontend i backend, gdyż każdy developer jest fullstackiem. DevOps i bazodanowcy już nie zajmują się tylko wdrożeniami, gdyż proces wdrażania jest zautomatyzowany. Polega on na pisaniu kodu i automatów. Od developerów oczekuje się bycia doradcą biznesowym, a nie tylko osobą wytwarzającą kod z pominięciem analityka biznesowego.
Wszyscy i tak będą programistami, znowu.
Oprogramowanie (może) będzie nadal kodem, infrastruktura także będzie kodem (intrastructore as a code). W projektach z architektem lub teamem architektów sprowadzi się to do kontroli kodu w małych projetkach gdzie jest możliwe lub wydawania zaleceń i budowania ogólne architektury aplikacji. Grupa będzie musiała mieć kontakt z kodem produkcyjnym, mimo trochę innych zadań. W przypadku wdrożeń kilka razy dziennie przy dużych systemach nie ma innej drogi.
Podsumowanie
Historia w temacie podziału ról zatoczy koło, gdyż wszystko na samym końcu i tak będzie kodem. Obecny sztuczny podział ról zostanie zastąpiony developerami różnego typu, który będą programowali proces wdrażania, testowania oraz monitoringu tworzonego oprogramowania. Historia zatoczy koło, gdzie na samym początku byli devloperzy i na końcu też będą developerzy. Obok tego będą istniały wszystkie inne wcześniej wymienione modele, gdyż w niektórych typach organizacji zmiany zachodzą bardzo wolno lub wcale co jest następstwem dobrego dostosowania obecnych procesów do potrzeb biznesowych.