5.1 Trochę historii
Kiedy w latach 90. Internet-Rewolucja dopiero się zaczynała, nikt nie wiedział, jak prawidłowo rozwijać internetowe serwisy. Wszystkie ich funkcje od razu stawały się dostępne dla użytkowników, co znacznie różniło się od klasycznego podejścia do rozwoju oprogramowania.
Największa wyszukiwarka tamtych czasów, firma Yahoo, postanowiła pójść nową drogą i przejąć podejście z Hollywood – ich menedżerowie byli nazywani producentami :) Nic dziwnego, że nic z tego nie wyszło.
To ciekawe. Yahoo – największy przegrany pod względem zakupu innych firm. Swego czasu kilkakrotnie proponowano im zakup Google i Facebooka. W końcu, pod koniec swojej kariery Microsoft próbował ich przejąć za 40 miliardów, ale ponownie odmówili. Kilka lat później kupiono ich za zaledwie 3 miliardy. W latach 90., na szczycie swojej popularności, Yahoo wyceniano na 200 miliardów dolarów, i gdyby kupili Google, ich wartość dzisiaj mogłaby sięgnąć kilku bilionów. Nie bądź jak Yahoo.
Od czasów Internet-Rewolucji przetestowano dziesiątki różnych sposobów rozwoju oprogramowania, i teraz sytuacja się ustabilizowała. Istnieją standardowe role ze standardowymi obowiązkami, standardowe procesy i standardowe oprogramowanie.
W trakcie nauki poznasz wszystko, co musisz wiedzieć, aby pracować w nowoczesnych firmach IT, z nowoczesnymi narzędziami do rozwoju.
5.2 Zespół produktowy
Typowy zespół rozwojowy składa się z:
- Ludzi, którzy decydują, jakie funkcje i cechy powinien mieć produkt
- Product Owner
- Business Analyst
- Ludzi, którzy decydują, jak produkt będzie wyglądał
- UI Designer
- UX Designer
- Programistów, którzy to wszystko realizują
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Ludzi, którzy dbają o jakość działania produktu
- QA Automation
- DevOps

Product Owner w rozwoju oprogramowania odgrywa kluczową rolę, zarządzając produktem i upewniając się, że zespół rozwojowy koncentruje się na realizacji najważniejszych zadań. Określa wizję produktu, tworzy i priorytetyzuje listę zadań (backlog), co pomaga gwarantować, że każdy etap rozwoju maksymalnie odpowiada celom biznesowym i wymaganiom użytkowników.
UX Designer zajmuje się tworzeniem wygodnego i efektywnego interfejsu produktu, co obejmuje badanie potrzeb użytkowników, tworzenie prototypów i testowanie interfejsów. Ta praca skupia się na poprawie interakcji użytkownika z produktem, aby uczynić go maksymalnie zrozumiałym i wygodnym.
DevOps-specjaliści zajmują się optymalizacją procesów rozwoju oprogramowania i jego zarządzania operacyjnego, aby przyspieszyć i uprościć wydawanie aktualizacji produktu. Ich praca obejmuje automatyzację testowania, wdrożenia i monitorowania systemów, a także konfigurację infrastruktury i zapewnienie ciągłej integracji i dostarczania (CI/CD).
5.3 Zespół rozwojowy
Bezpośrednio rozwój jest prowadzony przez programistów. Można ich z grubsza podzielić na 5 kategorii:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- DBA
Role i ich zawartość mogą się zmieniać w zależności od wielkości zespołu i specyfiki produktu, ale sytuacja wygląda mniej więcej tak:
Software Architect: odpowiada za projektowanie złożonej architektury systemów oprogramowania. Architect opracowuje techniczną infrastrukturę, określa strukturę i metody interakcji różnych komponentów produktu oprogramowania, zapewniając ich skalowalność, wydajność i bezpieczeństwo.
Backend Developer: specjalizuje się w rozwoju serwerowej części aplikacji. Zadania Backend Developer obejmują realizację logiki, integrację baz danych i systemów zarządzania danymi, przetwarzanie żądań użytkowników i utrzymanie interakcji z częścią frontendową.
Frontend Developer: tworzy interfejs użytkownika aplikacji webowych. Ta rola wymaga znajomości HTML, CSS i JavaScript, a także frameworków i bibliotek do tworzenia interaktywnych i responsywnych interfejsów, zapewniających dobrą interakcję użytkownika z produktem.
Mobile Developer: zajmuje się tworzeniem aplikacji dla urządzeń mobilnych. Mobile Developer tworzy aplikacje dla różnych systemów operacyjnych (np. iOS i Android), z uwzględnieniem specyfiki platformy, wydajności urządzeń i doświadczenia użytkownika.
DBA (Database Administrator): odpowiada za zarządzanie bazami danych, zapewniając ich dostępność, bezpieczeństwo i optymalizację. DBA wykonuje zadania związane z konfiguracją, monitoringiem i obsługą baz danych, a także opracowaniem strategii dotyczących tworzenia kopii zapasowych i odzyskiwania danych.
GO TO FULL VERSION