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.
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.
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)
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
- Wikipedia
- https://www.jcommerce.pl/
- https://it-academy.pl/
- https://bulldogjob.pl/
- http://informatyka2.orawskie.pl
- https://coderslab.pl