Porady dla programisty solo, którego zespół powiększy się w najbliższej przyszłości [zamknięte]

25

Od 4 lat jestem deweloperem solo dla małej firmy. Mamy garść dobrze ugruntowanych produktów w niszowej branży. Wkrótce będziemy zatrudniać 1-2 programistów, co prawdopodobnie zmieni sposób działania w tym miejscu.

Chociaż nie będę miał „prawdziwego” tytułu, będę „dowodził” tym zespołem. Chcę stworzyć bardzo zorganizowany i produktywny dział programowania dla mojej firmy. Pracę solową dostałem zaraz po studiach, więc chociaż jestem programistą w tej branży, brakuje mi doświadczenia w programowaniu zespołowym. Wydaje mi się, że kluczem będzie start na prawej stopie.

W tej chwili to tylko ja, kilka komputerów i serwer SVN. Szukam jakichkolwiek ogólnych wskazówek dotyczących budowania zespołu od podstaw.

bufferz
źródło
Jedną z rzeczy, w których brakuje dobrych odpowiedzi, są: instrukcje, w jaki sposób nowi programiści skonfigurują swoje nowe środowisko programistyczne. Np. Pobierz ten zestaw SDK, zainstaluj IDE, zainstaluj FooTest, skonfiguruj klienta YourSQL, pobierz te skrypty kompilacji i umieść je tutaj, skonfiguruj NPM lub pip lub Maven, Webpack lub cokolwiek ... Powinieneś utworzyć pierwszy szkic, a następnie pozwolić swojemu pierwszemu wypróbuj przetestuj i edytuj.
user949300,

Odpowiedzi:

14

Uporządkuj swój dom i upewnij się, że wszystko jest gotowe do wspólnego wysiłku.

  • Kontrola wersji - wspomniałeś, że masz już serwer SVN, co jest świetne. Upewnij się, że ustanowiłeś repozytorium i zorganizowałeś projekty w ustandaryzowany sposób.
  • Zautomatyzowane kompilacje
  • Oprogramowanie do śledzenia problemów / błędów
  • Testy jednostkowe / integracyjne
  • Serwer Continuous Integration

Zainstalowanie następujących elementów i zintegrowanie ich z procesem programowania znacznie ułatwia zaangażowanie ludzi, śledzenie tego, co się dzieje, i zapobieganie „bałaganowi”.

Mads Hansen
źródło
Chociaż wszystkie odpowiedzi na to pytanie są świetne, to jedno jest najbliższe temu, czego szukam. Dzięki Mads.
bufferz
Mam propozycję dodania: Code Review. Pomoże to nowym osobom nauczyć się systemu, pomoże ci zrozumieć nowy wkład i może uczynić każdego lepszym programistą. Skonfiguruj system za pomocą odpowiedniego narzędzia i sposobu myślenia, że ​​nie jest to przeciwnik, ale narzędzie do nauki, doskonalenia i wyjaśniania.
BrianH
Również wiki. I przyzwyczaj się do bardzo krótkich pętli sprzężenia zwrotnego. Zatwierdzenia będą się pojawiać co pięć minut, dostaniesz konflikty scalania. Będziesz musiał koordynować większe refaktoryzacje. I nie bój się puszczać, gdy inni nabierają prędkości, ale miej recenzje i programuj ddo pair, aby uniknąć rozbieżności. Och, i wyznaczyć jasne cele.
Alexander Torstling
Myśląc o tym, myślę, że najlepiej, aby ktoś bardziej doświadczony wskazywał ci drogę. Kodowanie solo i kodowanie zespołowe są tak różne, a metody, które działają, mogą być bardzo sprzeczne z intuicją dla solistów.
Alexander Torstling
11

zatrudnić kogoś o wiele bardziej kompetentnego niż ty

... oraz z doświadczeniem w dużym projekcie oprogramowania dla przedsiębiorstw.

Pomogą ci uprzemysłowienie procesów i zapewne wiele się od nich nauczysz.

Nauczysz ich swojego niszowego rynku.

Jeśli nie możesz znaleźć takiej osoby, proponuję udać się na szkolenia związane z zarządzaniem zespołem. Proponuję ci Scrum Certification jako starter.

Społeczność
źródło
6

Może to być oczywiste, ale upewnij się, że naprawdę polubisz pracę z nowymi pracownikami. Postaraj się zorganizować kilka piw, gdy oba zaczną próbować, aby zespół poczuł się jak jeden.

