Czy Facebook prowadzi programowanie par
Streszczenie:
W tym artykule omówię koncepcję programowania pary i jego prawidłowe wdrożenie. Odpowiem również na 15 unikalnych pytań związanych z programowaniem par, przedstawiając szczegółowe wyjaśnienia oparte na osobistym doświadczeniu. Programowanie par nie polega na szkoleniu, ale raczej o wspólne podejście, w którym senio. Skuteczne programowanie par może prowadzić do poprawy jakości komunikacji i kodu.
Kluczowe punkty:
- Programowanie par nie polega na szkoleniu, ale podejściem współpracy.
- Połącz starszych deweloperów z starszymi programistami i młodszymi programistami z młodszymi programistami.
- Skuteczne parowanie może nadal nastąpić między starszym i młodszym deweloperem.
- Połączenie ze stażystą może prowadzić do cennych doświadczeń edukacyjnych dla obu stron.
- Koncentracja kierownictwa na wydajności może stwarzać wyzwania w programowaniu par.
- Programowanie par powinno wydawać się być drugim pilotem, a nie kontroler ruchu lotniczego.
- Programowanie par nie jest równoważne mentoringowi.
- Para pozwala na natychmiastowe informacje zwrotne i pomaga zidentyfikować zbyt złożony kod.
- Ważna jest skuteczna komunikacja podczas programowania par.
- Obciążenie pracą powinno być udostępniane i obaj programiści powinni wnieść wkład.
- Rozmowy poboczne podczas sesji parowania mogą rozpraszać uwagę.
- Nie wszystkie problemy wymagają programowania par, a indywidualna praca może być konieczna.
- Programowanie par może trwać dłużej, ale zapewnia natychmiastową recenzję i współpracę.
- Młodsi programiści mogą nadal uczyć się poprzez programowanie par, ale wymaga wysiłku i skutecznej komunikacji.
- Pytanie i eksperymenty są niezbędne do skutecznego programowania par.
Pytania:
1. Co to jest programowanie par?
Programowanie par jest podejściem wspólnym, w którym dwóch programistów pracuje razem nad tym samym zadaniem.
2. Czy starsi deweloperzy łączą się z starszymi programistami i młodszymi programistami z młodszymi programistami?
Tak, łączenie starszych programistów z starszymi programistami i młodszymi programistami z młodszymi programistami zapewnia skuteczną współpracę.
3. Czy starszy deweloper może połączyć się z młodszym deweloperem?
Tak, choć nie jest idealny do celów treningowych, skuteczne parowanie może nadal nastąpić między starszym a młodszym deweloperem.
4. Jak połączenie ze stażystą może być korzystne?
Połączenie ze stażystą może zapewnić cenne doświadczenia edukacyjne obu stronom.
5. Jakie wyzwania mogą pojawić się w programowaniu par?
Koncentracja kierownictwa na wydajności może powodować wyzwania i stres w programowaniu par.
6. Jak powinno się czuć programowanie?
Programowanie pary powinno wydawać się być drugim pilotem niż kontrolerem ruchu lotniczego.
7. To programowanie par par równoważnych mentoringowi?
Nie, programowanie par nie jest równoważne mentoringowi. Jest to podejście oparte na równych równinach.
8. Jakie są zalety programowania par?
Programowanie par pozwala na natychmiastowe informacje zwrotne, pomaga zidentyfikować złożony kod i poprawia komunikację.
9. Jaki rodzaj komunikacji jest ważny w programowaniu par?
Skuteczna komunikacja, zarówno werbalna, jak i za pośrednictwem kodu, jest niezbędna w programowaniu par.
10. Jeśli jeden programista zdominuje sesję parowania?
Nie, obciążenie pracą powinno być udostępniane i obaj programiści powinni mieć równe możliwości wniesienia wkładu.
11. Jakie wyzwania mogą opierać rozmowy podczas sesji parowania?
Rozmowy poboczne mogą rozpraszać i odwracać skupienie się od podstawowego zadania.
12. Czy programowanie par są odpowiednie dla wszystkich problemów?
Nie, programowanie par może nie być odpowiednie dla wszystkich problemów, a czasem konieczna jest indywidualna praca.
13. Czy programowanie par trwa dłużej?
Programowanie par może potrwać dłużej niż samodzielne kodowanie, ale zapewnia natychmiastową ocenę i ułatwia współpracę.
14. Czy młodsi programistowie mogą uczyć się poprzez programowanie par?
Tak, młodsi programiści mogą uczyć się poprzez programowanie par, ale wymaga wysiłku i skutecznej komunikacji.
15. Jakie podejście jest niezbędne do skutecznego programowania par?
Pytające, eksperymentowanie i aktywnie uczestniczące są niezbędne do skutecznego programowania par.
Czy Facebook prowadzi programowanie par
Nie jestem pewien, jak obiektywnie odpowiedzieć na to pytanie. Czy możesz wyjaśnić problem, który próbujesz rozwiązać, pamiętając, że ta społeczność nie popiera subiektywnych pytań?
Jaki jest właściwy sposób na programowanie par?
Jest tak wiele historii, w których czuję, że koduję przez kogoś, a historia, która zajęłaby mi 30 minut, kończy się 3 godziny, zastanawiam się, czy im więcej młodych deweloperzy się uczą.
99K 23 23 złote odznaki 189 189 Srebrne odznaki 305 305 Brązowe odznaki
zapytał 22 lutego o 18:19
561 4 4 Srebrne odznaki 5 5 brązowe odznaki
Nie jestem pewien, jak obiektywnie odpowiedzieć na to pytanie. Czy możesz wyjaśnić problem, który próbujesz rozwiązać, pamiętając, że ta społeczność nie popiera subiektywnych pytań?
22 lutego o 18:54
Programowanie par != trening . Kiedy rozwijasz się w parze, powinieneś połączyć senior ze starszym i juniorem z juniorem. Podczas treningu powinieneś połączyć senior z juniorem
23 lutego o 9:21
Programowanie par != szkolenie jednak możliwe jest sparowanie seniorów i junior. Na pewno trening się wydarzy i spowolnie. Ale i tak się stanie. Nie oznacza, że skuteczna parowanie nie może się zdarzyć.
23 lutego o 15:16
Połączyłem ze stażystą, który nie miał pojęcia, jak działa nasz system. Musieliśmy porozmawiać z drukarką i mieliśmy kod, który wysłał drukarkę polecenie, które musiało zostać ponownie skompilowane za każdym razem, gdy zmieniłeś polecenie. Postanowiłem zamienić to w powłokę poleceń. Wyjaśniłem, co robię stażystom. Napisał przed sobą wersję Bare Bones. Zostałem wskazywał, gdzie działało, a ja byłem zmęczony i powiedziałem: „Chcę to zabrać stąd?” “Jasne!”Zrobił świetnie. Wypolerowałem to wtedy i tam.
23 lutego o 15:19
@Antigamer Wygląda na to, że twój główny problem nie jest spowolnieniem juniorzy. Jest zarządzanie nad stresowaniem produktywności. Nie mogę powiedzieć, czy to oni czy ty. Pamiętaj, że naprawdę nie mają pojęcia o technicznych rzeczach. Ale jeśli masz wrażenie, że osiągasz gorsze wyniki, zawsze jedzą i zakładają, że masz rację.
23 lutego o 15:26
6 Answers 6
Jeśli programowanie pary sprawia, że czujesz się, jakbyś był kontrolerem ruchu lotniczego, który próbuje porozmawiać o samolotu powietrznym, pilotowanym przez fidgety 12 -latka, robisz to źle.
Powodem jest to, że nie jesteś daleko od rozmowy w radiu. Jesteś tam i możesz zabrać klawiaturę w dowolnym momencie. Powinno wydawać się byciem drugim pilotem. Nie dajesz kontroli, ponieważ musisz. Robisz to, ponieważ możesz.
Programowanie par pary nie jest mentoring. Relacja nauczycielska jest bardzo różna od dwóch osób pracujących jako równa się, nawet jeśli ktoś ma znacznie więcej doświadczenia. Przyzwyczajanie się do parowania programowania wymaga czasu, więc nie martw się, jeśli na początku jest to niezręczne.
ekstremalne programowanie.ORG – Programowanie par
To, co musisz zrozumieć, to sens parowania. Nie jest tak, że możesz powiedzieć „Parowaliśmy”. To, że możesz komunikować się w swoim języku naturalnym: kod.
Niesamowite jest tutaj, że możesz wpisać linię kodu i zapytać: „Czy to ma sens?„To ciasna pętla z tyłu. Możesz rozwiązać, gdy kod jest zbyt sprytny.
„Przewiń w górę”, „Dodaj instrukcję konsoli”, „Przejdź do pliku x”, „Czy możesz napisać y po wierszu z”, itp.
Jeśli to wszystko, co powiesz, gdy parujemy się, po prostu weź klawiaturę już. Zamiast łyżka podaj mi spacer, powiedz mi, co się dzieje. Dlaczego to robimy. Jak mogłem to wiedzieć sam.
Opowiedz mi o tym. Nie bierz klawiatury, kliknij tajemnicze skróty klawiatury i spraw, aby magia się wydarzyła. Pokaż mi, jak działa sztuczka.
Nie tylko dyktuj cały program. Wykonaj pracę, którą mogę wykonać. Pozwól mi wskoczyć i być częścią tego. Do diabła, możesz mieć szczęście i nauczyć się czegoś ode mnie. Klawiatura powinna przesuwać się tam iz powrotem.
Rozmowy poboczne często pojawiają się podczas sesji parowania, odwracając uwagę od pracy
Och, poświęć chwilę i bądź człowiekiem. Przekonaj mnie, rozmawiam z kimś, kto uważa mnie za człowieka.
Rozwiązywanie złożonych problemów często trwa znacznie dłużej, ponieważ wielu inżynierów potrzebuje przestojów na głowę, aby faktycznie zaprojektować rozwiązanie
PRAWDA. Niektórzy potrzebują głowy w górę czasu spędzonym na wyrzucaniu ołówków na płytki sufitowe. Niektórzy potrzebują czasu gumowego kaczki (tablica dźwiękowa, jeśli jesteś z srebrnego zestawu włosów). Programowanie par nie jest dla każdego problemu przez cały czas.
- Wykonanie tego na połączeniu trwa dłużej i często powoduje paraliż analizy.
Tak, parowanie może potrwać dłużej niż samotne kodowanie. Ale jeśli robisz to dobrze, otrzymasz również natychmiastową nieformalną recenzję, a także niektóre z wspólnej współpracy.
Łatwe leczenie paraliżu analizy jest robienie czegoś głupiego i sprawia, że ludzie wyjaśniają ci, dlaczego to źle. Iternuj na ten temat, dopóki nie zabraknie ci złego.
Pytam, czy im bardziej młodsi deweloperzy faktycznie się uczą.
Pytaj dalej. Dowiedz się, co działa, a co nie. Nie ma tylko jednego idealnego sposobu na zrobienie tego. Ale robienie tego tylko dlatego, że powinniśmy to zrobić, jest zdecydowanie złe.
odpowiedział 22 lutego o 18:57
canded_orange candaied_orange
99K 23 23 złote odznaki 189 189 Srebrne odznaki 305 305 Brązowe odznaki
Łatwe leczenie paraliżu analizy jest robienie czegoś głupiego i sprawia, że ludzie wyjaśniają ci, dlaczego to źle. Iternuj na ten temat, dopóki nie zabraknie ci złego. To jest złoto. Działa w każdej sytuacji. Szkolenie TDD i umiejętności projektowania oddolnego, robienie wyzwań technologicznych w miejscu lub decydując między 2 filmami. Po prostu „zrób coś”, obróć koło i pozwól się ponieść bezwładności
22 lutego o 21:43
“Niesamowite jest tutaj, że możesz wpisać linię kodu i zapytać: „Czy to ma sens?”„I dlatego programowanie par jest całkowitą stratą czasu. Żaden kompetentny programista nie musi zapytać o jedną linię kodu. Musisz zapytać o cały spójny blok funkcjonalności, a nie jednej linii – i nie masz tego, dopóki programista nie zostanie zakończony. Opiera się całkowicie na przekonaniu, że programowanie jest głównym źródłem błędów w produkcie końcowym, co zostało szeroko udowodnione fałszywe przekonanie.
23 lutego o 8:53
@Graham często, pojedyncza linia Jest spójny blok. Czasami reprezentuje zmianę w jednym bloku i chcę wiedzieć, czy ma to sens w kontekście. Innym razem zrobiłem coś sprytnego, ale oczywistych i chcę wiedzieć, czy zasługuje to na szczegółowy czy krótki komentarz. Być charytatywnym!
23 lutego o 13:45
Ironia tutaj to ja’otrzymałem informacje zwrotne na jednej linii i życzę i’D otrzymałem wcześniej.
23 lutego o 14:12
@Graham Jestem naprawdę zainteresowany tym, co mówisz o błędach, które nie pochodzą przede wszystkim z kodu źródłowego – czy masz do tego cytowanie, ponieważ chciałbym dowiedzieć się więcej.
23 lutego o 14:21
Wspólnym wzorem jest to, że więcej starszych deweloper
Przede wszystkim programowanie par nie pociąga za sobą korepetycji lub mentoringu. Z wystarczającą nierównowagą stażu pracy, musisz zaakceptować, że część czasu jest spędzona szkolenie zamiast pracować. To powinno już zmienić twoje oczekiwania dotyczące natychmiastowych wyników.
Jeśli chcesz, aby programowanie pary było całkowicie skoncentrowane na dostawie, a nie na nauce, musisz sparować równych programistów z równym doświadczeniem lub tak blisko, jak to możliwe. Nie robisz tego, więc z natury idziesz do ścięgna seniorów (koniecznością jadącego juniora) lub musisz poinformować juniorów o pracy (ponieważ odbywa się to w tempie seniorów).
Zasadniczo kodowanie podczas patrzenia na zrzut ekranu. „Przewiń w górę”, „Dodaj instrukcję konsoli”, „Przejdź do pliku x”, „Czy możesz napisać y po wierszu z”, itp.
To nie jest programowanie pary, to dyktuje. Jest to zarówno nieproduktywne jako mechanizm dostawy (wymaga dwóch osób, aby śledzić jeden pociąg myślenia), jak i narzędzie do nauki (ślepo kopiowanie, jak ci powiedziano, nie wspiera zrozumienia).
Poważnie zastanowiłbym się nad stażem pracy dewelopera, jeśli są on w stanie skupić się tylko na rozwiązaniu problemu i nie są w stanie właściwie poprowadzić młodszego programisty. To jest wyróżniająca różnica między młodszym (może wykonywać pracę, ale potrzebuje nadzoru), Medior (może wykonywać własną pracę bez większego nadzoru) i profil seniorów (może wykonywać własną pracę i zapewnić inni nadzór).
Rozmowy poboczne często pojawiają się podczas sesji parowania, odwracając uwagę od pracy
Rozmowy niezwiązane z pracą miałyby miejsce, gdyby te dwie osoby były sąsiadujące bez programowania par, a zatem nie są istotne przy ocenianiu tej wartości programowania par.
Rozmowy związane z pracą są Dokładnie punkt programowania par; Pozwala parowi przekazać sobie swoją wiedzę i/lub pomaga im współpracować, aby nauczyć się czegoś, co jest dla nich nowe.
Rozwiązywanie złożonych problemów często trwa znacznie dłużej, ponieważ wielu inżynierów potrzebuje przestojów na głowę, aby faktycznie zaprojektować rozwiązanie – wykonanie tego na połączeniu trwa dłużej i często powoduje paraliż analizy.
Po pierwsze, nie nazywa się to projektowaniem pary. Nie możesz po prostu arbitralnie zrzucić te dwa razem.
Po drugie, programowanie pary nie pociąga za sobą, że oba zestawy oczu patrzą na to samo w tym samym czasie, cały czas i nic więcej. Starszy jest całkowicie możliwy, aby zrobić coś innego, niezależnie od tego, czy patrzy na projekt następnego zadania, czytanie dokumentacji, . podczas gdy junior wykonuje bardziej trywialne zadanie, w którym senior nie jest potrzebny lub jest w stanie jednocześnie żonglować obiema zajęciami.
Podstawa twojego pytania jest zdezorientowana. Wdrożyłeś system, ustrukturyzowałeś go w określony sposób i tylko wtedy Czy zacząłeś zauważać, że system tak naprawdę nie pomaga w rzeczach, które są dla ciebie ważne. To umieszcza wózek przed koniem.
Bardziej sensowne jest najpierw zrozumienie problemu, który próbujesz rozwiązać, a następnie szukać systemu, potwierdzić, że rzeczywiście rozwiąże problem, a dopiero wtedy zacznie go wdrażać.
odpowiedział 22 lutego o 22:25
41.6K 8 8 złotych odznaki 83 83 Srebrne odznaki 115 115 brązowe odznaki
„Po pierwsze, nie nazywa się to projektowaniem pary. Nie możesz po prostu arbitralnie zrzucić te dwa razem.” — Uważam, że to skłania do serca pytania OP. Nie każde zadanie lub interakcja jest odpowiednie do programowania par.
24 lutego o 15:38
Myślę, że dwóch pilotów w samolocie jest najbliższe, więc pomyślałem, więc miejmy przegląd, w jaki sposób rozwiązane są problemy, które rozwiązujesz. W lotnictwie są dwóch pilotów, leci pilot i monitorowanie pilota. Monitorowanie pilotów jest również w pełni na kursie i może przejąć kontrolę w dowolnym momencie. Działa to bardzo dobrze i jest mało prawdopodobne, nawet jeśli technicznie te samoloty mogą zostać latane przez jednego człowieka.
Nie jestem pilotem, jestem inżynierem oprogramowania z długim doświadczeniem. Ale kiedyś byłem dość aktywny na giełdzie stosów lotniczych, czytając zarówno pytania, jak i odpowiedzi opublikowane przez prawdziwych pilotów, więc pomyśl, że powinien być w stanie przedstawić jakiś przegląd. Może być dla nas przydatne.
Sterylny kokpit
Rozmowy niezwiązane z lotem są surowo zabronione w kokpicie. To samo powinno być między programistami pary. Tak proste jak to.
Decyzje
Niewielkie decyzje są podejmowane przez pilota latającego, ale piloci komunikują się podczas podejmowania większych decyzji. Piloci śledzą również listy kontrolne, które opisują wiele standardowych działań, które powinni podjąć. Jeśli coś pójdzie nie tak, piloci wyciągają listę kontrolną powiedzmy „niewiarygodne czytanie prędkości” i postępują zgodnie z długą dyskusją, które należy wykonać. Jeśli kapitan jest absolutnie pewien, ma priorytet szybkiego decydowania, nadmiernie nadmiernie reguł, wszelkie kierunki z wieży kontrolnej i bez dyskusji, ale nie jest to lekko zrobione. Kiedy kapitan zlekceważy instrukcje z wieży kontrolnej, musi natychmiast o tym powiedzieć.
Dlatego spodziewam się, że główny programista będzie miał prawo powiedzieć coś w stylu „Podejście X tworzy znacznie lepszy kod dokładnie tutaj, więc używamy go, nawet jeśli ogólne zasady wymagają czegoś innego”, ale nie powinno to nadejść zbyt często.
Dział pracy
Piloci dzielą czas, który każdy z nich kontroluje samolot mniej więcej jednakowo, ale istnieją trudne zadania, takie jak latanie 747 tylko z trzema silnikami lub lądowanie na lotnisku Heraklion, gdzie oficjalnie stwierdzono, że „kapitan musi zrobić latanie”. W przeciwnym razie obaj piloci są w pełni przeszkoleni i kwalifikowani do latania tym samolotem i nie potrzebują bardzo dogłębnego mikro-zarządzania.
Dlatego spodziewałbym się, że programista pary aktywny z kodem wpisuje i przewijał, jak chce, z innym po prostu obserwującym i ingerującym tylko wtedy, gdy ma godne uwagi do powiedzenia. Nie oczekuję też, że jeden z programistów zawsze będzie pisał, a inny po prostu zawsze ogląda.
Szkolenie kapitana
Wreszcie, aby lepiej zrozumieć rolę, nowy kapitan jest najpierw trenowany z innym, bardziej doświadczonym kapitanem, który jest „prawdziwym kapitanem” samolotu, ale podczas gdy lot idzie dobrze, gra rolę drugiego pilota. Następnie młody kapitan jest sparowany do latania z znacznie bardziej doświadczonym (przez godziny lotu) drugiego pilota. Tylko wtedy kapitan jest uważany za gotowy do latania z kimś, kogo może uznać za mniej zdolne.
Podwójne elementy sterujące
Samoloty zamierzone przez dwóch pilotów zwykle mają podwójne elementy sterujące. Aby podążać za tym wzorem, dobrym pomysłem jest podłączenie przynajmniej drugiej myszy, jeśli nie klawiatura. To pozwala bardzo szybko przejść „jazdę” między deweloperami.
Czy Facebook prowadzi programowanie par
Оjed
Ыы зарегистрир John. С помощю этой страницы ыы сожем оRipееделить, что запросы оRтравляете имено ыы, а не роvert. Почем это могло пRроизойиS?
Эта страница отображается тех слччаях, когда автоматическими системамgz которые наршают усовия исполззования. Страница перестанеura. До этого момента для исползования слжжж Google неоtoś.
Источником запросов может слжить ведоносное по, подкbarów. ыылку заRzy. Еarag ы исползеете общий доступ и интернет, проблема может ыть с компюююеyn с таким жж жж жесом, кк у комszczeюююе000. Обратитеunks к соем системном адинистратору. Подроlit.
Проверка по слову может также появаятьenia, еaсли ы водите сложные ззапры, оind обычно enia оиизи инenia оtoś еами, или же водите заlektora.
Facebook i mit indywidualnej kultury kodowania
Uruchomiliśmy nowy codzienny biuletyn e -mailowy! Możesz teraz otrzymywać bezpłatne podsumowanie najnowszych artykułów TNS w swojej skrzynce odbiorczej każdego dnia. Zarejestruj się teraz, nigdy nie przegap historii, zawsze pozostań w samym znaczeniu.
W ostatnim poście na temat kultury inżynierii inżynier oprogramowania na Facebooku Pierre Raynaud-Richard udostępnił spostrzeżenia na temat tego, jak gigant mediów społecznościowych’S CULTY SEV Współpracuje współpracę i zachęca do dumnego kodu, który tworzy.
Kluczowe dla Raynaud-Richard’T Traktat jest jego obaleniem ‘Poszczególne własność kodu’ Mantra. “Wiele firm programistycznych wierzy i praktykuje “Poszczególne własność kodu.” To może nie brzmieć tak jak tak podstawowa zasada, ale w rzeczywistości znacznie przyczynia się do określenia, jak działa organizacja oprogramowania,” pisze Raynaud-Richard.
Podczas gdy na pierwszy rzut oka podejście wydaje się zachęcać ekspertów wewnętrznych z dumą tworząc lepiej pisemny, mniej buggy kod, faktyczny wpływ wielu firm polega na tym, że osłabia innowacje i rozwój umiejętności programistów Wilts programistów. Raynaud-Richard twierdzi, że podejście zniechęca do innowacji firmy, ponieważ programiści faworyzują status quo: z czasem bronią podstawy kodu, którą zbudowali i mają niejawne uprzedzenie, niezdolne do dostosowania się do nowych możliwości lub wyzwań wymagających radykalnej zmiany kierunku kierunku. W przypadku poszczególnych programistów podejście to wyrobi rozwój umiejętności, rogując buty baza umiejętności i zawężenie zdolności do identyfikowania możliwości o dużym wpływie.
“Indywidualna własność kodowa zapewnia pewne atrakcyjne korzyści na pierwszy rzut oka: lepiej zaprojektowany, utrzymany i obsługiwany kod oraz dłuższe życie dla komponentów i usług. Niestety robi to kosztem wprowadzenia sztywnej definicji ról, która może ograniczyć innowacje oraz rozwój firmy i indywidualny,” kończy Raynaud-Richard.
Dzisiaj’P pełne środowiska programistyczne, zespoły oprogramowania wiedzą, że nikt nie może wiedzieć wszystkiego. Ale wielu zwraca się do bardziej kreatywnych środków, aby zachęcić do elastycznej kultury inżynierskiej niż zwiększona aleja specjalizacji, którą uprawia model własności indywidualnej.
Kultura deweloperów startupów
Według CTO i współzałożyciela Iana Ploskera i współzałożyciela Iana Ploskera i współzałożyciela Iana Ploskera i współzałożyciela Iana Ploskera i współzałożyciela Iana Ploskera i współzałożyciela Iana Ploskera i współzałożyciela Iana Ploskera i współzałożyciela Iana Ploskera i współzałożyciela bazy danych jako-A-Service Startup Orchestrate ma rozproszony zespół 10 inżynierów pracujących w pięciu strefach czasowych i współzałożyciele.
“Don’t generalnie mają własność kodu,” mówi Plosker. “To powiedziawszy, eksperci z obszaru rozwijają się naturalnie, zwykle zaczynając od osoby, która opracowała lub dokonała przeglądu kodu.” Plosker mówi, że od czasu do czasu poszczególni inżynierowie mogą ostatecznie specjalizować się w poszczególnych technologiach lub metodach, a także będą wciągane w projekty częściej, gdy stosuje się tę konkretną technologię.
“Jedna osoba, która jest właścicielem kodeksu, jest niebezpieczna, ponieważ cały zespół może się obchodzić, nie wiedząc, jak sprawy działają. Na szczęście w mniejszej organizacji trudniej jest z tym uciec. Naprawdę ważne jest, aby wiedza rozpraszała się wokół organizacji.”
Jednym z kluczowych procesów używanych w orkiestrowaniu w celu uniknięcia indywidualnej własności kodu są recenzje kodu: “Recenzje kodu są jednym z najważniejszych miejsc do transferu wiedzy, gwarantuje, że co najmniej druga osoba zna kod, oceniła, że przypadki testowe są kompletne i wie, jak działa baza kodu.”
Orkiestracja zapewnia pojedynczy interfejs API i użytkownika do zbioru wielu baz danych. Zaczynając od wartości kluczowych, produkt umożliwia teraz szereg formatów wyszukiwania, w tym pełny tekst, uporządkowany czas i wyszukiwanie wykresów. Najnowszą ofertą była nowa funkcja wyszukiwania geoprzestrzennego, która uniknęła podejścia indywidualnego kodu podczas jej opracowania:
“Używamy całkiem sporo GitHub, więc będziesz mieć programistę pracującego nad gałęzią funkcji, na przykład po dodaniu funkcji wyszukiwania geoprzestrzennego. Więc inżynier będzie pracował w oddziale funkcyjnym, otwiera żądanie ciągnięcia, aby to połączyć. Mamy nadzieję, że dodają wszystkie testy jednostkowe i testy integracyjne, i to’s, kiedy nastąpi głęboka ocena techniczna.
“Jeśli ta funkcja jest ważna, dostaniemy co najmniej dwie pary oczu, a Github pozwala komentować określone linie, takie jak mówienie ‘Hej, dlaczego tak to zrobiłeś?’
“Tak więc rozmowa dzieje się tam, w prośbach dotyczących ciągnięcia jest wiele wiedzy.
“Po pełnym przejrzeniu, uruchamiamy go i testujemy.
“Mamy kilka kroków do testowania: wewnętrznie mamy narzędzie o nazwie Orkiestrate Runner, które może zbudować cały stos orkiestrowania na twoim komputerze (serwer HTTP oparty na Javie, front w sieci, a wszystkie te rzeczy są obrócone przez nasze narzędzie wewnętrznie). To’s pierwsza runda testowania.
“Następnie każde zatwierdzenie na Github jest prowadzone przez Travis CI. To działa całkiem dobrze dla nas, a to uruchomi wszystkie nasze testy jednostkowe i testy integracyjne. Nawet kręcimy mini orkiestrowane stos w Travis CI.
“Używamy również Hipchat, nawet stworzyliśmy bot w naszym Hipchat, który może wiele powiedzieć nam o naszym wdrożeniu kodu. Po każdym udanym mistrzu kompilacji otrzymujemy osoby do S3 na końcu kompilacji Travis, a na podstawie numeru kompilacji możemy poprosić nasz chatbot o wdrożenie tego kodu! Tak jak, ‘Hej Prodbot, wdrożenie kompilacji 46 w środowisku oceny USC.’ Plosker wskazuje również na Mumble, klient czatu, który pozwala dowolnemu zespołowi programistów na zadawanie sobie pytań lub rozpoczęcie nieformalnych czatów na temat wzorców kodowania i wyborów projektowych.
Aby wspierać współpracę i dyskusję grupową na temat nowego projektu funkcji, Orkiestrate zachęca każdego członka zespołu do stworzenia propozycji przedstawiającej pomysł:
“Zanim zaczniemy jakakolwiek wielka funkcja, zdarza się, że ktoś zostaje mistrzem tej funkcji. Dlatego lubimy pisać propozycję tej funkcji: tutaj’S jak by to działało, tutaj’Sno to zrobić, wyzwania, możliwości… to zwykle są dokumenty Google, a cały zespół będzie nad tym popracować. Zdarza się to naprawdę organiczne.
“Na przykład, teraz pracujemy nad serwisami wyszukiwania, więc jest dokument, który wszyscy komentują. W tym momencie mamy sporo krążącej wiedzy.”
Skalowalny biznes
Menu online i usługa dostarczania żywności tylko Eat – która obecnie działa w 13 krajach i ogłosiła wzrost przychodów o 58% w pierwszej połowie 2014 r. Firma widzi “Dość znaczący, szybki wzrost” Wymaganie deweloperów do współpracy w dwóch lokalizacjach biurowych i zdalnie, według głównego lekarskiego Antona Jefcoate. “Tempo wzrostu doprowadziło nas do całkiem niezłe praktyki. Fundamenty już tam były, ale możesz’Nie odejdź od kultury inżynierskiej, którą promujesz, gdy skalujesz swój zespół programistów.
“My’VE podzieliło nasze zespoły deweloperów na kilka grup w celu rozwiązania różnych obszarów: aplikacji konsumenckich, aplikacji biznesowych, deweloperów pracujących nad interfejsami API.. Zespół API jest rdzeniem całej platformy. Tak więc zespoły API są następnie dalej rozstarane i przejmują kontrolę nad określonymi częściami platformy.
“Każdy nowy projekt zbierze kilka osób z zespołu API i natywnego zespołu aplikacji: to’s minimum dwa, maksymalnie 10 osób w dowolnym projekcie. To oczywiście zależy od wielkości funkcji i tego, jak daleko przez platformę rozprzestrzeni się funkcja.”
Jefcoate uważa, że Raynaud-Richard ma rację, aby wywołać niedociągnięcia indywidualnego modelu kulturowego własności kodu w firmach programistycznych.
“Wady to rzeczy, które są dla nas prawdziwe,” mówi Jefcoate. “Myślę, że zwinny jest jedną z rzeczy, które złamały tę kulturę. Myślę, że przed Agile, deweloperzy byli izolowani, ale Agile zachęca zespół do jednostki. Kiedy szukasz prędkości śledzenia lub większego dobro zespołu do produkcji, wszyscy dzieli się pracą równomierną. Mamy kulturę wszystkich. wierzę w to’S powiązane z praktykami roboczymi i typem osób używających zwinnych przepływów: tutaj’jest trochę pracy, wszyscy dostają się na pokład, a to nie’Podaja się indywidualny scenariusz własności kodu.”
Po prostu jedz replikuje szereg aspektów kulturowych, które stają się coraz bardziej znane wśród startupów oprogramowania w chmurze. Podobnie jak inni w ich pokoleniu (właśnie zaczęły się w 2001 r.), Mają kulturę tworzenia projektów typu open source i często stosują proces rekrutacji, który prosi wnioskodawców o psie hodowlane interfejsy API, aby wykazać, co można zrobić’S Baza kodu.
Jefcoate postrzega podejście open source jako inny sposób kultywowania dumy w jednym’Przewaga kodu S, która może pochodzić z indywidualnej własności kodu:
“Musisz tylko spoglądać w dół nasz stos i zobaczyć wszystkie narzędzia open source, których używamy do rozwiązywania naszych problemów każdego dnia, więc jako ogólna społeczność programistów, naprawdę korzystamy z większego dobra. Open source pozwala rozwiązać problemy przez wiele osób; Jest bardzo niewiele miejsc, w których możesz przejść do miejsca, w którym masz bezpłatne produkty, które mają taką ilość wypróbowanej i przetestowanej historii. Open source działa i wydaje mi się, że przyczynili się do tego, stanowi trochę stwierdzenia o tym, o czym jesteśmy jako firma. Rzeczy typu open source, które wymawiamy (co jest stosunkowo w powijakach), to rzeczy, które są ogólne, które pomagają rozwiązać problemy dla społeczności programistów. Staramy się uzyskać korzyści płynące z indywidualnej własności kodu (takie rzeczy, jak uprawa dumy i zachęcanie do osobistego dotyku i osobistych inwestycji w projekty kodowania), upewniając się, że programiści mogą pomóc w przetestowaniu nowych technik na naszej platformie, aby nasi programiści rozwiązują problemy dla całej Just Eat Engineering Group Group. Jeśli tak się stanie, prawdopodobnie rozwiąże rzeczy poza naszą firmą, aby’S Jak zaczynają nasze projekty typu open source. Zwykle chodzi o skalowanie i odporność. Najpierw staramy się przyjąć go wewnętrznie, a następnie widzimy, czy jest to coś, z czego społeczność może skorzystać.”
Aby dodatkowo osadzić kulturę współpracy, a nie indywidualny model własności kodu, Just Eat trzyma kwartalne wewnętrzne hackatony, aby połączyć programistów w konfiguracjach nowych zespołów: “Dzięki posiadaniu kodu grupy brakuje niektórych korzyści, takich jak kod może być lepszy, ponieważ programiści są bardziej zaangażowani lub zostają ekspertami od domeny. Hackatony wewnętrzne są nieobecne, aby zachęcić naszych programistów do pracy nad osobistymi projektami dla zwierząt domowych.”
Po prostu Eat używa jiry do śledzenia wykonywanych prac i koordynowania żądań ciągnięcia, a następnie każde żądanie pociągnięcia zostaje poddane recenzji: “Zespół jest częściowo niezależny, ale wszystko zależy od globalnego zapotrzebowania na produkt. Po dojściu do globalnego wymagania zespoły mają tendencję do samodzielnego zarządzania, aby to zrobić. Zatem otwarto prośba o ciągnięcie jest zazwyczaj w rozmowie zespołowej. Następnie recenzje są fantastycznym procesem, ponieważ uczą się, jak i weryfikacja. Mamy dużo automatyzacji: naprawdę na CI dla tak/nie można to wdrożyć.”
Jefcoate widzi również firmę’s Zastosowanie programowania par (metoda posiadania dwóch programistów współpracujących, linii w projekcie kodowania) jako pokazuje antytezę indywidualnej kultury kodowania, którą ceni firma: “Używamy programowania par dla nowych programistów i jako ogólnej praktyki rozwojowej. Jeśli pracuję nad czymś szczególnie nowym, sparuję z kimś i upewnię się, że ktoś inny o tym wie. Są to wykonane zdalnie, parowanie jest jednym z najlepszych narzędzi do uzyskania standaryzacji jakości kodu.”
Kultura deweloperów przedsiębiorstw
Jakub Nesetril jest założycielem i dyrektorem generalnym w Apiary, zestawu do projektowania i dokumentacji API narzędzi. W tym tygodniu Napiary wypuściła naczep dla Enterprise, aby pomóc większym firmom uniknąć własności indywidualnej kodu podczas tworzenia produktów i usług API. Coraz częściej Nesetril widzi przedsiębiorstwa zajmujące się wieloma interfejsami API, z których każde zostały napisane na różne sposoby i że teraz muszą mieć wspólne struktury kodowania i nomenklatury, pracowane przez wielu członków zespołu, a nie poszczególnych deweloperów przypisanych do określonej jednostki biznesowej.
W tysiącach użytkowników odprowadzania NESETRIL zazwyczaj widzi poszczególnych hakerów lub małych zespołów używa swoich narzędzi open source, w których każdy programista może mieć prawie indywidualne podejście do posiadania kodu (głównie dlatego, że są jedynym koderem). W miarę rozwoju zespołów zaczynają korzystać z produktu komercyjnego, a zanim dotrą do 20 członków zespołu, przechodzą do pasie dla zespołów. Na tym etapie infrastruktura organizacyjna ma tendencję do wprowadzania menedżera produktu w celu zapewnienia programowania programistów w różnych projektach API.
Wśród klientów korporacyjnych-gdy zespoły osiągną liczbę deweloperów 40-60 lub więcej-architekt API ma tendencję do zatrudniania. “Jedną z rzeczy, z którymi się zmagają, jest konsekwentny projekt dla ich interfejsów API i tak’S DLACZEGO PIERWSZE DLA ENTERPRISE,” Nesetril wyjaśnia. Sercem produktu jest narzędzie do przewodnictwa w stylu, które pomaga firmom zapewnić programistom zgodność z konwencjami organizacyjnymi, takimi jak nomenklatura i formaty danych.
Nesetril widzi, że klienci korporacyjne porzucają stare pojęcia indywidualnej własności kodu, zwłaszcza że wielu odziedziczyło dziedzictwo różnych interfejsów API poprzez połączenie i przejęcia lub ponieważ indywidualne przypadki użycia doprowadziły początkowe projekty rozwoju API w odłączonych jednostkach biznesowych.
“Historycznie istniał silny dążenie do posiadania kodu, ponieważ wywołało to odpowiedzialność, ale także stanowiło trudności z współpracy. Widzimy o wiele bardziej wspólne zasoby między zespołami deweloperów w przedsiębiorstwach, w których jednostki mogą obracać się i z różnych części projektów,” mówi Nesetril.
“Sztuką z podejściami do współpracy polega na tym, że potrzebują jednej wersji prawdy. Nie każdy może być ekspertami we wszystkim we wszystkich firmie, ale jest świetnie, gdy mogą pracować nad czymś wewnętrznym. Największą sztuczką z jedną wersją kultury prawdy jest przybywa w tym miejscu bez ograniczania współpracy.” Nesetril uważa, że pasieka dla przedsiębiorstwa jest idealna dla przedsiębiorstw próbujących zarządzać wieloma interfejsami API bez tworzenia kultury, która zachęca programistów do powrotu do zostania indywidualnymi ekspertami kodu: “Daje im to zdanie, że kiedy pracują nad interfejsem API, pasuje do proaktywnego poziomu zaawansowanych kontroli i powiadomień, pozwala być bardziej eksperymentalnym i ambitnym, jeśli nie jesteś wkurzony obawami, czy robisz to źle z formatami dat. Ludzie mogą wcześnie zacząć wnieść znaczący wkład.”
Indywidualna własność kodu umiera (pół-publiczna) śmierć
Co Raynaud-Richard’S Post na blogu może być faktycznie oznaczanie czasu i śmierci indywidualnej własności kodu. Już firmy na wszystkich poziomach – od startupów po przedsiębiorstwo – obejmują bardziej wspólne podejścia do rozwoju. Google Tools and Hipchat są powszechnie używane we wszystkich zespołach programistów na wszystkich poziomach, a pojawiają się nowe produkty programistów, które pomagają umacniać bardziej wspólny etos. Dzisiaj’S Dev Environment, środkowa droga między specjalizacją a wiedzą ogólną należy realizować, gdzie największą umiejętnością kodowania jest asynchroniczne budowanie konsensusu: możliwość współpracy i ułatwienia transferu wiedzy w rozproszonym zespole.
Obraz z funkcją za pośrednictwem Flickr Creative Commons.
Jakie są zalety programowania par do dzielenia się wiedzą?
Полззйесь знаниala собщества. Эксrostkt добаваяют важные седения в эту колективннннню статюю, созданнюю с исполcept. Ыожете делать то жж сао.
Это статья нового типа – fot. А экkunfiрты улчшают fe, деляaь соими ыыслямentów.
Еaсли ы хотите внести сой влад, заlektora приг!. Подроlit
Ostatnia aktualizacja 27 kwietnia. 2023 г.
Programowanie par jest wspólną praktyką kodowania, w której dwóch programistów pracuje jednocześnie nad tym samym bazą kodową, przy użyciu jednego komputera i jednej klawiatury. Jest często stosowany w metodologiach zwinnych oprogramowania, takich jak Scrum i XP, w celu poprawy jakości kodu, wydajności i nauki. W tym artykule zbadamy, w jaki sposób programowanie par może również wspierać własność kodu i dzielenie się wiedzą między programistami oraz jakie są najlepsze praktyki, aby działało skutecznie.
Помите друим, рассказав подробне (не мене 125 символов) отена
Добавить сохранить
Własność kodu
Własność kodu to poczucie odpowiedzialności i odpowiedzialności, którą programiści mają za kod, który pisze i utrzymują. Może mieć pozytywne skutki na jakość kodu, ponieważ programiści częściej przestrzegają standardów kodowania, testów, refaktora i naprawy błędów. Może to jednak mieć negatywne skutki, takie jak tworzenie silosów wiedzy, zmniejszenie współpracy i zwiększenie zależności od określonych osób. Programowanie par może pomóc w równowadze własności kodu poprzez zachęcanie do zbiorowej własności, w której cały zespół jest odpowiedzialny za bazę kodu, i nikt nie jest jedynym ekspertem ani właścicielem konkretnej funkcji lub modułu. Programowanie par może również zmniejszyć ryzyko utraty wiedzy, ponieważ programiści mogą dzielić się swoją wiedzą i spostrzeżeniami z partnerami i uczyć się od siebie.
Помите друим, рассказав подробне (не мене 125 символов) отена
Добавить сохранить
Deweloper Java w Sky
- Коlektów
- Пожаловаться на вклад
Пожаловаться
Пожаловаться
Назад отRравить
Сасибо за уедомление! Ы болше не увидите этот вłowie.
Programowanie par faktycznie usuwa własność kodu. Nie ma prawdziwego właściciela żadnego kawałka w zaprogramowanym środowisku z zdrową rotacją par.
Dzielenie się wiedzą
Dzielenie się wiedzą to proces przesyłania i wymiany informacji, umiejętności i doświadczeń wśród programistów. Może poprawić uczenie się, innowacje i rozwiązywanie problemów, a także wspierać kulturę zaufania i informacji zwrotnych. Programowanie par jest potężnym narzędziem do dzielenia się wiedzą, ponieważ tworzy naturalne i interaktywne środowisko uczenia się, w którym programiści mogą zadawać pytania, wyjaśniać koncepcje, demonstrować techniki i przekazywać informacje zwrotne. Programowanie par może również narażać programistów na różne perspektywy, podejścia i style kodowania, które mogą poszerzyć ich horyzonty i poprawić swoje umiejętności.