Cześć,
Mam do was pytanko na temat metodyk pracy w waszych firmach.
Moja firma to typowa agencja. Mamy dużo małych projektów ze znikomym ruchem i kilka takich z dziesiątkami tysięcy odsłon dziennie. Przy tych małych pracują mniej doświadczeni programiści a przy tych większych ci bardziej doświadczeni. W mojej pracy zarówno do tych małych jak i dużych projektów tworzonych przez początkujących i zaawansowanych programistów stosuje się taki sam workflow. Gdy chcemy zrobić deploy na produkcję to projekty wrzucamy na serwer testowy i zgłaszamy do działu QA. Dział QA sprawdza stronę i jak jest ok to wysyła to na produkcję. Taki standardowy, najprostszy z możliwych workflow.
Z pozoru taka metodyka wydaje się ok ale w praktyce rodzi to wiele problemów. Pierwszym z nich jest mizerna ilość deployów jakie możemy zrobić. Jest to 1 lub 2 na tydzień bo częściej nie wyrabia dział QA. Problem jest taki, że niezależnie od tego czy robimy nowy moduł w serwisie czy poprawiamy literówkę musi przejść to przez dział QA. Czasami uda się dogadać z nimi aby nie testowali całej strony przy drobnych poprawkach ale zwykle są niechętni bo odpowiedzialność za niedziałający projekt na produkcji spada na nich. Ja natomiast uważam, że to wyjątkowo nieprofesjonalne, że klient musi czekać od kilku godzin do kilkunastu na poprawkę literówki na stronie.
Drugim problemem jest kiepska współpraca z adminem. Jeśli chcemy zajrzeć do logów albo jest jakiś krytyczny błąd a nie ma admina nic nie możemy zrobić. Ostatnio wyłapaliśmy na jednej ze stron bardzo poważny błąd po godzinie 17. Żeby go zdebugować potrzebowałem dostępu do logów Symfony i musieliśmy z tym czekać do rana aż przyjdzie admin. Klient nie był zbyt szczęśliwy.
Osobiście uważam, że oba te problemy rozwiązało by kilka zmian, a przede wszystkim:
-
VPS per projekt (np. Docker) z dostępem dla programistów do sytuacji awaryjnych albo przynajmniej konta z dostępem do plików projektu na serwerze dla programistów którzy pracują nad projektem.
-
Możliwość pominięcia działu QA dla prostych przypadków pod warunkiem zaimplementowania do projektu testów automatycznych (Yahoo np. zrezygnowało całkiem z QA na rzecz testów automatycznych).
Mi się wydaje, że powyższe zmiany są bezpieczne i z tego co widzę całkiem popularne wśród firm IT. Wystarczyłoby tylko kontrolować, czy nikt nie nadużywa dostępów ale w mojej firmie osoby decyzyjne w IT są przeciwko bo: "kiedyś ktoś miał dostęp i popsuł". Mam wrażenie, że bardziej skupiają się na chronieniu swoich tyłków niż na pracy dla klientów.
Jestem ciekaw, czy może istnieją inne lepsze rozwiązania problemów o których pisze. Będę bardzo wdzięczny za wskazówki :)