Jak się pracuje w 3e

Przyjacielska atmosfera i ambitne projekty

Narzędzia

W kwestii sprzętu nowi pracownicy mogą liczyć na mocny laptop i 22 calowy monitor. W przypadku narzędzi programistycznych dla warstwa danych, używamy PostgreSQL lub MySQL, a w przypadku wymagających projektów Oracle. Kod jest wersjonujemy za pomocą GitLaba z merge-ami, które robią wybrani developerzy. W każdym projekcie wykorzystujemy serwer ciągłej integracji. Testy jednostkowe są wykonywane przy pomocy JUnit lub PHPUnit a testy manualne są automatyzowane za pomocą Selenium.

Programiści Java używają Netbeans lub Eclipse. Tu stos technologiczny oparty jest o Spring Framework, Spring MVC, Thymeleaf oraz JPA.

Koderzy PHP używają preferowanego IDE (Netbeans, PHPStorm), przy czym większość projektów oparta jest o nasz framework będący pochodną Yii.

Jakość

Wierzymy, że podstawą dobrego kodu jest wyczerpująca specyfikacja i mające szerokie pokrycie scenariusze testowe. Dlatego też korzystamy z najlepszych praktyk Test Driven Development, stosujemy wspomniany wyżej serwer ciągłej integracji i wersjonujemy bazy danych. W naszym zespole są też dedykowani testerzy, którzy zgłaszają błędu w systemie Redmine. Więcej informacji na ten temat.

Organizacja

Firma zorganizowana jest w 2 oddziały po kilkunastu developerów. W każdym oddziale jest 2-3 kierowników projektów, którzy odpowiadają za kontakt z klientami, dystrybucję zadań i monitorowanie harmonogramu. Kierownicy raportują do zarządu, który nadzoruje projekt i odpowiada za sprzedaż, sprawy organizacyjne, ale również i za architekturę tworzonego oprogramowania.

Codzienna praca

Programiści pracują w dwóch rodzajach projektów: projektach wdrożeniowych i utrzymaniowych. Pierwsze dotyczą rozwoju nowego, dedykowanego oprogramowania, które kończy sie wdrożeniem. Drugi rodzaj to zarówno zapewnienie ciągłości działania oraz wprowadzanie zmian w istniejących systemach. Nie jesteśmy ortodoksyjni jeśli chodzi o metodyki i stosujemy wybrane z nich najlepsze praktyki ze znaczącą przewagą metodyk zwinnych (Agile), a w szczególności Scrum-a. Harmonogram każdego projektu jest dzielony na iteracje, które trwają 2-3 tygodni i kończą się działającą wersją.

Full-Stack czy Specjalizacja?

Przede wszystkim umiar. Obecnie stanie się Full Stack Developerem jest niezwykle trudne. W 3e uważamy, że każdy programista powinien mieć swoją główną technologię, w której czuje się pewnie. Z uwagi na to, że projekty, które realizujemy składają się z wielu komponentów uważamy, że dobrze jest też mieć porządne podstawy w innych obszarach.