Zachowaj spokój i przejdź do nowego zespołu programistów
Opublikowany: 2022-03-11Często zdarza się, że oprogramowanie przechodzi z jednego zespołu programistów do drugiego w trakcie swojego życia. Różne etapy produktu mogą wymagać innego rodzaju zespołu programistycznego: konsultanta w celu zbudowania początkowej wersji, samodzielnego niezależnego programisty do jego utrzymania, wewnętrznego zespołu, który zajmie się skalowaniem, lub profesjonalnego projektanta, który doda trochę „ Muzyka pop".
Pomimo tego, jak często się to zdarza, wielu nietechnicznych założycieli i właścicieli produktów jest nieprzygotowanych i miesza się, gdy przychodzi czas na powołanie następnego zespołu. Często skutkuje to niezdolnością nowego zespołu do robienia szybkich postępów, stratą czasu i frustracją wszystkich zaangażowanych osób.
Jeśli brzmi to tak, jakby to mógł być ty, teraz lub w przyszłości, powinieneś być nieco zaniepokojony. Na szczęście przejdziemy przez kroki, które możesz podjąć, aby przygotować się na taką ewentualność i sprawić, by przejście było jak najbardziej płynne.
Przekazywanie pochodni: dołączanie do nowego zespołu programistów
W tym artykule przedstawię Ci listę kontrolną elementów, które pomogą Ci przygotować się na taką zmianę. Poznasz swój produkt na bardziej intymnym poziomie i uzyskasz większą kontrolę nad wszystkimi różnymi usługami i technologiami, które go tworzą, co pozwoli Ci na wejście do nowego zespołu z pewnością i względną łatwością.
Ale co, jeśli nie zastąpisz całego zespołu? Czy powinieneś zawracać sobie głowę czytaniem tego?
Nawet jeśli część poprzedniego zespołu pozostanie na pokładzie, mogą nie mieć wszystkich odpowiedzi i informacji potrzebnych do płynnego przejścia. Chociaż mogą zapewnić ciągłość i pomoc w procesie transferu wiedzy ze starego zespołu do nowego, poleganie na dotychczasowych członkach zespołu nie zastąpi przejęcia i ułatwienia transferu przez właściciela produktu. Ponadto brak przejęcia może powodować tarcia między starymi i nowymi członkami zespołu lub obciążać starych członków zespołu niepotrzebnymi zadaniami, zmuszając ich do marnowania zbyt wiele czasu na komunikowanie się z nowymi członkami zespołu i rozwiązywanie różnych problemów.
Mimo to, jeśli niektórzy członkowie zespołu pozostaną na pokładzie, mogą być nieocenionym atutem w twoich wysiłkach związanych z przejściem. Skonsultuj się z nimi, informuj ich na bieżąco i staraj się wykorzystać ich doświadczenie bez zasypywania ich zbyt wieloma zadaniami związanymi z przejściem. Nie oczekuj od nich, że zrobią cały ten ciężar! To twoja praca.
Więc bez zbędnych ceregieli, zanurzmy się!
Zbierz dokumentację
Deweloperzy freelancerzy są często proszeni o wskoczenie do istniejącej bazy kodu, której nigdy wcześniej nie widzieli. Dotyczy to zwłaszcza inżynierów oprogramowania firmy Toptal. Naszym celem jest zawsze jak najszybsze nabranie tempa, abyśmy mogli zacząć wywierać pozytywny wpływ na naszych klientów.
Dostęp do przejrzystej, dokładnej dokumentacji dotyczącej projektu może znacznie przyspieszyć proces wdrażania i pomóc programistom uniknąć pułapek, które mogą utrudniać postęp.
Dobra dokumentacja musi obejmować przynajmniej następujące tematy:
- Konfigurowanie środowiska programistycznego — pierwszym zadaniem każdego nowicjusza jest uruchomienie aplikacji na własnych komputerach. Proces robienia tego różni się w zależności od technologii. Ogólnie rzecz biorąc, wymaga takich zadań, jak pobieranie kodu źródłowego, konfigurowanie bazy danych, instalowanie zależności, konfigurowanie środowiska za pomocą kluczy API i poświadczeń, importowanie przykładowych danych i tak dalej. Deweloperzy mają dobry pomysł na wszystko, co jest związane z tym procesem w swoich dziedzinach i powinni być w stanie odpowiednio dostosować szczegóły.
- Uruchamianie zautomatyzowanego zestawu testów — sprawdzenie, czy testy aplikacji zakończyły się pomyślnie, zapewnia, że wszystko zostało prawidłowo skonfigurowane i że przyszłe zmiany nie spowodują naruszenia żadnej z istniejących funkcji.
- Wdrażanie na serwerach pomostowych i produkcyjnych — Aktualizowanie działającej aplikacji za pomocą najnowszych zmian jest procesem o dużej liczbie skryptów, a kolejność tych operacji powinna być nakreślona krok po kroku, tak szczegółowo, jak to możliwe.
- Wszelkie inne informacje, które są istotne dla nowo wprowadzonego programisty — każda aplikacja ma swój własny zestaw dziwactw. Zapisanie tych danych oszczędza przyszłym zespołom wiele zmarnowanego wysiłku związanego z debugowaniem problemów, z którymi poprzedni zespół już wymyślił, jak sobie z nimi radzić.
Dokumentacja powinna być napisana przez programistę, który ma doświadczenie z pierwszej ręki w konfigurowaniu aplikacji i przyczynianiu się do tworzenia bazy kodu.
Zanim nastąpi jakiekolwiek przejście, poproś poprzedni zespół programistów o ułatwienie transferu wiedzy poprzez stworzenie zasobu poruszającego powyższe tematy!
Jeśli pisanie nie jest ich mocną stroną, poproś ich o nagranie jednego lub więcej screencastów demonstrujących konfigurację środowiska programistycznego, wdrażanie itp. Obecnie istnieją nawet takie narzędzia, jak Vagrant i Docker, które umożliwiają spakowanie i dystrybucję całych środowisk programistycznych do innych. W istocie, zamiast dawać komuś wskazówki, jak zbudować młot, daj mu sam młot.
Papierkiem lakmusowym tego, jak wszechstronna i skuteczna jest dokumentacja projektu, jest to, jak szybko nowy programista może skonfigurować swoje środowisko programistyczne i uruchomić Twoją aplikację.
Zrozum swój produkt
Posiadanie doskonałej dokumentacji nie zwalnia od konieczności poznania podstaw technologii własnego produktu. Jako właściciel oprogramowania, Twoim obowiązkiem jest zrozumienie aplikacji najlepiej jak potrafisz, nawet jeśli nie jesteś zbyt techniczny.
Poniższe pytania są częste i powinieneś znać odpowiedzi bez konieczności ich wyszukiwania:
- Z jakiego stosu technologii korzysta Twoja aplikacja? - Istnieje wiele typowych frameworków aplikacji dla back-endu i front-endu, a każdy nowy zespół programistów powinien znać te, z których korzysta Twoja aplikacja. Niektóre przykłady technologii internetowych zaplecza to Ruby on Rails, Node.js i Django. Niektóre przykłady front-endowych technologii internetowych to React.js, Angular.js i Ember.js.
- Gdzie jest hostowany? - Różne hosty internetowe mają różne procesy wdrażania, które wymagają różnych poziomów doświadczenia. W ostatnich latach technologie chmurowe stworzyły wiele nowych opcji hostingu i będziesz musiał określić, którego konkretnego z nich używasz, i opisać, dlaczego został wybrany spośród innych.
- Jak wygląda proces rozwoju? - Czy Twój zespół korzysta z konkretnego narzędzia do zarządzania kontrolą źródła, takiego jak Git? Jeśli tak, jaki jest proces tworzenia, testowania, zatwierdzania i wdrażania nowej funkcji? Proces musi być ustandaryzowany, odpowiednio udokumentowany i łatwy do powielenia przez nowicjuszy.
- Z jakich usług zewnętrznych korzysta Twoja aplikacja? - Niektóre aplikacje są oparte na usługach innych firm, takich jak Shopify. Pamiętaj, że poleganie na usługach stron trzecich stopniowo rośnie i nawet jeśli obecnie nie korzystasz z żadnej dodatkowej usługi, Twój projekt może za jakiś czas zdecydować się na skorzystanie z usług stron trzecich.
- Na jakich platformach może działać Twoja aplikacja? - Czy Twoja aplikacja jest aplikacją komputerową, aplikacją internetową, responsywną witryną mobilną, natywną aplikacją na iOS, natywną aplikacją na Androida czy cokolwiek innego? Czy działa na kilku różnych platformach? Która platforma jest Twoim priorytetem w danym momencie? Na której platformie Twój produkt jest najsilniejszy i najsłabszy? Upewnij się, że znasz wszystkie szczegóły dotyczące aktualnych platform Twojej aplikacji, a nawet tych, na które można ją rozszerzyć.
Przejąć na własność
Dzisiejszy proces tworzenia oprogramowania wykorzystuje mnóstwo usług i narzędzi innych firm. Czy wiesz o tym, czy nie, Twoja aplikacja nie jest wyjątkiem.

