Znalezienie odpowiedniego inżyniera oprogramowania jest zawsze trudnym zadaniem, czy to freelance lub w domu, ale może to być mniej trudne, jeśli wiesz dokładnie, czego szukasz. Jeśli znasz odpowiednie pytania, aby zapytać, to nie będzie wymagać dużo pracy.
Ogólnie rzecz biorąc, rozwój oprogramowania jest dziedziną techniczną, więc trzeba przygotować pytania techniczne wywiadu, które pomogą Ci ocenić możliwości dewelopera. Musisz również przygotować pytania dotyczące osobowości i etyki, aby upewnić się, że zatrudniasz najlepsze dopasowanie do swojego projektu.
Przygotowanie do rozmowy kwalifikacyjnej
Tak jak w przypadku każdej rozmowy kwalifikacyjnej, przygotowanie jest niezbędne, dlatego musisz wcześniej wiedzieć, o co powinieneś zapytać. Chociaż pytania zależą od rodzaju twojego projektu oprogramowania, poniżej podajemy kilka ogólnych kroków do przygotowania:
- Zrozum specyfikację swojego projektu
Szukasz dewelopera, który zrozumie Twoje potrzeby, a jedynym sposobem na to, aby je zrozumiał, jest właściwe przekazanie przez Ciebie specyfikacji projektu. Najlepszym sposobem na jasne zrozumienie projektu jest czytanie i przeglądanie dokumentacji.
- Poznaj swój budżet
Każdy inżynier oprogramowania ma swoją własną cenę. Stawki zależą od stosu technologicznego, lat doświadczenia, lokalizacji i złożoności projektu.
- Zrozumieć swój termin
Znając swój termin, inżynier oprogramowania pomoże Ci również podać ogólny szacunek w oparciu o wymagania Twojego projektu. Ponadto, niektórzy inżynierowie oprogramowania nie radzą sobie dobrze pod presją, więc znajomość limitu czasowego również pomoże Ci zatrudnić odpowiedniego dewelopera.
- Przygotuj pytania na rozmowę kwalifikacyjną
Przygotuj pytania, które sprawdzą zarówno techniczne, jak i etyczne umiejętności dewelopera. Możesz poprosić doświadczonego dewelopera o pomoc w pytaniach technicznych, jeśli nie masz wystarczającej wiedzy.
Istnieją trzy fazy w zatrudnianiu inżyniera oprogramowania:
Faza I: Obejmuje podstawowe pytania dotyczące ich poprzedniej pracy i projektów
Faza II: Techniczny etap wywiadu, aby sprawdzić umiejętności techniczne dewelopera.
Faza III: Ostatnia część wywiadu i etap, w którym deweloper jest dozwolone zadawać pytania i wyprasować wszelkie zamieszanie.

