Kiedy menedżer dołącza do firmy IT, rozumie, że będzie musiał pracować z zespołem techników, którzy mówią własnym językiem. Zrozumienie technicznej strony przepływu pracy pomoże menedżerowi prawidłowo zarządzać projektami, zmniejszyć prawdopodobieństwo błędów i rozwiązać wiele trudności w pracy z klientami.
W tym artykule zebraliśmy sekrety i zalecenia prelegentów kursu TechMind – doświadczonych menedżerów i techników. Przeczytaj go, umieść w swoim skarbcu i z łatwością przechodź najtrudniejsze rozmowy kwalifikacyjne.
12 głównych punktów, będących podstawą pytań na rozmowie technicznej
Większość technicznych rozmów kwalifikacyjnych przebiega podobnie. Rekruter może zadawać różne pytania, ale wszystkie odnoszą się do określonych tematów i obszarów. Oto 12 głównych punktów, o które prawdopodobnie zostaniesz zapytany:
- Cykl życia produktu
- Metodologie
- Analiza biznesowa
- Dokumentacja techniczna
- Zestaw narzędzi projektowych
- Architektura
- Klient-serwer
- REST
- Frameworki, biblioteki
- Git
- Native/Cross-platform
- Testowanie
Przejdźmy przez każdy z nich bardziej szczegółowo i przeanalizujmy, jakie pytania można zadać w tych tematach.
Cykl życia produktu
To nie tyle temat techniczny, co test ogólnej wiedzy menedżera, który aspiruje do pracy w branży IT. Powinieneś być pewien, że jesteś przygotowany na te pytania, ponieważ pomogą one rekruterowi zrozumieć, ile wiesz o programowaniu i czy możesz pracować w zespole z technikami. Oto pytania i odpowiedzi:
Jakie są etapy cyklu życia oprogramowania
Tworzenie wymagań dla oprogramowania na etapach analizy, projektowania, realizacji, testowania, wdrażania, eksploatacji i konserwacji oraz wycofywania z eksploatacji. Pierwszy etap to ten, który odpowiada na pytanie: „Co zamierzamy zrobić?”. Drugi etap odpowiada na pytanie „Jak to zrobimy?”. Kolejnym etapem jest realizacja projektu, a następnie testowanie i wdrożenie. Ostatnim etapem jest wydanie projektu i dalsze wsparcie techniczne.
Jaka jest różnica między zbieraniem wymagań a projektowaniem
Zbieranie wymagań to proces, w którym menedżer dowiaduje się od klienta, jakie procesy biznesowe chce zautomatyzować i co chce uzyskać. Ten etap obejmuje analityków i kierownika projektu. Projektowanie to proces, w którym spotyka się zespół programistów i określa, jak wymagania zostaną zrealizowane.
Czym jest wsparcie techniczne
Wsparcie techniczne nie oznacza odbierania telefonów od klientów twojego klienta. Chodzi o rozwiązywanie problemów w przypadku awarii produktu. Jeśli coś się „zepsuje” i przestanie działać, zespół programistów musi szybko zareagować i upewnić się, że wszystko jest w porządku.
Jak działa wycofanie produktu z eksploatacji
Gdy produkt traci swoją aktualność lub zostaje zastąpiony nowym, bardziej zaawansowanym technicznie rozwiązaniem, jest wycofywany z eksploatacji. Opracowuje się plan, zatwierdza się go, a następnie rozpoczyna się stopniowe wycofywanie produktu z eksploatacji.
Przykład: przedsiębiorstwo posiada wersję desktopową produktu, ale zdecydowało się przejść na nową aplikację, która działa na urządzeniach mobilnych.
Opracowywana jest strategia przejścia, przygotowuje się produkt, stopniowo przenosi się wszystkie dane, szkoli pracowników i wprowadza nowe narzędzia.
Jacy pracownicy są potrzebni na każdym etapie cyklu życia produktu
Analitycy biznesowi są zaangażowani w tworzenie wymagań, a architekci i kierownicy programistów są kluczowymi osobami na etapie projektowania. Programiści i designerzy są potrzebni do realizacji projektu. Inżynierowie QA są zaangażowani w testowanie. Wdrożenie wymaga prawie wszystkich uczestników projektu, a kierownik projektu jest „gwiazdą”. Jeśli zespół przydzieli inżyniera wsparcia, jest on odpowiedzialny za wsparcie techniczne. Jeśli nie, zaangażowani są QA, programiści i kierownik projektu.
Metodologie
Wybór metodologii nie jest częścią rozmowy technicznej, ale istnieją kwestie, które pośrednio wpływają na zespół programistów. Na przykład, jaką formę wynagrodzenia wybrać. Możesz spotkać się z następującymi pytaniami:
Jaka jest różnica między Fix Price a Time & Materials
Fix Price oznacza, że zarządzamy projektem w ramach określonego budżetu. Firma omawia z klientem, co robi i za jakie pieniądze. Time&Materials stosuje się, gdy klient jest niepewny i nie wie, jaki będzie produkt końcowy. Jest gotowy wykupić zespół i zapłacić za wykonaną pracę. Time&Materials jest często używany w zwinnej metodologii Scrum.
Który model jest lepszy
Fix Price działa świetnie w przypadku projektów, które mają ściśle określony budżet i dokładnie wiedzą, co chcą uzyskać. W takim przypadku wszelkie dodatki, zmiany lub propozycje po prostu nie są realizowane. Time&Materials jest odpowiedni dla startupów i projektów, w których trudno jest zrozumieć dokładną liczbę zadań i wygląd produktu końcowego.
Analiza biznesowa
Kierownik projektu często pełni funkcje analityka biznesowego. Nawet jeśli nie jest to konieczne, rekruterzy chcą wiedzieć, ile wiesz o pracy BA i czy potrafisz wykonywać jego zadania. Czekają na Ciebie następujące pytania:
Jaka jest różnica między analitykiem biznesowym a analitykiem systemowym
Analityk biznesowy to osoba, która rozumie procesy biznesowe firmy, które wymagają automatyzacji. Szczegółowo rozumie ich specyfikę i szuka podejść, które pomogą ulepszyć procesy. Analizuje wymagania, cele i zadania klienta.
Analityk systemowy przekłada informacje z formatu „Co należy zrobić” na format „Jak to zrobić”. Sporządza diagramy, wykresy, współpracuje z zespołem technicznym i zagłębia się w architekturę.
Czym są User Story i Use Cases
User Story to „historia” klienta firmy, który przechodzi drogę z firmą od początku do końca. Na przykład od wejścia do sklepu internetowego do rejestracji, wypełnienia wniosku i zakupu produktu.
Use Cases to szczegółowy przegląd User Story na określonym etapie. Na przykład, klient zostawił wniosek na stronie internetowej. Jest to jeden z etapów User Story. Ale sam case polega na wypełnieniu określonych pól podczas składania zamówienia.
Różnica między wymaganiami funkcjonalnymi i niefunkcjonalnymi
Wymagania funkcjonalne obejmują opis tego, co należy zrobić. Badane są wymagania klienta. Wymagania niefunkcjonalne odnoszą się do części nietechnicznej. Na przykład na jakich urządzeniach aplikacja powinna działać.
Dokumentacja techniczna
Menedżer musi cały czas pracować z dokumentacją techniczną. Oczywiście podczas rozmowy kwalifikacyjnej pojawią się pytania na ten temat.
Czym jest zadanie techniczne
Jest to najważniejszy dokument, zadanie developerskie, które opisuje, co należy zrobić i jak to zrobić. Zapisane są tam również wymagania funkcjonalne i niefunkcjonalne. Zadanie techniczne to dokument, który określa, jaki powinien być wynik. Wymagania te są zapisywane i stanowią podstawę pracy całego zespołu. ZT chroni zarówno developerów, jak i klienta. Ponieważ wszyscy stosują się do wymagań zadania technicznego.
Use Cases, Test Cases
Use Cases opisują scenariusz interakcji pomiędzy uczestnikami. Mogą być przedstawione w formie diagramów lub tekstu. Są one potrzebne programistom, testerom i całemu zespołowi projektowemu do zrozumienia pełnej specyfikacji wymagań. Test Cases są potrzebne, aby tester przeszedł przez cały produkt i niczego nie przegapił. Powinny być napisane w taki sposób, aby każdy tester z innego projektu mógł je zrozumieć.
Gdzie przechowywać wymagania i zarządzać nimi
Wszystko zależy od relacji z klientem. Confluence nadaje się do tego zadania i wygodniej jest przechowywać je na własnym serwerze niż na serwerze klienta. Menedżer może bowiem zapisywać informacje, których nie chce pokazywać klientowi. Można również użyć Jira lub Notion.
Narzędzia projektowe
Podczas rozmów kwalifikacyjnych rekruterzy chcą wiedzieć, z jakimi narzędziami możesz pracować. Musisz więc być przygotowany na pytania. Lepiej jest przygotować się z wyprzedzeniem, a przynajmniej zapoznać się z narzędziami używanymi przez menedżera. Możesz spodziewać się następujących pytań:
Który Task Tracker lepiej wybrać
Każde narzędzie do śledzenia zadań ma wiele fajnych funkcji, więc należy przyjrzeć się możliwościom narzędzi i wybrać odpowiednie dla konkretnych projektów. Często korzystają z Jira. Nie oznacza to, że jest najlepsza, ale jest wymagana w 33% ofert pracy na stanowisku kierownika projektu.
Do czego służy Project Planning
Przede wszystkim do tworzenia wykresu Gantta. Jest to podstawowe narzędzie dla kierownika projektu, w którym można śledzić etapy projektu, budować go od początku do końca. Narzędzia do planowania projektów są potrzebne do śledzenia efektywności zadań, sprawdzania, ile czasu i budżetu pozostało.
Architektura dla kierownika projektu
Kierownik projektu musi rozumieć, gdzie przechowujemy dane, za pomocą jakich danych je pobieramy, czy architektura będzie typu klient-serwer, czy też inna. Architektura to schematyczne wyjaśnienie, skąd i dokąd przepływają dane, w jaki sposób są przetwarzane i na jakich etapach są dostarczane użytkownikom.
Podczas rozmów kwalifikacyjnych możesz zostać zapytany o architekturę bardziej szczegółowo, ale jest to temat na osobny artykuł.
Różnica między backendem a frontendem
Na przykład, mamy aplikację mobilną. To, co masz na swoim urządzeniu, to frontend. To z nim użytkownik wchodzi w interakcję i go widzi. Backend to procesy, które nie są widoczne dla użytkownika. Przetwarzanie danych, przechowywanie, przesyłanie, dostęp do serwerów. Ta zasada działa w przypadku każdego produktu. To, co widzi użytkownik, to frontend. Wszystko, co dzieje się za drzwiami, to backend.
Co oznacza „cienki” i „gruby” klient
Nie, nie chodzi o obwód w pasie. Każdy, kto nie ma technicznego wykształcenia i umiejętności, jest zdezorientowany tym pytaniem. Dlatego zalecamy doskonalenie swoich umiejętności na kursie Techmind. Zdobędziesz praktykę i wiedzę, które pomogą Ci przejść rozmowy kwalifikacyjne i uniknąć takich sztuczek rekruterów. A teraz do pytania.
„Grubość” klienta zależy od tego, ile logiki znajduje się na kliencie. Jeśli aplikacja ma minimalną logikę na kliencie, a główną logikę na serwerze, wtedy powstaje „cienki” klient. Jeśli podczas pobierania aplikacji na kliencie przetwarzana jest duża ilość danych, „grubość” klienta wzrasta.
Różnica między nimi polega na opcjach przetwarzania danych. Grubi klienci pracują głównie z informacjami opartymi na własnych możliwościach oprogramowania, podczas gdy ciency klienci używają oprogramowania centralnego serwera do przetwarzania. Wszystkie przeglądarki i aplikacje internetowe, gry online są cienkimi klientami. Natomiast Microsoft Outlook lub Office 365 są grubymi klientami.
Czym jest baza danych
Jest to miejsce, w którym wszystkie dane są przechowywane i przetwarzane. Jest ona prezentowana w formie tabel, które dzielą dane na kolumny i wiersze. Na przykład nazwa użytkownika, numer telefonu, adres e-mail. Wszystkie tabele są ze sobą połączone, więc żądając pewnych danych, można uzyskać także inne informacje.
DNS – co to jest
Podczas rozmów kwalifikacyjnych często przytaczana jest następująca sytuacja: użytkownik wprowadza pewne dane do paska wyszukiwania przeglądarki i klika przycisk „Znajdź”. Jak działa cały proces? Na to pytanie można odpowiedzieć szczegółowo, ale rekruter czeka na wyjaśnienie, czym jest DNS.
Jeśli istnieją fizyczne serwery, na których znajdują się informacje, należy uzyskać do nich dostęp. Każdy serwer ma nazwę, która wygląda jak adres IP. Aby uniknąć zapamiętywania dużej ilości liczb, opracowano system DNS. DNS ma czytelną formę i hierarchiczną strukturę, dzięki której użytkownik składa zapytanie i uzyskuje dostęp do informacji. Kurs Techmind szczegółowo wyjaśnia działanie DNS i baz danych.
Do czego potrzebna jest replikacja
Replikacja służy do tworzenia kopii bazy danych. Sama baza danych jest przechowywana na serwerze, ale co się z nią stanie, jeśli coś stanie się z serwerem? Spłonie, ulegnie uszkodzeniu lub zostanie zhakowany? Baza danych zostanie zagubiona. Lata pracy mogą zostać utracone. Replikacja pomaga tego uniknąć. Kopie baz danych są tworzone i umieszczane na różnych serwerach i nośnikach lokalnych. Baza danych jest regularnie aktualizowana, i z określoną częstotliwością repliki są uzupełniane o aktualne informacje.
Jaka jest różnica między mikroserwisem a monolitem
Monolit to scentralizowane przetwarzanie zapytań, podczas gdy mikroserwisy to indywidualne przetwarzanie zapytań. Aplikacja monolityczna wygląda jak jeden wspólny moduł, w którym odbywa się cała praca. Architektura mikroserwisów ma kilka małych usług, które uruchamiają się.
Nie można z całą pewnością stwierdzić, która z nich jest lepsza, ponieważ każda z nich ma swoje własne cechy. Architektura monolityczna jest uważana za bardziej tradycyjną, niezależną od innych serwisów i posiada jedną bazę kodu. Aby coś zmienić, należy zaktualizować cały stos. Na początkowych etapach projektu jest to wygodne rozwiązanie, ponieważ łatwiej je wdrożyć. Mikroserwis jest łatwiejszy do skalowania, testowanie i aktualizacje są szybsze i tańsze, a aplikacja staje się bardziej elastyczna.
Klient-serwer
Zagłębiając się w wiedzę techniczną, kierownik projektu musi zrozumieć, czym jest klient-serwer. Oto najczęściej zadawane pytania na ten temat:
Co to jest klient-serwer
Są to elementy architektury, które oznaczają, że istnieje część kliencka, która wchodzi w interakcję z użytkownikiem, oraz część serwerowa – logika aplikacji. Część kliencka jest odpowiedzialna za pokazywanie użytkownikowi danych, wyświetlanie okien w określonym kolorze i wybieranie przycisku. Część serwerowa odpowiada za zbieranie i przechowywanie danych, przetwarzanie żądań i logikę interakcji użytkownika z produktem.
Do czego służy REST
Jest to zestaw reguł, które pokazują, jak komunikować się między klientem a serwerem. Jest to rodzaj „transportu”, który przesyła dane. Klient żąda pewnych danych od serwera. To żądanie jest wysyłane do serwera, a on je zwraca. REST to zestaw reguł, które pomagają serwerowi i klientowi zrozumieć się nawzajem.
Gdzie umieścić logikę
Nie ma tu uniwersalnej odpowiedzi. Niektórzy uważają, że lepiej jest zbudować całą logikę na backendzie i nie obciążać klienta. Inni twierdzą wręcz przeciwnie. Odpowiedź, która się spodoba: wszystko zależy od tego, co robimy i w jakim środowisku się znajdujemy. Możesz umieścić wszystko na kliencie, ale wszystko związane z bezpieczeństwem powinno być zbudowane na backendzie. Złożone obliczenia związane z płatnościami również lepiej pozostawić w backendzie.
REST
W skrócie powiedzieliśmy już, że REST to pewien styl interakcji między klientem a serwerem. Pomaga nawiązać komunikację między żądaniem a odbiorem danych. W temacie REST mogą pojawić się następujące pytania:
Co to jest json, xml, html
Są to formaty plików wymieniane między klientem a serwerem. Nie przechowują one wszystkich danych oddzielonych przecinkami, muszą być ustrukturyzowane. I to są opcje struktury. Json jest używany do wymiany danych w urządzeniach mobilnych, xml, html działają w Internecie.
Metody update, delete, get, post
Urządzenia mobilne wchodzą w interakcję z backendem za pomocą pewnych żądań. Zazwyczaj są to linki i dodatkowe pola. Przechodzimy do linku i wydajemy jedną z komend: update, delete, get, post.
- get – zabieramy coś, na przykład „Daj listę kontaktów”
- post – mówimy, że trzeba coś dodać, na przykład nowego znajomego w sieci społecznościowej
- delete – za pomocą tego polecenia mówimy, że trzeba usunąć dane, na przykład plik z telefonu
- update – aktualizacja pliku: zmiana nazwy, dodanie nowych danych.
Te cztery komendy należy znać szczegółowo. Zalecamy zapoznanie się z nimi osobno. Na kursie Techmind analizujemy je bardziej szczegółowo i uczymy, jak pracować z tymi komendami.
Frameworki i biblioteki
Specjaliści nietechniczni są często pytani o ten temat. Dlatego lepiej przygotować się wcześniej i zagłębić się w wiedzę na temat frameworków i bibliotek. Oto główne pytanie, które może zostać zadane:
Jaka jest różnica między frameworkiem a biblioteką
Framework to struktura z kodem, która pozwala na wygodne oprogramowanie czegoś. Biblioteka jest również strukturą z kodem, ale jest pobierana z zewnątrz. Jest traktowana jako gotowe rozwiązanie do programowania. Wydaje się, że jest to wygodniejszy i łatwiejszy sposób na programowanie. Jednak biblioteka jest rozwiązaniem zewnętrznym, które trudno dostosować do własnych potrzeb.
Na przykład, potrzebujesz kalendarza. Możesz wziąć gotowe rozwiązanie z biblioteki i zaimplementować aplikację. Ale jeśli klient poprosi o dodanie kolorów do kalendarza, zmianę czcionki lub zmianę początku tygodnia z niedzieli na poniedziałek, trudno będzie go zedytować. Biblioteka jest odpowiednia dla standardowych i szybkich rozwiązań.
Git
Git to system kontroli wersji. Mamy programistów, którzy stale opracowują ulepszenia i wprowadzają nowe funkcje. Aby uniknąć zamieszania i uzyskać sztywną strukturę, wprowadzono system kontroli wersji. Osobie nietechnicznej mogą zadać następujące pytania na ten temat:
Jak działa Git
Aby nie utracić gotowych wyników, utworzona zostaje główna gałąź – Master. Są to już zatwierdzone działające rozwiązania, które nadają się do wydania. Następnie pojawia się pomysł wdrożenia nowej funkcji. W Masterze ustalany jest „punkt startowy”, funkcja jest tworzona, testowana i weryfikowana. W Git jest to osobna gałąź. Zawiera technologię związaną tylko z tą nową funkcją. Kiedy jest gotowa, przetestowana i zdecydowano się ją wdrożyć, jest ona łączona z gałęzią główną.
Do czego potrzebny jest Git
Aby się nie pogubić. Najtrudniejsza gałąź dotyczy developerów. Tam odbywają się główne procesy, w trakcie pracy pojawia się wiele błędów i trudno jest je śledzić. Ale Git pomaga organizować gałęzie tak, aby było jasne, co już działa, a co należy poprawić.
Co to jest merge, push, pull
Merge to proces scalania kodu z jednej gałęzi do drugiej. Merge oznacza przeniesienie kodu. Po upewnieniu się, że funkcja działa, jest ona dodawana do głównej wersji Git.
Push to proces dodawania pojedynczego fragmentu kodu do gałęzi. Pull to proces odwrotny, gdy trzeba usunąć coś z gałęzi z kodem.
Cross-platform
W nowoczesnym programowaniu coraz rzadziej używa się tylko wersji desktopowych lub mobilnych produktu. Jednak tworzenie produktu dla każdego systemu osobno jest dość kosztowne. W związku z tym często używa się cross-platform. Specjalista nietechniczny powinien rozumieć, czym są te procesy i jak działają.
Czym jest native
Jeśli programowanie odbywa się w języku natywnym dla danej platformy, nazywa się to native. Na przykład, jeśli produkt jest opracowywany dla systemu operacyjnego iOs, używany jest język Swift.
Czym jest cross-platform
Jest to proces, w którym aplikacja jest tworzona z bazą kodu działającą na różnych systemach operacyjnych. Oznacza to, że aplikacja będzie działać zarówno na iPhonach, jak i na Androidzie. Pomimo faktu, że wydaje się to bardziej opłacalne, rozwiązania cross-platformowe mają wiele wad i nie zawsze działają dobrze. Stos technologiczny jest określany dla każdego projektu, a podczas opracowywania architektury decyduje się o użyciu native lub cross-platform.
Co jest tańsze
W przypadku szybkiego uruchomienia startupu z pewną funkcjonalnością taniej jest opracować rozwiązanie cross-platformowe. Jeśli potrzebujesz dobrej funkcjonalności, bardziej opłaca się stworzyć ją na platformie native. Ponieważ na cross-platformie będziesz musiał „połączyć” wiele rozwiązań, które zajmą więcej czasu i wysiłku. Z punktu widzenia ogólnej oceny, cross-platform jest tańszym rozwiązaniem. Ale nie zawsze jest odpowiednia dla projektów.
Testowanie
Jakie są typy testowania
Testowanie funkcjonalne – bierzemy i testujemy określoną funkcjonalność. Smoke testing jest używany, gdy znaleziono małego buga, który wpływa na funkcjonalność. Testowanie regresyjne to kompletny proces sprawdzania bugów w całym kodzie, zwykle stosowany przed wydaniem produktu.
Testowanie obciążenia jest stosowane w przypadku złożonych produktów z niefunkcjonalnymi wymaganiami związanymi z obciążeniem. Na przykład aplikacja musi działać przy jednoczesnym obciążeniu 20 000 użytkowników.
Testowanie integracyjne jest stosowane, gdy serwer został już napisany, a klient wciąż się zmienia. Autotesty działają w następujący sposób: pewne działania lub żądania są kodowane, a odpowiedzi są sprawdzane. Jest często używany podczas testowania integracyjnego.
Czym są priorytety
Każdy bug ma przypisany status, który określa ważność testowania i naprawiania. Z reguły używane są statusy Critical, High, Medium, Low i Blocker. Przy statusie Critical produkt nie może działać, dopóki nie zostanie naprawiony, ale funkcjonalność może być testowana. Blocker to status, który uniemożliwia dalsze testowanie do czasu jego usunięcia.
Podsumowanie
To nie wszystkie pytania, które mogą zostać zadane menedżerowi podczas rozmowy technicznej. Aby dostać pracę w firmie IT, trzeba rozumieć procesy pracy, terminologię i język pracowników technicznych. Aby nauczyć się tego wszystkiego, nie wystarczy jeden bardzo przydatny artykuł. Właśnie dlatego stworzyliśmy kurs TechMind dla nietechnicznych specjalistów pracujących w IT. W ciągu kilku miesięcy nauczysz się, jak zarządzać zespołem programistów, odpowiednio ustalać zadania, zarządzać projektami, dobierać najlepsze rozwiązania i unikać błędów. Zapoznaj się z programem kursu i zrozum, że został on zaprojektowany tak, aby w pełni opanować procesy techniczne.
Zapisz się na kurs TechMind, udoskonal swoje umiejętności i z łatwością przechodź rozmowy techniczne. A jeśli powiesz menedżerowi, że czytałeś artykuł o 37 pytaniach na rozmowie kwalifikacyjnej, otrzymasz dodatkową indywidualną zniżkę.