środa, października 02, 2019

Moja teoria firm IT

W skrócie, chodzi o to by optymalizować wszystko pod jak najlepsze wykorzystanie najcenniejszego/najdroższego zasobu - programistów.

Teraz szerzej ;-)
Nieraz miałem w firmach dyskusje o procesach, metodologiach czy po prostu o praktyce pracy.
Zawsze dziwiło mnie, że ludzie nie jarzą, że w firmie IT, dokładnie w firmie która tworzy software wszystko musi być optymalizowane pod jak najlepsze wykorzystanie jednego zasobu - programistów.

To idzie tak.
Firma zatrudnia testerów, bo z jednej strony programiści nie lubią testować, a z drugiej po co marnować całkiem dobrego programistę czy dobrą programistkę na testowanie?
Firma zatrudnia managerów, bo programiści się sami mogą zarządzać, ale często zaczynają się kręcić w kółko i robią nie to co ważne i potrzebne, ale to co fajne i ciekawe.
Firma zatrudnia product ownerów czy product managerów, żeby programiści wiedzieli lepiej co mają robić, czyli żeby lepiej wykorzystać ich czas i nie marnować go na spotkaniach z klientem.

To samo można podciągnąć pod wszystkich.

Jak firma nie będzie miała testerów to produkt będzie gorzej przetestowany.
Jak nie będzie miała managerów to może powstawać dłużej, albo w bardziej szalony sposób.
Jak nie będzie miała product ownerów/product managerów to może nie do końca wypełniać pragnienia userów.

Ale będzie produkt.

Ale jak firma będzie miała testerów, managerów, product managerów, UXów, technical writterów, scrum masterów i co tam jeszcze może, ale nie będzie miała programistów to sorry, produktu nie będzie.

Te wszystkie role są po to by pomóc developerom tworzyć produkt. Są pomocnicze.

Tu wiele osób się obraża, że niby sieję teorię, że programiści to jakaś forma Übermensch.
Ale nie o to chodzi.

Moja babcia pracowała w przędzalni. Jej praca nie była jakoś skomplikowana. Razem z nią pracowały dziesiątki, czy setki osób robiących w kółko jedno i to samo.
Pracowały na 2 albo i 3 zmiany.
I cała firma, czy wtedy fabryka była de facto zbudowana po to by jak najlepiej pomagać pracownikom przędzalni i innych działów.
Księgowość, kadry, naczelstwo, POP, straż pożarna, mechanicy i cała reszta tego typu ludzi byli w fabryce ważni jako osoby, ale ich istnienie sprowadzało się do pomocy w jak najlepszym użyciu tych akurat tu najsłabiej opłacanych pracowników w przędzalni. Bo cały cel istnienia fabryki był taki by prząść.

W kopalni węgla kamiennego też jest cała masa ważnych ludzi, ale wszyscy oni w końcu służą tylko do tego by górnicy mogli zjechać w dół i fedrować węgiel.

Tak samo w firmach tworzących software. Wszystko istnieje po to by programiści i programistki mogli ten software tworzyć.
To jest ich jedyny cel istnienia.
Jeśli programiści muszą tłumaczyć product managerom co trzeba robić to może nie potrzeba PMów? Jeśli manager nie ogarnia tego co robią "jego" lub "jej" ludzie to może taki manager jest niepotrzebny? Bo pytanie jest takie, jak bardzo pomagają w powstaniu produktu. Albo przeformuowując to pytanie, czy jeśli ich usuniemy z równania to czy produktywność programistów/programistek spadnie? Bo jak nie, to sorry, ale wasza praca nie jest do końca potrzebna.

Są wyjątki oczywiście, prawo wymaga istnienia pewnego rodzaju struktur, jak np. HR/kadry, czy księgowość, rekrutacja i podobne. Są kluczowe dla firmy bo bez nich firma nie może legalnie istnieć albo nie może znaleźć pracowników.

Inna sprawa, że to spojrzenie i próba identyfikacji najważniejszego zasobu, pod który mamy coś optymalizować to rzecz, która ogólnie pomaga.
Nie zawsze uda się zidentyfikować ten zasób i to jest wtedy problem.
Chociaż mam wrażenie, że większość ludzi nawet nie próbuje szukać. Wymyślają sobie rozwiązanie i ostro próbują je osiągnąć, chociaż bardzo możliwe, że to co rozwiązują nie jest nawet ich problemem.


Podobne postybeta
Kiedy zmieniać pracę i po co? (w IT)
Tresura owiec ;-)
2 wymiarowa teoria kariery w IT ;-)
SCRUM i ogólnie Agile to często taka zakamuflowana forma premature optimization
Po Google I/O - TensorFlow, App Maker, Kotlin i Firebase ;-)

Brak komentarzy:

Publikowanie komentarza