Pytania na rozmowę z inżynierem oprogramowania
Po skróceniu listy kandydatów na inżyniera oprogramowania, nadszedł czas, aby przejść przez istotne pytania, aby zadać je podczas rozmowy kwalifikacyjnej. Pytania z tej listy to ogólne pytania dotyczące rozwoju oprogramowania, a nie specyficzne dla danego języka. Upewnij się, że przygotujesz tylko te pytania, które pomogą Ci zdobyć odpowiedniego człowieka do pracy w oparciu o wymagania Twojego projektu.
Pytanie wywiadowcze I: Wyjaśnij jeden ze swoich poprzednich projektów i jak go pomyślnie zakończyłeś.
To pytanie pozwala kandydatowi otwarcie omówić swoje poprzednie zadanie bez uwzględniania odpowiedzi technicznych. To pytanie służy kilku celom, po pierwsze, można wykryć, czy kandydat jest graczem zespołowym, czy nie. Pomaga również zrozumieć, jak radzą sobie z czasem, ich interakcje z kierownikami projektów i umiejętności zarządzania.
Pytanie II: Czy podczas pracy nad poprzednim projektem napotkałeś jakieś przeszkody i jak sobie z nimi poradziłeś?
To pytanie pomaga określić, jak kandydat radzi sobie z przeszkodami, opóźnieniami i wszelkimi innymi problemami, które mogą pojawić się podczas realizacji projektu. Powszechnym zjawiskiem w projektach oprogramowania jest natrafienie na przeszkody, w ten czy inny sposób, dlatego ważne jest, aby sprawdzić możliwości dewelopera w zakresie radzenia sobie z przeszkodami, które mogą się pojawić. Jeśli kandydat ma problemy z identyfikacją przeszkody w poprzednim projekcie, może to być zły znak.
Pytanie III: Czy zna Pan/Pani proces tworzenia oprogramowania Agile i czy przestrzega Pan/Pani tej zasady podczas tworzenia aplikacji?
Obecnie cały rozwój oprogramowania odbywa się zgodnie z zasadą agile. Zatem programiści powinni znać tę procedurę i ważne jest, aby zapytać w rozmowie kwalifikacyjnej, czy przestrzegają tego procesu.
IV pytanie wywiadu: Jakie są Twoje poglądy na temat wielowątkowości?
Wielowątkowość jest ważnym elementem rozwoju oprogramowania. Programiści używają tej koncepcji do poprawy wydajności aplikacji, używając różnych procesorów do uruchamiania fragmentów kodu. Wielowątkowość zapobiega również „zawieszaniu się” kodu podczas jego uruchamiania.
Pytanie V: Co sądzisz o testowaniu jednostkowym?
Testy jednostkowe, wraz z rozwojem sterowanym testami (TDD), są najczęściej uważane za najlepsze praktyki tworzenia oprogramowania. Zasada ta jest również stosowana w utrzymaniu kodu. Testy jednostkowe to dodatkowy kod, który testuje różne metody i procesy pod kątem wad kodu i błędów logicznych, eliminując błędy, które mogłyby zostać wyeksportowane na produkcję.
Ta koncepcja powinna być w zasięgu ręki każdego dewelopera i kluczowe jest określenie podczas rozmowy kwalifikacyjnej, czy kandydat zna ją i jest skłonny nadać jej priorytet w projekcie.
Pytanie VI: Co to jest MVC?
MVC to po prostu technika rozdzielania kodu na jego własne gniazda, jako że M oznacza Model, V – widok, a C – kontroler.
Pytanie kwalifikacyjne VII: Czy znasz się na analizie i projektowaniu OOP?
OOP czyli Programowanie Obiektowe jest podstawą prawie wszystkich głównych języków programowania takich jak C++, Java, C# i VB. W związku z tym, najlepszy programista powinien być bardzo dobrze zaznajomiony z OOP.
Pytanie VIII: Jak organizujesz swoje zasoby i moduły klas?
To pytanie sprawdza sprawność kandydata w organizowaniu swojego kodu. Choć nie ma spisanej na kamieniu reguły organizowania zasobów i modułów klas, warto wiedzieć, jak kandydat organizuje swój kod i czy można go łatwo utrzymać.
Pytanie IX wywiadu: Co to jest ORM?
ORM to skrót od object-relation mapping i jest techniką używania kodu w taki sposób, że może on mapować się na tabele bazy danych. Praktyka ta przekształca tabelę we własne klasy, które programiści mogą wykorzystać do zapytań LINQ. Kandydat powinien wykazać się wiedzą w zakresie różnych frameworków ORM, takich jak Hibernate.
Pytanie X: Jaka jest Twoja metoda identyfikacji błędu w aplikacji? Ile czasu poświęcasz na debugowanie?
Pierwsze pytanie pozwala zrozumieć, jak kandydat rozumuje podczas pracy z trudnymi błędami. Każdy programista ma inny sposób na znalezienie i poradzenie sobie z błędami, niemniej jednak musi używać narzędzia do debugowania.
Drugie pytanie podkreśli, jak często deweloper debuguje swój kod. Jeśli zużywa dużo czasu na debugowanie, to będzie potrzebował dodatkowej pomocy w dopracowaniu kodu, który pisze.

Wnioski
Podczas rozmowy z kandydatem na inżyniera oprogramowania, dobrze jest zacząć od ogólnych pytań przed nurkowaniem do technicznych. Jeśli masz ograniczoną wiedzę na temat inżynierii oprogramowania, możesz poprosić kogoś o pomoc w technicznych częściach wywiadu, może starszy inżynier oprogramowania.