Musisz także uświadomić im, jakie standardy kodowania przestrzegasz, a także wszelkie popularne techniki, których używasz, tak jak w przypadku powtórzenia w bazie kodu.

W końcu wszyscy powinniście być w stanie wrócić do procesu i doskonalić się ... zakładając, że postępujecie zgodnie z innymi radami i zatrudniacie osoby posiadające umiejętności uzupełniające wasze.

Kevin D.
źródło
4

Bez prawdziwego tytułu będę „dowodził” tym zespołem.

Nie popełniaj błędu, pozwalając, aby twoje pragnienie / ambicja, aby „rządzić”, przeszkadzały. Jeśli Twoja firma zatrudnia programistów z większym doświadczeniem niż Ty, nowi pracownicy mogą być bardziej dopasowani do roli lidera zespołu niż Ty.

Waszą prawdziwą wartością dla zespołu i firmy jest głęboka znajomość produktów, które są obecnie wdrażane.

Stephen C.
źródło
4

Jest to bardzo podobne do sytuacji, w której byłem kilka miesięcy temu. Najlepszą radą, jaką mogę udzielić, jest porzucenie typowej pychy bycia programistą i zatrudnienie najlepszych z najlepszych, na jakie Twoja firma może sobie pozwolić.

Przez pewien czas byłem „odpowiedzialny”, ale zintensyfikował się członek zespołu z większym doświadczeniem i chętnie zrzekłem się obowiązków administracyjnych, dzięki czemu mogłem robić, co w mojej mocy, pisząc kod jakości. Nadal jestem mentorem zespołu, tak jak ty.

Jeśli w tej sytuacji zrobisz, co najlepsze dla firmy, zostaniesz nagrodzony.

Scott
źródło
4

Odbędą się gorące dyskusje techniczne: nowi programiści mają uprzedzenia, doświadczyli kilku sposobów robienia rzeczy, a gdy skonfrontowani z nowym sposobem, którego nie rozumieją, najpierw pomyślą, że to nie ma sensu i wymaga zmiany . Programiści, którzy pracowali samodzielnie przez lata, prawdopodobnie będą się bronić swojej pracy, a także ich praca będzie nieco idiosynkratyczna, ze względu na liczbę problemów, które rozwiązali bez omawiania rzeczy z innymi ludźmi.

Uważaj na te uprzedzenia, witaj nowy wkład, nie bądź zbyt defensywny i nie podejmuj pochopnych decyzji, aby wszystko zmienić.

Praca w zespole ma wiele dobrych stron, zwłaszcza przeglądanie kodu przez kolegę. Nalegaj na to od samego początku dla wszystkich członków zespołu, w tym dla ciebie.

RemcoGerlich
źródło
2

Jako starszy programista będziesz potrzebować menedżera i zaczniesz przyglądać się zasadom obowiązującym w Twojej firmie. (szczególnie takie elementy, jak prawo do urlopu, procedury zwolnień lekarskich i postępowanie dyscyplinarne, chociaż mam nadzieję, że nigdy nie będziesz go potrzebować)

Teraz, w zależności od nowych umiejętności i umiejętności związanych z zatrudnieniem, zacznij delegować niektóre aspekty swojej obecnej pracy, będziesz potrzebować czasu na zarządzanie priorytetami i planowanie.

Dobrym źródłem prostych i podstawowych umiejętności zarządzania na temat tego, co robić i jak profesjonalnie jest http://www.manager-tools.com . Robią regularne podcasty na temat zarządzania i doradztwa zawodowego, nie wspominając o pokaźnym katalogu dla Ciebie.

GrumpyMonkey
źródło
1

Wiele podanych wskazówek jest znakomitych, chciałbym tylko dodać kilka z mojego doświadczenia w podobnej sytuacji.

  1. Weź udział w podejmowaniu decyzji o zatrudnieniu i nie bój się zawetować kandydatów, którzy nie są. Będziesz musiał ściśle współpracować z zespołem, który będzie reprezentował twoich klientów i kierownictwo.
  2. Ustanów kulturę uczciwości z członkami swojego zespołu i oczekuj od nich uczciwości, szczególnie w trudnych sytuacjach.
  3. Naucz się delegować, a następnie skupić się na rozwiązaniach, a nie przetwarzaniu.
Eric Kigathi
źródło
0

Książka Brownfield Application Development w .Net zawiera kilka pomysłów, które moim zdaniem powinny pomóc. Część porad dotyczy tego, jak skonfigurować rzeczy, aby były powtarzalne dla członków zespołu i na przestrzeni czasu.

Tangurena
źródło