Czego może spodziewać się początkujący programista (Symfony2) w pierwszej pracy w zespole?
Załóżmy zaczynam pracę wg ogłoszenia, gdzie w wymaganiach mówi się o 2 letnim doświadczeniu z:
-Symfony2
-Git
-Doctrine
-(twig, html, css, mysql)
Czego mam się spodziewać w kwestii organizacji pracy, podziału obowiązków.
Jakie przykładowe zadania daje się takim nowicjuszom w pierwszych tygodniach, miesiącach? Oddzielny mały projekt do samodzielnej pracy, czy małe zadania w dużych projektach? Nie bardzo widzę, by starzy programiści mieli dzielić się swoimi obowiązkami z nowicjuszem, którego styl i umiejętności są zagadką.
Czy to jest zwykle jedno pomieszczenie, dla całego zespołu z fruwającymi pytaniami, pomysłami czy odizolowane pomieszczenia, a może praca w domu i spotykanie się z zespołem 2 razy w tygodniu?
Wiadomo, że to zależy od tego i owego, że wszędzie inaczej.
Wiem, że aż prosi się, by ponabijać z autora tematu, ale mimo wszystko proszę o w miarę poważne i łagodne potraktowanie.
Może jakieś blogi o tym, artykuły, książki? Workflow, to jest to słowo do google?
podejrzewam ze nie ma jdenego starndardu, wszystko zalezy od danej firmy, ja na poczatku musialem:
- przygotowac swoje stanowisko pracy (oczywiscie nie bylem pozostawiony sam sobie),
- w kolejnych dniach zapoznac sie z kodem projektu (rozqijamy tylko jeden projekt),
- a pozniej dostawalem pierwsze proste zadania, z czasem coraz trudniejsze
heh czas szybko leci dzisaj to ja w firmie szacuje czasochonnosc zadan i rodzeilam je programistom ;p
Drogi przyjacielu,
Jako osoba, która pracowała w różnych firmach o różnej organizacji, powiadam Ci - wszystko zależy od firmy.
Ale na 99% wszystko zależy od projektu. Gdy firma ma duży projekt, wtedy wcielają Cię po prostu do zespołu. Jeśli projekt jest malutki, wtedy mogą dać Ci cały projekt - choć na starcie to raczej mało prawdopodobne, bo firma nie zleci nowemu materiałowi, którego jeszcze nie poznali, wykonania zadania od A do Z, stawiając swoją reputację na szali.
W większych firmach przeważnie pracuje się w metodykach zwinnych, poczytaj sobie o Agile, Scrum, Kanbanie, Sprintach, Standupach, Retrospekcjach itd.
I pamiętaj - nawet gdyby projekt miał być ogromniaście ogromny, wtedy i tak robi się go wdrażając jedną funkcjonalność po drugiej, małymi kroczkami. Więc jako nowicjusz na początku pewnie byś dostawał jakieś proste zadania, później coraz trudniejsze - choć wcale nie musi tak być. Ktoś może Cię po prostu zapytać - "Kolego, zajmiesz się tym?".
I pamiętaj - jeśli masz z czymś problemy, to od razu idź po pomoc, nie bój się pytać innych, odbierz to jako konsultacje z profesjonalistami.
Najgorsze co możesz zrobić to... powiedzieć, że poradzisz sobie z jakimś zagadnieniem, gdy wiesz, że tego aktualnie nie jesteś w stanie zrobić, a następnie mówić wszystkim, że jest OKAY, kiedy tak naprawdę siedzisz cicho przy kompie i szukasz na google rozwiązania. To najgorsze co możesz zrobić. W zespole liczy się komunikacja, jeśli widzisz w czymś problem, to od razu gadasz o tym z kolegami i informujesz kierownika projektu/managera/przełożonego/osobę odpowiedzialną za projekt, że jest problem i że coś zajmie sporo dłużej.
Co do work-flowu.
Pracując według "Agile'a".
1. Przed projektem jest planowanie. Wtedy cały zespół się zbiera, przychodzi Analityk Biznesowy (osoba, która gadała z klientem i wyciągnęła czego klient chce), a następnie mówi co będzie trzeba zrobić. Tutaj wyznacza się rzeczy do zrobienia w określonym czasie. Np. Ustala się, że w ciągu tygodnia zrobi się rzecz X, Y, Z. Następnie ten okres czasu nazywa się "sprintem".
Później rzeczy X, Y, Z rozpisuje się na pojedyncze taski, typu: "przygotować schemat bazy danych", "stworzenie widoku dla strony głównej", itd. Głównie tworzy się "zadania", które nie powinny zajać dłużej niż 1 dnia. Na planowaniu ustala się także, kto ma się czym zająć.
2. Po planowaniu programiści zbierają swoje tyłki z sali konferencyjnej (tam przeważnie się planuje), następnie idą do swoich stanowisk i zaczynają pracować. Każdy wie co ma zrobić w danym dniu i to robi, aż do końca dnia.
3. Następnego dnia, rano, są tak zwane "stand upy", "daily", kiedy to zespół spotyka się rano i każdy na szybko streszcza co zrobił poprzedniego dnia, jakie spotkał problemy i co planuje zrobić dalej. Wszyscy na "stand upie" informują się nawzajem co zrobili itd. I tak sobie mijają dni, aż do końca sprintu, kiedy to następuje "code freeze" (wtedy wszyscy przestają wdrażać nowe funkcjonalności i jedynie poprawiają bugi).
4. Następnie jest "demo", czyli kontaktuje się z klientem, przedstawia mu to co zostało zrobione (prezentacja jest przeważnie zdalnie prowadzona).
5. Po spotkaniu z klientem następuje retrospekcja, czyli zespół spotyka się w sali i każdy mówi co poszło dobrze, co źle, jak można to poprawić. Każdy przedstawia swoje propozycje, następnie jest głosowanie, najlepsze propozycje są spisywane i próbuje się ich trzymać w następnym sprincie.
I znów... następnego tygodnia jest Planowanie, kodowanie, codziennie "stand upy", później code freeze, demo i retrospekcja.
Co do samej pracy - są różne oprogramowania do zarządzania projektami, bardzo popularna jest Jira i Confulence. Tam przechowuje się informacje dotyczące projektu, a także zapisuje wszystkie taski i aktualizuje dane kto pracuje nad czym (masz tabelkę typu "to do", "doing", "in testing", "done" i przeciągasz sobie swoje taski odpowiednio).
Co do kontroli wersji - teraz prym wiedzie GIT oraz GitFlow (jeden ze sposobów korzystania z Gita). Wystarczy, że poczytasz o "GitFlow" i będziesz wiedział wszystko o tym, jak się zarządza kodem).
Mam nadzieję, że te informacje coś Ci powiedzą.
Przy okazji - z powyższego sytemu nie korzystają wszystkie firmy, są takie, które mają swoje prawa, lub swoje "bezprawie". Pracowałem w kilku firmach (na początku mojej kariery), gdzie tak naprawdę była kompletna samowolka, po prostu zebrali grupę programistów, którzy nie mieli ani doświadczenia, ani pojęcia o pracy zespołowej i przekazywali im projekty - i każdy ORAŁ jak MÓGŁ (i było zabawnie).
Także wszystko zależy od tego gdzie trafisz. ; )
dziękuję, solidne wyjaśnienia.
Bardzo to ciekawe i trochę przerażające. Średnio wierzę w siebie i zastanawiam się czy w takich zespołach jest miejsce dla kogoś kto nie wygrywał olimpiad matematycznych, kogo zadowoli te 3500 w zamian za cierpliwość przez kilka miesięcy i gwarancję nie wyrzucenia z pracy.
-----------------------------TEGO NIE CZYTAĆ---------------
(Chętnie bym widział siebie w takim zespole za 3 lata. Uczę się Symfony od 1,5 roku i ciągle mam wrażenie, że uczę się podstaw. Zrobiłem jakieś tam projekty w Symfony, ale np. temat DependencyInjection, CompilerPass zacząłem zgłębiać miesiąc temu. Wzorce projektowe od 3 miesięcy. Jakbym miał pytać o wszystko co wpisuję w google, to dostałbym w mordę pierwszego dnia i wywaliliby mnie po 3 dniach.
Ciągle biję się z myślami ja1 ("przygarbiony tchórz") mówi: daj se spokój, nie wychylaj się, ucz się spokojnie w domu, za 1,2 lata jak poczujesz, że jest czas to aplikuj, aplikujesz teraz wyjdziesz na debila, wywalą cię i nawbijasz sobie kompleksów i poddasz się; i ja2 ("jestem super") mówi: każdy dzień w takim zespole to 10x szybsze doświadczenie, przecież kiedyś ci wszyscy programiści musieli zacząć, kim jesteś? jesteś zwycięzcą!)
----------------------------------------------------
Dejmien_85 Mam dodatkową prośbę byś podał mi kilka przykładowych zadań "na jeden dzień". Chciałbym wiedzieć ile mi brakuje bym mógł aplikować o pracę.
Domyślam się, że zwykle 'Tomek' w każdym projekcie robi mapowanie w doctrine, 'Romek' w Twigu, 'Marek' zawsze robi autoryzację i każdy z nich szybciej robi to czym zajmuje się częściej (a może się mylę?), ale tak uśredniając bardzo będę wdzięczny o przykłady zadań na jeden dzień.
yo, takim mysleniem narnujesz czas, idz odrazu do firmy jako junior, wszystko co sobie wyobrazasz w glowie to tylko wyobrazenie oderwane od rzeczywistosci. Dwie najwazniejsze rzeczy juz masz pokore i chec uczenia sie, pewnosc siebie przyjdzie wraz z doswiadczeniem. Powodzenia.
dzięki.
Cześć, chciałbym odświeżyć temat, mógłby ktoś tak przykładowe "taski" opisać tak jak pytał poprzednio. Mnie głównie interesuje Front-end ale może być z innych języków.
Dejmien_85 Mam dodatkową prośbę byś podał mi kilka przykładowych zadań "na jeden dzień". Chciałbym wiedzieć ile mi brakuje bym mógł aplikować o pracę.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)