Mapa kompetencji w małych firmach informatycznych
26/07/2006 · Link
Firma w której pracuję nie jest duża i nie może sobie pozwolić na zbytnią specjalizację: każdy pracownik wykonuje wiele różnorodnych zadań. Mimo to można na jej przykładzie wyróżnić kilka typowych ról jakie pełnią osoby w niewielkich firmach informatycznych, a następnie opracować mapę kompetencji wymaganych na odpowiednich "poziomach".
Cel
Do czego może być przydatna taka mapa? Widzę dwa istotne zastosowania dla takiego "minimum programowego":
- Może stanowić wskazówkę kierunku rozwoju osobistego (czego się uczyć, jakie umiejętności rozwijać),
- Dla osób zarządzajacych ludźmi może stanowić pomoc do oceny umiejętności pracowników, planowania ich rozwoju oraz określaniu celów i zadań.
Zastrzeżenie: poniższy opis to uproszczony model a nie prawda objawiona pasująca uniwesalnie do każdej sytuacji. W różnych firmach może to wyglądać nieco, a nawet całkiem inaczej, w zależności od charakteru działalności, rodzaju produktów, rynku na którym działa firma, struktury organizacyjnej, filozofii i kultury firmy etc. Jeżeli ten model nie pasuje do Waszych obserwacji, to proszę o komentarz.
Założenia
W modelu wyróżnione zostały następujące role:
- programista
- deweloper
- konsultant
- lider techniczny
- kierownik projektu
Jak widać model nie jest kompletny: dla uproszczenia (chwilowo) pominięte zostały role luźniej związane z samym wytwarzaniem oprogramowania: twórców dokumentacji, testerów, wdrożeniowców, obsługę techniczną, serwis.
Ponadto pewne często wyróżniane role typu analityk, architekt, projektant, etc. zostały zagregowane (ich zadania zostały włączone do ról deweloper/konsultant) - model bazuje na małych firmach, gdzie z konieczności role te są najczęściej łączone.
W modelu wyróżniono jeszcze "poziom wejściowy" - absolutne minimum umiejętności, które wymagane jest od wszystkich kandydatów do pracy.
Mapa kompetencji
Czego oczekuje się na
poziomie wejściowym:
- umiejętność programowania (niekoniecznie tworzenia dużych aplikacji),
- umiejętność zaprojektowania fragmentu aplikacji, modułu, modelu danych,
- umiejętność rozwiązywania problemów,
- znajomość diagramów typu uml, erd itp.
Wymagane umiejętności
programisty (ta rola jest ewidentnie przejściowa; od wszystkich oczekujemy szybkiego wyrośnięcia i przejęcia znacznie szerszej odpowiedzialności):
- znajomość konkretnego języka programowania i środowiska programistycznego (ide, cvs) używanego w projekcie,
- podstawowa znajomość aplikacji, struktury, modułów, api, modelu danych,
- znajomość podstawowych procedur i konwencji firmowych dotyczących programowania,
- umiejętność zarządzania własnym czasem i planowania własnych zadań
Wymagane umiejętności
dewelopera (plus umiejętności programisty):
- dobra znajomość aplikacji, struktury, modułów, api, modelu danych,
- znajomość innych aplikacji i otoczenia informatycznego (integrowane systemy),
- umiejętność zaprojektowania modelu danych,
- umiejętność zaprojektowania UI,
- umiejętność zaprojektowania testów,
- przeglądy kodu: umiejętność przekazania zasad dobrego programowania, konwencji etc.,
- umiejętność pisania dokumentacji,
- dobre rozumienie procedur związanych z programowaniem i produktów tworzonych w fazie developmentu
- umiejętność zapisania propozycji rozwiązania (email, schemat, uml, erd),
- umiejętność prezentacji proponowanego rozwiązania (tablica),
- umiejętność ewaluacji pomysłów, dyskusji, delikatnej krytyki,
- umiejętność prezentacji oprogramowania (klient, potencjalny klient, inne osoby w firmie),
- umiejętność szacowania wielkości zadań programistycznych i innych (pisanie dokumentacji, opracowywanie planów testowania),
- umiejętność kończenia zadań (koncentracja na celu, zarządanie wątkami pobocznymi, kontrola własnego postępu)
Wymagane umiejętności
konsultanta (plus umiejętności dewelopera):
- rozumienie procesu analizy wymagań,
- doskonałe rozumienie biznesu klienta,
- umiejętność budowania zaufania w kontaktach z klientem,
- umiejętność wysłuchania klienta, zrozumienia jego potrzeb, zadania odpowiednich pytań,
- umiejętność sformułowania celów projektu,
- umiejętność posługiwania się use-case'ami,
- umiejętność zaprojektowania zbioru funkcjonalnści,
- umiejetność zweryfikowania czy zestaw funkcjonalności zapewnia możliwość wykonania use-case'ów,
- umiejętność szybkiego szacowania stopnia skomplikowania rozwiązania,
- umiejętność przekonywania klienta do proponowanych rozwiązań,
- umiejętność negocjowania zakresu rozwiązania,
- umiejętność przeprowadzania prezentacji,
- podstawowe umiejętności sprzedażowe,
- umiejętność priorytetyzowania wymagań i funkcjonalności
Wymagane umiejętności
lidera technicznego (plus umiejętności dewelopera):
- umiejętność opracowania wizji produktu/dużego modułu,
- umiejętność podziału tej wizji na etapy implementacyjne,
- umiejętność zaplanowania etapu implementacyjnego (podział na zadania, szacowanie),
- umiejętność priorytetyzowania zadań,
- umiejętność rozdzielenia zadań w zależności od umiejętności członków grupy,
- umiejętność kontroli postępu pracy grupy,
- umiejętność kontroli postępu projektu (czasu do końca etapu/całości)
- dobre rozumienie faz projektu (analiza wymagań, projekt, dev, testy) i oczekiwanych produktów wszystkich faz,
- organizacja i prowadzenie spotkań (cele, agenda, moderowanie),
- umiejętność negocjowania rozwiązań pomiędzy członkami grupy,
- bardzo dobre rozumienie procedur, konwencji programowania etc.,
- umiejętność oceny jakości pracy deweloperów (członków zespołu),
- umiejętność weryfikacji gotowej aplikacji pod kątem spełniania wymagań
Wymagane umiejętności
kierownika projektu (plus umiejętności lidera technicznego i konsultanta):
- umiejętność określania celów projektu, celów zespołu i celów członków zespoły,
- umiejętność angażowania zespołu wokół wyznaczonych celów,
- umiejętność jasnego określania standardów i łagodnego wymuszania ich stosowania (empatia i wsparcie),
- umiejętność oceny umiejętności członków zespołu i planowania ich rozwoju,
- umiejętność śledzenia osiągania celów oraz wspierania w ich realizacji,
- umiejętność delegowania zadań i odpowiedzialności,
- motywowanie zespołu, budowanie atmosfery entuzjazmu i zaangażowania,
- tworzenie atmosfery sprzyjającej kreatywności i odwadze w podejmowaniu decyzji
- umiejętność rozwiązywania konfliktów,
- umiejętność udzielania i przyjmowania krytyki (feedback),
- umiejętność kwalifikowania osób do zespołu (rozmowa kwalifikacyjna),
- umiejętność zarządzania ryzykiem,
- umiejętność wdrażania nauk z przeszłości (lessons learned),
- umiejętność uczenia ludzi,
- umiejętność unikania mikromenedżowania,
- umiejętność budowania relacji z klientem,
- dobre zdolności negocjacyjne,
- umiejętność łączenia działań taktycznych i strategicznych,
- umiejętność kontrolowania budżetu projektu
Podsumowując
Model ten chciałbym wykorzystać przy tworzeniu tej strony internetowej. Możecie się spodziewać, że kolejne artykuły i wpisy na blogu będą dotyczyły różnych umiejętności opisanych powyżej.
Czy ten model pasuje do Waszych doświadczeń? Jestem mocno przekonany, że pominąłem jakieś istotne kompetencje i liczę na Waszę pomoc - zostawcie komentarz lub dajcie znać przy pomocy tego
formularza.
Zobacz inne wpisy