W trakcie opracowywania Twój poprzedni zespół mógł zarejestrować się w Twoim imieniu lub nawet użyć własnych kont, aby uzyskać dostęp do potrzebnych usług. Przejście do nowego zespołu oznacza, że musisz przejąć na własność i mieć kontrolę nad wszystkimi usługami i narzędziami, na których opiera się Twoja aplikacja, aby móc przyznać dostęp nowemu zespołowi bez konieczności przechodzenia przez pośrednika lub ścigania oryginalni programiści.
Poniżej znajduje się lista różnych zewnętrznych narzędzi lub usług, z których może korzystać Twoja aplikacja:
- Zarządzanie kontrolą źródła — GitHub, Bitbucket, Gitlab
- Hosting - Heroku, EngineYard, Digital Ocean, Bluehost, Amazon Web Services
- Hosting plików — Amazon Web Services (S3)
- Dostawca DNS — GoDaddy, DNSimple, Hover
- Usługi programistyczne - NewRelic, FileStack, Segment, Bugsnag (i niezliczone inne)
- Usługi płatnicze — Stripe, Braintree, PayPal
- Usługi blogowe — WordPress, Tumblr, Ghost
- Rozwiązania e-commerce — Shopify, Squarespace
- Analityka / Śledzenie - Google Analytics, Mixpanel, Kissmetrics
- Marketing e-mailowy: MailChimp, stały kontakt
Zapytaj swój wychodzący zespół programistów, które z nich są odpowiednie. W przypadku wszelkich usług należących do zespołu programistów poproś go o przeniesienie własności na Ciebie. Jeśli nie jest to możliwe, poproś ich o pomoc w utworzeniu nowego własnego konta i upewnij się, że aplikacja używa Twojego konta zamiast ich. Nie powinno to wymagać niczego więcej niż zmiana niektórych ustawień konfiguracyjnych aplikacji.
Nie trzeba dodawać, że każda umowa deweloperska chroni Twoje interesy od pierwszego dnia i zapewnia płynne przejście, bez względu na wszystko.
Dostęp uznany
Dzięki solidnemu zrozumieniu ekosystemu Twojej aplikacji i własności wszystkich różnych narzędzi i usług, z których korzysta Twoja aplikacja, możesz teraz zapewnić pełny dostęp przychodzącemu zespołowi lub osobie.
Większość usług umożliwia dodanie współpracownika do swojego konta i przyznanie mu określonego poziomu dostępu. Tutaj można być konserwatywnym . wielu założycieli, zwłaszcza samodzielnych przedsiębiorców, woli dać swoim programistom pełny dostęp administracyjny do ich usług i pozwolić im zajmować się wszystkim. Ma to negatywny efekt uboczny polegający na trzymaniu się z dala od pętli, co, jak się dowiedzieliśmy, może utrudnić przejście w przyszłości.
Czy powinieneś dać swoim programistom pełne uprawnienia administratora? To twoja sprawa, a większość ludzi nie ma problemu z takim podejściem. Jednak zawsze musisz planować z wyprzedzeniem i upewnić się, że Twoja decyzja nie wpłynie negatywnie na nowy zespół programistów. Niezastosowanie się do tego na wczesnych etapach projektu może mieć denerwujące konsekwencje w przyszłości.
Zarządzanie przekazaniem
Teraz, gdy masz już zajęte wszystkie swoje bazy, będziesz musiał zarządzać przekazaniem z jednej drużyny do drugiej. Oto kilka podstawowych wskazówek dotyczących radzenia sobie zarówno z zespołem przychodzącym, jak i wychodzącym.
Nadchodzący zespół
- Ustal oczekiwania — nowy zespół powinien wiedzieć, jakie są Twoje najważniejsze cele, aby mógł skoncentrować się na właściwym kierunku. Równie ważne jest zarządzanie własnymi oczekiwaniami co do tego, co nowy zespół może osiągnąć od razu.
- Odprawiaj się często - nie zostawiaj nowej drużyny, aby zatonęła lub popłynęła. Chcesz często meldować się, aby upewnić się, że mają wszystko, czego potrzebują, i nie czujesz, że muszą radzić sobie sami. Spróbuj to zrobić bez mikrozarządzania. Upewnij się, że wiedzą, że jesteś tam, aby wesprzeć i pomóc, jeśli tego potrzebują, ale nie wywieraj na nich niepotrzebnej presji.
- Bądź cierpliwy — programiści potrzebują czasu, aby przyzwyczaić się do nowej bazy kodu. Zrozum, że minie trochę czasu na naukę, zanim nowy zespół będzie mógł dorównać tempu poprzedniego.
Zespół wyjazdowy
- Zbierz cały zaległy kod — upewnij się, że cały kod źródłowy jest zaewidencjonowany w głównym repozytorium i że znasz stan tego, co zostało lub nie zostało wdrożone. Nowy zespół będzie musiał dokładnie wiedzieć, gdzie odebrać i rozpocząć pracę. Sam doświadczyłem sytuacji, w której przejąłem zespół, który wdrożył kod bez umieszczania go w głównym repozytorium. Doprowadziło to do błędów, powielania pracy i problemów, których można było łatwo uniknąć, gdyby odchodzący zespół pozostawił kod źródłowy w spójnym stanie.
- Zaktualizuj ich poziom dostępu — jeśli rozstałeś się na dobrych warunkach, możesz pozostawić im dostęp do swojego kodu i/lub wdrożenia. Wiele zespołów chętnie pomaga w fazie przejściowej, dopóki nowy zespół nie będzie mógł w pełni przejąć kontroli. Jeśli nie, rozważ obniżenie poziomu lub cofnięcie dostępu, aby zapobiec przypadkowym problemom lub konfliktom z nowym zespołem.
- Podziękuj im za ich pracę - Przemiany mogą być gorączkowe. Kiedy zajmujesz się nowym zespołem, nie zapomnij podziękować odchodzącemu zespołowi za wkład w Twój projekt.
Wniosek
Każde przejście w życiu może być przerażające, niosąc niepewność, czy się uda, strach przed nieznanym i tak dalej. Przejście do nowego zespołu programistycznego nie różni się od tego, ale możesz i powinieneś podjąć kroki, aby to ułatwić. W większości przypadków wymaga to po prostu odrobiny długoterminowego planowania.
Posiadanie większej wiedzy technicznej i nietechnicznej na temat oprogramowania, procesu rozwoju i wszystkich rzeczy, które zostały uwzględnione w procesie, pomoże sprawić, by każde przejście z jednego zespołu do drugiego było tak płynne i bezbolesne, jak to tylko możliwe.
A co najlepsze, twój nowy zespół będzie cię szanował i dziękował za to, że jesteś na szczycie swojej gry! Prawdopodobnie zaoszczędzisz im czasu i wysiłku, co oznacza również, że zaoszczędzisz pieniądze. Ponadto im szybciej nowy zespół zda sobie sprawę, że kładzie się nacisk na wysokie standardy zawodowe, tym lepiej. Są szanse, że będą kontynuować wdrażanie tych praktyk po przejęciu projektu, dzięki czemu kolejne przejście również będzie płynne.
Przyjrzyjmy się zatem kluczowym punktom, które powinny poprzedzać przeniesienie własności oprogramowania:
- Zbierz lub utwórz jak najwięcej dokumentacji dotyczącej aplikacji, środowiska programistycznego i procesu wdrażania.
- Poznaj swój produkt od podszewki.
- Utrzymuj kontrolę nad wszystkimi usługami i zależnościami innych firm w swojej aplikacji oraz miej nazwy użytkownika i hasła do wszystkiego.
- Przygotuj się, aby dać nowemu zespołowi dostęp do wszystkiego, czego potrzebuje, aby zacząć działać.
- Bądź proaktywny i nie pozostawiaj niczego przypadkowi ani odchodzącemu zespołowi programistycznemu.