IT2.0 #7 Kto wytwarza oprogramowanie?

While knowledge is limited, your imagination is endless.

IT2.0 #7 Kto wytwarza oprogramowanie?

Kto wytwarza oprogramowanie?

Pierwsze co przychodzi do głowy to: programiści i programistki.
Zacznijmy od tego, ze tworzenie oprogramowania jest procesem złożonym. Gdy patrzymy na finalny produkt – aplikację to niejednokrotnie widzimy tylko niewielką część całego rozwiązania.

W proces tworzenia oprogramowania, oprócz programistek / programistów, zaangażowanych jest najcześciej kilka* osób pełniących różne role w całym procesie.

* czasami jedna, kilkadziesiąt lub nawet kilkaset!

Poniżej opiszę często spotykane zawody, profesje, jakie występują w procesie wytwarzania oprogramowania wraz z krótką charakterystyką, kompetencji wymaganych od tych osób.

Projektant (ang. Designer)

Osoba, ta odpowiedzialna jest za projektowanie aplikacji tak aby jak najlepiej spełniała oczekiwania użytkownika końcowego. Projektanci mogą być zaangażowani praktycznie w każdej fazie tworzenia aplikacji. Ze względu na typ projektowanych elementów można spotkać się z następującymi rolami projektantów:

  • systemów informacyjnych – projektują strukturę aplikacji tak aby była ona zgodna z wymaganiami i możliwe łatwa do zaimplementowania oraz wdrożenia w środowisku docelowym.
  • baz danych – projektują strukturę bazy danych, w której przechowywane będą wszystkie dane niezbędne do prawidłowego działania aplikacji 
  • interfejsów użytkownika (ang. UI Designer, User Interface) – rolą takiego projektanta jest zaprojektowanie takiego interfejsu aby było możliwe wykorzystanie wszystkich funkcjonalności jakie oferuje nam aplikacja. 
  • doświadczeń użytkownika (ang. UX Designer / User Experience Designer) –  UX czyli User Experience to suma wszystkich reakcji i odczuć, których doświadcza użytkownik naszego produktu. UX to projektowanie doświadczeń użytkownika, czyli dbanie o to, aby produkt wzbudzał pozytywne odczucia w ludziach, którzy z niego korzystają. 
  • grafiki komputerowej – popularnie zwani też grafikami dbają o oprawę graficzną aplikacji. Nie chodzi tu tylko o tworzenie obrazków, lecz także np. o odpowiedni dobór kolorów w aplikacji tak aby użytkownik mógł wykorzystać cały potencjał aplikacji i mieć przy tym satysfakcję z korzystania z naszego produktu. 

Projektanci grafiki komputerowej  najczęściej ściśle współpracują zarówno z projektantami doświadczeń użytkownika jak i interfejsów użytkownika aby wspólnie wypracować jak najlepszą wizję przyszłego produktu.

Tester

Od każdej aplikacji oczekujemy, że będzie działała stabilnie i bezbłędnie. Już na wczesnym etapie wytwarzania oprogramowania pojawia się rola testowania tego co aktualnie powstaje. Rozwiązanie testowane jest zarówno pod kątem poprawności napisanego kodu, zgodności z oczekiwaniami projektantów jak i stabilnego działania zaproponowanego rozwiązania.

Pierwszym testerem oprogramowania jest zawsze programista, który tworzy kod.

Czasami jest też ostatnim, jeżeli zespół nie posiada dedykowanej osoby w tej roli. Osoby specjalizujące się w tej dziedzinie, zazwyczaj dużo skuteczniej wykrywają wszelkiego rodzaju nieprawidłowości. Tworzą też specjalistyczną dokumentację i dbają o procesy mające na celu unikanie błędów w przyszłości.

Analityk

Osoba ta głównie zbiera i opisuje wymagania systemu. Bardzo istotne jest tu wierne odwzorowanie i opisanie tego co chciałby przyszły użytkownik / klient w taki sposób aby twórcy oprogramowania zrobili dokładnie to co chce użytkownik. Można znaleźć tysiące memów i historii o tym czego chciał użytkownik, co opisał analityk i co stworzył programista. Najczęściej jednak historie te nie są historiami z tzw. Happy Endem i końcowe rozwiązania nie spełniają oczekiwać użytkowników (patrz obrazek poniżej).

Architekt oprogramowania

Architekt oprogramowania jest ekspertem w dziedzinie oprogramowania, który dokonuje wysokopoziomowych wyborów dotyczących projektu i dyktuje standardy techniczne, w tym standard kodowania, narzędzia i platformy. Wiodący ekspert jest nazywany głównym architektem (Wikipedia). 

Rola architekta znacząco wpływa na wygląd końcowy aplikacji i strategię jej wytwarzania.

Badacz (Naukowiec, ang. Scientist)

Badacz informatyk to rola, która występuje głównie w projektach badawczych oraz projektach nastawionych na innowacje, gdzie rozwiązanie na etapie początkowym nie jest do końca dokładnie sprecyzowane. Wynika to głównie z faktu, że takich rozwiązań nie ma a celem projektu jest zaproponowanie nowego rozwiązania.

Zwinne podejście do wytwarzania oprogramowywania

Zwinne wytwarzanie oprogramowania powoli staje się standardem. W metodyce Scrum możemy spotkać się z następującymi rolami / osobami: 

Właściciel produktu (ang. Product Owner) – osoba reprezentująca klienta. Właściciel produktu może być członkiem zespołu tworzącego produkt, jednak nie jest zalecane, aby jednocześnie był Scrum Masterem.

Scrum Master – osoba odpowiedzialna za usuwanie wszelkich przeszkód uniemożliwiających zespołowi wykonanie zadania oraz za poprawną implementację procesu i metod.

Podsumowanie

W proces tworzenia oprogramowania, oprócz programistek / programistów, zaangażowanych jest zazwyczaj kilka osób pełniących różne role w projekcie. Ich rola w procesie oraz zakres obowiązków zależny jest zarówno od wielkości zespołu jak i indywidualnych kompetencji każdego członka zespołu. 

Nie zawsze jest tak, że wszystkie role są niezbędne do wykonania świetnego projektu. Zależy to od wielu czynników m.in.

  • Metodyki wytwarzania oprogramowania
  • Skali projektu (mały, duży)

Każda rola daje nam możliwości rozwoju zawodowego.

Wiele osób migruje między rolami podczas swojej kariery zawodowej – dlatego nawet jak zaczniemy w jednej roli to możemy swobodnie je zmieniać w zależności od potrzeb – zależy to tylko od nas.

Przemek


Materiały źródłowe

Udostępnij ten post:
fb-share-icon

Tags: , , , , , , , , , , , , ,