Zakres roli specjalisty
W chwili, kiedy nauka programowania staje się tak popularna a zapotrzebowanie na specjalistów jest cały czas niezaspokojone warto przypominać, czym właściwie jest współczesny development. Pozwala to na określenie działań jakie należy podejmować, aby nie blokować własnego potencjału rozwojowego.
Alberto Brandolini twórca metody Event Storming dość odważnie zaznacza, że kod jaki powstaje w software developmencie to tylko efekt uboczny. Efekt uboczny procesu nauki.
“Software Development is a learning process, Working code is a side effect.”
Z kolei manifest oprogramowania zwinnego, który od ponad 20 lat jest branżowym standardem wskazuje jasno, że profesjonalista powinien być skupiony na rozwiązywaniu realnych problemów klientów. Wiąże się to z poznaniem konkretnych dziedzin biznesowych, umiejętnym zbieraniem wymagań oraz reagowaniem na bieżące potrzeby.
Poza programowaniem i efektywną współpracą istotne są również umiejętności:
- projektowania systemów podatnych na szybkie zmiany;
- znajomości procesów i narzędzi związanych z ciągłym dostarczaniem;
- doboru właściwego języka programowania, frameworka, czy platformy do obecnych potrzeb;
- pracy z priorytetami, poziomem jakości oraz zarządzaniem czasem,
szacowania złożoności rozwiązań; - testowania, refaktoryzowania;
- bycia na bieżąco z trendami technologicznymi.
BLOKER 1
Fundamentalny bloker, czyli “wiem wszystko”, “wiem lepiej”!
Wydaje się to dość prozaiczne, ale brak umiejętności przyznanie się do niewiedzy jest jednym z głównych problemów jakie w ramach rozwoju się pojawiają. Jeżeli nie mówimy otwarcie o naszych brakach np. w znajomości konkretnej technologii, wymaganej do realizacji projektu, to nie dajemy sobie szansy na znalezienie przestrzeni, aby poprawić ten stan rzeczy.
Często polegamy również na wiedzy zdobytej podczas szybkiego researchu, jakiejś krótkiej rozmowy, bądź innego przekazu, który dał nam szczątkową wiedzę w danym temacie. Na tej podstawie możemy budować błędną percepcję znajomości zagadnienia co z kolei przekłada się na skuteczność podejmowanych decyzji. Już 20 godzin powinno wystarczyć, aby poznać nowe metody, narzędzia czy frameworki na poziomie początkującym. Warto więc zastanowić się jak szybko taka inwestycja nam się zwróci.
Co jeśli nauczyliśmy się czegoś, wykorzystujemy od dawna i zdaje to egzamin? Nadal musimy mieć otwartą głowę ze względu na dynamikę branży. Powinniśmy liczyć się z tym, że nasze mocno ugruntowane przekonania, praktyki oraz technologia, z którymi pracujemy mogą zostać bardzo szybko zastąpione czymś zupełnie nowym. Tak zbudowana świadomość pozwala nie tylko szybciej się rozwijać, ale również złagodzić skutki dysonansu poznawczego.
BLOKER 2
Zablokowany potencjał.
Istotą szybkiego rozwoju jest dobieranie efektywnych metod przyswajania informacji. Nieoceniona w tej materii jest wizualizacja rozumiana jako proces, świadomego przekształcania informacji do postaci obrazu. Dzięki aktywizacji mózgu a mianowicie ośrodków odpowiedzialnych za myślenie logiczne i abstrakcyjne możemy liczyć na zwiększenie wydajności podczas analizowania, porządkowania i pozyskiwania nowej wiedzy.
Rozpoczynając naukę programowania dużo łatwiej jest nam przyswajać informację np. o podstawach programowania obiektowego używając notacji UML. Korzystamy również ze schematów blokowych, na których możemy przeprocesować i zobaczyć algorytmy, różnego rodzaju warunki, pętle czy ścieżki decyzyjne.
Ważnym jest, aby na tym etapie nie zablokować własnego potencjału i aby pójść krok dalej. Poznać kolejne bardziej złożone a zarazem efektywne metody. Takie, które angażują więcej osób, pobudzają kreatywność, budują umiejętności projektowania oraz planowania.
Warto poznać i wiedzieć, kiedy wykorzystać Mind Mapping, Brainstorming, Model C4, User Story Mapping, Event Storming czy BPMN.
BLOKER 3
Blokujące środowisko.
Powinniśmy również zwrócić uwagę na środowisko w jakim przyszło nam tworzyć oprogramowanie. Czy mamy wystarczającą przestrzeń na realizację tak szeroko opisanej roli inżyniera oprogramowania. Czy otwarte sygnalizowanie potrzeb rozwojowych spotyka się ze zrozumieniem. Czy możemy bez obaw powiedzieć, że czegoś nie wiemy i czy w takim przypadku otrzymamy pomoc.
Starajmy się właśnie takie miejsce wybierać a unikniemy największego blokera jakim jest niesprzyjające środowisko.
Doświadczenie zdobyte podczas niezliczonej ilości godzin spędzonych na realizacji szkoleń, warsztatów oraz projektów rozwojowych kierowanych do inżynierów oprogramowania i liderów technicznych, pokazało mi bardzo wyraźnie jedno!
Istnieje powtarzalny zestaw działań, postaw oraz przekonań wpływający negatywnie na efektywność rozwoju w środowisku IT. Opisane blokery są w tej grupie najważniejsze. Powinniśmy zatem dać sobie szansę na ich usunięcie!