Facebook делает пару программ
Facebook делает пару программ
Краткое содержание:
В этой статье я буду обсуждать концепцию парного программирования и ее правильной реализации. Я также отвечу на 15 уникальных вопросов, связанных с парным программированием, предоставляя подробные объяснения, основанные на личном опыте. Пары программирования – это не обучение, а скорее совместный подход, где старшие пары со старшими и младшими парами с младшим. Эффективное парное программирование может привести к улучшению связи и качества кода.
Ключевые моменты:
- Пара программирования – это не обучение, а совместный подход.
- Пара старших застройщиков со старшими разработчиками и младшими застройщиками с младшими разработчиками.
- Эффективное сочетание все еще может происходить между старшим и младшим разработчиком.
- Сочетание с стажером может привести к ценному обучению для обеих сторон.
- Основное внимание руководству на производительности может создать проблемы в парных программировании.
- Парное программирование должно быть похоже на то, чтобы быть совместным пилотом, а не авиадиспетчером.
- Парное программирование не эквивалентно наставничеству.
- Пары допускает немедленную обратную связь и помогает идентифицировать чрезмерно сложный код.
- Эффективное общение во время парного программирования важна.
- Рабочая нагрузка должна быть передана, и оба разработчика должны внести свой вклад.
- Боковые разговоры во время сессий спаривания могут отвлекаться.
- Не все проблемы требуют парного программирования, и индивидуальная работа может потребоваться.
- Парное программирование может занять больше времени, но обеспечивает мгновенное рассмотрение и сотрудничество со стороны сверстников.
- Младшие разработчики все еще могут учиться с помощью парного программирования, но это требует усилий и эффективного общения.
- Допрос и экспериментирование необходимы для эффективного парного программирования.
Вопросы:
1. Что такое парное программирование?
Пара программирования – это совместный подход, в котором два разработчика работают вместе по одной и той же задаче.
2. Если старшие разработчики сочетаются со старшими разработчиками и младшими разработчиками с младшими разработчиками?
Да, сочетание старших застройщиков со старшими разработчиками и младшими разработчиками с младшими разработчиками обеспечивает эффективное сотрудничество.
3. Может ли старший разработчик с младшим разработчиком?
Да, хотя и не идеально подходит для учебных целей, эффективное сочетание все еще может происходить между старшим и младшим разработчиком.
4. Как можно будет полезно сочетание с стажером?
Копарление с стажером может предоставить ценный учебный опыт для обеих сторон.
5. Какие проблемы могут возникнуть в парных программировании?
Сосредоточение управления на производительности может создавать проблемы и стресс в парных программировании.
6. Как следует пари программирование?
Парное программирование должно быть казалось быть совместным пилотом, а не авиадиспетчером.
7. Парное программирование эквивалентно наставничеству?
Нет, пара программирования не эквивалентна наставничеству. Это совместный подход между равными.
8. Каковы преимущества парного программирования?
Парное программирование позволяет получить немедленную обратную связь, помогает определить сложный код и улучшать связь.
9. Какой тип общения важен в парном программировании?
Эффективное общение, как словесное, так и через код, имеет важное значение для парных программирования.
10. Если один разработчик доминирует в сессии спаривания?
Нет, рабочая нагрузка должна быть разделена, и у обоих разработчиков должны быть равные возможности для внесения вклад.
11. Какие проблемы могут соблюдать разговоры во время сессий спаривания?
Боковые разговоры могут отвлекать и отвлекать фокус от основной задачи.
12. Парное программирование подходит для всех проблем?
Нет, пара программирования может не подходить для всех проблем, и иногда необходима индивидуальная работа.
13. Парное программирование занимает больше времени?
Парное программирование может занять больше времени, чем кодирование в одиночку, но оно обеспечивает мгновенный рецензирование и облегчает сотрудничество.
14. Могут ли юношеские разработчики научиться с помощью парных программ?
Да, младшие разработчики могут учиться с помощью парного программирования, но это требует усилий и эффективного общения.
15. Какой подход необходим для эффективного парного программирования?
Допрос, экспериментирование и активное участие необходимы для эффективного парного программирования.
Facebook делает пару программ
Я не уверен, как объективно ответить на этот вопрос. Можете ли вы прояснить проблему, которую пытаетесь решить, учитывая, что это сообщество не поддерживает субъективные вопросы?
Какой правильный способ сделать парные программирование?
Есть так много историй, когда я чувствую, что я кодирую кого -то через кого.
99K 23 23 Золотые значки 189 189 Серебряные значки 305 305 Бронзовые значки
спросил 22 февраля в 18:19
561 4 4 Серебряные значки 5 5 бронзовых значков
Я не уверен, как объективно ответить на этот вопрос. Можете ли вы прояснить проблему, которую пытаетесь решить, учитывая, что это сообщество не поддерживает субъективные вопросы?
22 февраля в 18:54
Пара программирования != обучение . Когда вы развиваетесь в паре, вы должны сочетать старший со старшим и младшим с Junior. Когда вы тренируетесь
23 февраля в 9:21
Пара программирования != Обучение, однако, можно соединить старшие и младшие. Конечно, тренировка в конечном итоге будет происходить и замедлить ситуацию. Но все равно это произойдет. Это не значит, что эффективное сочетание не может произойти.
23 февраля в 15:16
Я в паре с стажером, который понятия не имел, как работала наша система. Нам нужно было поговорить с принтером, и у него был код, который отправлял принтеру команду, которую нужно было перекомпилировать каждый раз, когда вы меняли команду. Я решил превратить это в командную оболочку. Объяснил, что я делал с стажером. Написал перед ним версию голой кости. Должен то, что он работал, и я устал и сказал: «Хочу взять это отсюда?” “Конечно!”Он сделал отличный. Отполировал это прямо тогда и там.
23 февраля в 15:19
@Antigamer это звучит так, как будто ваша главная проблема не замедляет вас. Это управление, чтобы подчеркивать вас на производительности. Не могу сказать, если это они или вы. Имейте в виду, они действительно понятия не имеют о технических вещах. Но если вы чувствуете, что вы не достигаете, они всегда понимают это и предполагают, что вы правы.
23 февраля в 15:26
6 ответов 6
Если пара программирования заставляет вас почувствовать, что вы авиадиспетчер, пытаясь раскрыть воздушный самолет, пилотируемый 12 -летним, вы делаете это неправильно, вы делаете это неправильно.
Причина, по которой это не так, в том, что вы не выступаете за много миль. Вы прямо здесь и можете взять клавиатуру в любое время. Это должно быть как пилот. Вы не даете контроль, потому что вам нужно. Вы делаете это, потому что можете.
Одна вещь, которую пара программирования – это не наставничество. Отношения, посвященные учителям, сильно отличаются от двух человек, работающих вместе как равные, даже если у кого-то есть значительно больше опыта. Требуется время, чтобы привыкнуть для сочетания программирования, так что не волнуйтесь, если сначала кажется неловким.
Экстремизпрограммирование.орг – пара программирования
Что вам нужно понять, это точка сочетания. Это не так, чтобы вы могли сказать: «Мы соединялись». Это так, чтобы вы могли общаться на своем естественном языке: код.
Потрясающая вещь здесь – вы можете ввести линию кода и спросить: «Это имеет смысл?”Это плотная петля с обратной стороны. Вы можете разобраться, когда код слишком умный быстро.
«Прокрутите вверх», «добавить оператор консоли», «Перейти в файл x», «Можете ли вы написать Y после строки Z» и т. Д.
Если это все, что вы скажете, пока мы соединяемся, просто возьмите клавиатуру уже. Вместо того, чтобы ложка пройти меня, скажите, что происходит. Почему мы делаем это. Как я мог бы знать, чтобы сделать это сам.
Скажи мне, что. Не берите клавиатуру, нажмите на несколько таинственных сочетания клавиатуры и заставьте волшебство. Покажи мне, как работает трюк.
Кроме того, не просто диктовать всю повестку дня. Вырезать работу, которую я могу сделать. Позвольте мне вскочить и быть частью этого. Черт, тебе может повезти и что -то у меня научишься. Клавиатура должна скользить взад -вперед.
Боковые разговоры часто возникают во время сессий спаривания, отвлекая от работы под рукой
О, уделите время и будьте человеком. Убедите меня, я разговариваю с кем -то, кто считает меня человеком.
Решение сложных проблем часто занимает гораздо больше времени, потому что многим инженерам нужно время простоя, чтобы фактически разработать решение
Истинный. Некоторым нужно время, проведенное на бросающих карандашах на потолочных плитках. Некоторым нужно время резиновой утки (звучащая доска, если вы из серебряного набора волос). Пара программирования не для каждой проблемы все время.
- Делать это при вызове занимает больше времени и часто приводит к параличу анализа.
Да, спаривание может занять больше времени, чем в одиночку. Но если вы делаете это правильно, вы также получаете мгновенный неформальный обзор, а также некоторые в сотрудничестве.
Легкое лекарство от анализа паралича – это сделать что -то глупое и заставлять людей объяснять вам, почему это неправильно. Относитесь на это, пока у вас не закончится неправильно.
Я задаюсь вопросом, на самом деле учатся более младшие разработчики.
Продолжайте допросить. Узнайте, что работает, а что нет. Нет просто идеального способа сделать это. Но делать это только потому, что мы должны делать это, безусловно, неправильно.
ответил 22 февраля в 18:57
hocked_orange chocked_orange
99K 23 23 Золотые значки 189 189 Серебряные значки 305 305 Бронзовые значки
Легкое лекарство от анализа паралича – это сделать что -то глупое и заставлять людей объяснять вам, почему это неправильно. Относитесь на это, пока у вас не закончится неправильно. Это золото. это работает в любой ситуации. Обучение ваших навыков дизайна TDD и снизу вверх, выполнение технических проблем на месте или выбирая между двумя фильмами, которые вы, несомненно, будут ненавидеть, но вашей подруге все равно. Просто «сделай что -нибудь», поверните колесо и позвольте себе увлечь инерцией
22 февраля в 21:43
“Потрясающая вещь здесь – вы можете ввести линию кода и спросить: «Это имеет смысл?”“И именно поэтому пара программирования – это полная трата времени. Ни один компетентный программист не должен спросить об одну строку кода. Вы должны спросить об этом обо всем последовательном блоке функциональности, а не о одной линии – и у вас нет этого, пока программист не будет. Он полностью основан на убеждении, что программирование является основным источником ошибок в конечном продукте, и это было значительно оказалось ложным убеждением.
23 февраля в 8:53
@Graham часто, одна строка является Когерентный блок. Иногда это представляет собой изменение в одном блоке, и я хочу знать, имеет ли это смысл в контексте. В других случаях я делал что-то умное, но явное, и я хочу знать, заслуживает ли это подробный или короткий комментарий. Быть благотворительным!
23 февраля в 13:45
Ирония здесь я’я получает отзывы на одной линии и желаю мне’D получили это раньше.
23 февраля в 14:12
@Graham Мне действительно интересно, что вы говорите о ошибках, не поступающих в основном из исходного кода – у вас есть цитаты (ы) для этого, так как мне было бы интересно узнать больше.
23 февраля в 14:21
Обычной схемой является то, что более высокопоставленные разработчики, как правило, в конечном итоге вручную вручную на протяжении всего процесса на протяжении всего процесса
Прежде всего, пара программирования по своей сути не влечет за собой обучение или наставничество. С достаточным дисбалансом старшинства вы должны признать, что кусок времени тратится на обучение а не работать. Это уже должно изменить ваши ожидания немедленных результатов.
Если вы хотите, чтобы ваша пара программирования была полностью сосредоточена на доставке, а не в обучении, то вам придется соединить равных разработчиков с равным опытом или настолько близко к ней, насколько вы можете. Вы не делаете этого, поэтому вы по своей природе либо собираетесь подкоемые своих пожилых людей (необходимо идти в темпе младшего), либо вам нужно рассказать юниорам о работе (так как это делается в темпе старшего)).
в основном кодируя при просмотре экрана. «Прокрутите вверх», «добавить оператор консоли», «Перейти в файл x», «Можете ли вы написать Y после строки Z» и т. Д.
Это не парное программирование, это диктует. Это непродуктивно как механизм доставки (требуется два человека, чтобы следовать за одному лицу мысли), так и как инструмент обучения (слепо копирование, как вы сказали, не способствует пониманию).
Я бы серьезно пересмотрел старшинство разработчика, если он сможет сосредоточиться на том, как решить проблему и не смогут должным образом направлять младшего разработчика. Это отличительная разница между младшим (может выполнять работу, но необходимо надзор), Medior (может выполнять свою собственную работу без особого надзора) и старшего профиля (может выполнять свою собственную работу и обеспечить надзор за другими)).
Боковые разговоры часто возникают во время сессий спаривания, отвлекая от работы под рукой
Разговоры, не связанные с работой, произошли бы, если бы эти два человека сидели рядом без парного программирования и поэтому не имеют отношения к оценке этой ценности парного программирования.
Связанные с работой беседы точно парного программирования; Это позволяет паре передавать свои знания друг другу и/или помогает им работать вместе, чтобы узнать что -то, что новое для них обоих.
Решение сложных проблем часто занимает гораздо больше времени, потому что многим инженерам нужно время простоя, чтобы фактически разработать решение – делать это на вызове требует больше времени и часто приводит к параличу анализа.
Прежде всего, это не называется дизайном пары. Вы не можете просто произвольно объединить эти двое вместе.
Во -вторых, пара программирования не влечет за собой, что оба набора глаз смотрят на одно и то же время, все время, и ничего больше. Для старшего вполне возможно сделать что -то еще, будь то рассмотрение дизайна следующей задачи, чтение документации, . В то время как младший выполняет более тривиальную задачу, когда старший либо не нужен, либо способен совмещать обе деятельности одновременно.
Основа для вашего вопроса выглядит как запутанный. Вы внедрили систему, структурировали ее особым образом, и только затем Вы начали замечать, что система на самом деле не помогает с вещами, которые, казалось бы, для вас важны. Это ставит телегу перед лошадью.
Всего имеет смысл сначала понять проблему, которую вы пытаетесь решить, а затем найти систему, подтвердить, что она действительно решит проблему, и только начнет ее реализовать.
ответил 22 февраля в 22:25
41.6K 8 8 Золотые значки 83 83 Серебряные значки 115 115 Бронзовые значки
“Прежде всего, это не называется дизайн пар. Вы не можете просто произвольно объединить эти двое вместе.” — Я считаю, что это сокращается до сути вопроса ОП. Не каждая задача или взаимодействие подходят для парного программирования.
24 февраля в 15:38
Я думаю, что два пилота в самолете – самое близкое, что я могу подумать, поэтому давайте рассмотрим, как решаются проблемы, которые вы решаются. В авиации есть два пилота, есть пилотный полет и мониторинг пилота. Мониторинг пилота также полностью в курсе и может вступить в себя в любое время. Это работает очень хорошо и вряд ли изменится, даже если технически эти самолеты можно было бы летать одним человеком.
Я не пилот, я инженер -программист с долгом опытом. Но раньше я был довольно активным в обмене авиационным стеком, читая как вопросы, так и ответы, опубликованные настоящими пилотами, поэтому думайте, что сможет предоставить некоторый обзор. Это может быть полезно для нас.
Стерильная кабина
Разговоры, не связанные с полетом, строго запрещены в кабине. То же самое должно быть между парными программистами. Так просто.
Решения
Крошечные решения принимаются пилотным летом, но пилоты общаются, когда принимают более крупные решения. Пилоты также следуют контрольным спискам, которые описывают многие стандартные действия, которые они должны предпринять. Если что -то пойдет не так, пилоты вытащили контрольный список «Ненамеренное чтение воздушной скорости» и следуйте шагам, а не начнется с долгого обсуждения, которое должно быть сделано. Если капитан абсолютно уверен, у него есть приоритет, чтобы быстро решать, переоценивая любые правила, любые указания от контрольной башни и без обсуждения, но это не слегка сделано. Когда капитан игнорирует инструкции из контрольной башни, он должен немедленно рассказать об этом.
Следовательно, я ожидаю, что у ведущего разработчика будет правильно сказать что -то вроде «подход X создает гораздо лучший код здесь, поэтому мы используем его, даже если общие правила требуют чего -то другого», но это не должно быть очень часто.
Рабочий отдел
Пилоты делят время, каждый из которых контролирует самолеты более или менее одинаково, но есть сложные задачи, такие как летать 747 с тремя двигателями или приземление в аэропорту Ираклиона, где официально заявлено, что «капитан должен выполнять полеты». В противном случае оба пилота полностью обучены и квалифицированы для летания на этот самолет и не нуждаются в очень глубоком микроуправлении.
Следовательно, я ожидаю, что парный программист активен с кодом для печати и прокрутки, как он хочет, с другой просто наблюдением и вмешивается только в том случае, если у него есть примечательная вещь, чтобы сказать. Я также не ожидаю.
Капитан тренинги
Наконец, чтобы лучше понять эту роль, сначала обучен новый капитан с другим, более опытным капитаном, который является «настоящим капитаном» самолета, но пока полет идет хорошо, играет роль второго пилота. После этого молодой капитан в паре, чтобы летать с гораздо более опытным (по летным часам) вторым пилотом. Только тогда капитан считается готовым летать с кем -то, кого он может видеть как менее способный.
Двойное управление
Самолет, предназначенные для лечения двумя пилотами, обычно имеют двойное управление. Чтобы следовать этому шаблону, рекомендуется подключить хотя бы вторую мышь, если не клавиатура. Это позволяет очень быстро передавать «вождение» между разработчиками.
Facebook делает пару программ
Охто
Мы аррегировали подоаджолгн. SpoMOщHщ эtOй straoniцы mы smosememememopredetath, чto -aprosы otpra. То, что нужно?
Эta -steraniцa otobrana -overshy -aTeх -stuчah -obra -aTeх -stu -y -y -ogdaTomAtiчeskymi -stri -stri -rah -strhe -strhe -strhe -stri -stri -stri -stri -stri -stri -rah -rah -stristriouri Котора. Straoniцa -oprepaneTeTeTeTeTOTOTOTO -opobrasthep -apoSle -o, kak -эat. ДО СОМОМОНТА.
Иошнико -а -а -а -в -впологовый схлк -а -апросов. Esli-yspolheoute obhщiй dostup-vanterneTTHETHETHETHETHET,. Охраторс. Подеб.
Проверка, в котором я, eSli -voAchephephephephe -yvodyte -sloжne -apro Эмами, Или,.
Facebook и миф о индивидуальной культуре кодирования
Мы запустили новую ежедневную рассылку по электронной почте! Теперь вы можете получать бесплатный обзор самых последних статей TNS в вашем почтовом ящике каждый день. Зарегистрируйтесь сейчас, никогда не пропустите историю, всегда следите за.
В недавнем сообщении о инженерной культуре инженер программного обеспечения Facebook Пьер Рэйно-Ричард поделился пониманием того, как гигант социальных сетей’S Dev Culture способствует сотрудничеству и поощряет гордость за код, который они создают.
Решающий для Райно-Ричарда’S Trades ‘Индивидуальное владение кодом’ мантра. “Многие компании по разработке программного обеспечения верят и практикуют “Индивидуальное владение кодом.” Это может не звучать как такой фундаментальный принцип, но на самом деле он имеет большое значение для определения того, как работает программная организация,” пишет Райно-Ричард.
Несмотря на это, этот подход, по -видимому, поощряет внутренних экспертов с гордостью создавать лучший написанный, менее глючный код, фактическое влияние для многих компаний заключается в том, что он уклоняется от инноваций и навыков разработчиков Wilts. Raynaud-Richard говорит, что этот подход препятствует инновациям компании, поскольку разработчики в конечном итоге предпочитают статус-кво: со временем они защищают кодовую базу, которую они создали, и имеют неявное предвзято. Для отдельных разработчиков, подход затеняет их навыки рост, ходив по обувным базе и сужая их способность определять высокие возможности воздействия.
“Индивидуальное владение кодом предоставляет некоторые привлекательные преимущества на первый взгляд: лучше спроектирован, поддержанный и поддерживаемый код, а также более длительный срок службы для компонентов и услуг. К сожалению, он делает это за счет введения жесткого определения ролей, что может ограничить инновации и рост компании и индивидуального роста,” завершает Райно-Ричард.
Сегодня’S Полные среды разработки стека, команды программного обеспечения знают, что никто не может знать все. Но многие обращаются к более творческим средствам для поощрения гибкой инженерной культуры, чем повышенный путь специализации, который культивирует отдельная модель владения кодом.
Стартап Dev Culture
По словам технического директора и соучредителя Яна Плоскера, в базе данных как в стартапе в базе данных.
“Мы не надеем’T обычно обладают владением кодом,” говорит Плоскер. “При этом, области экспертов развиваются естественным путем, обычно начиная с человека, который разработал или проверял код.” Плоскер говорит, что время от времени конкретные инженеры могут в конечном итоге специализироваться на конкретных технологиях или методах, и они будут чаще привлекать к проектам, когда используется эта конкретная технология.
“Один человек, которому принадлежит код, опасен, потому что вся команда может обойтись, не зная, как все работает. К счастью, в меньшей организации, это сложнее сойти с рук. Очень важно, чтобы знания распространялись вокруг организации.”
Одним из ключевых процессов, используемых в Orchestrate, чтобы избежать отдельного владения кодом, являются обзоры кода: “Обзоры кода являются одним из самых важных мест для передачи знаний, он гарантирует, по крайней мере, второй человек знает код, оценил, что тестовые примеры завершены, и знает, как работает база кода.”
Orchestrate предоставляет один API и пользовательский интерфейс для коллекции нескольких баз данных. Начиная с клавишных значений, продукт теперь позволяет ряд форматов поиска, включая полный текстовый, упорядоченный и поиск по графику. Последнее предложение стала новой функцией геопространственного поиска, которая избегала отдельного подхода к владению кодом по мере его разработки:
“Мы довольно много используем GitHub, поэтому у вас будет разработчик, работающий над филиалом, например, когда мы добавим функции геопространственного поиска. Таким образом, инженер будет работать в филиале функции, они открывают запрос на притяжение, чтобы объединить это в. Надеемся, что они добавят все модульные тесты и интеграционные тесты, и это’когда происходит глубокая техническая оценка.
“Если эта функция важна, мы получаем как минимум две пары глаз на вещи, и GitHub позволяет вам комментировать определенные строки, такие как сказать ‘эй, почему ты сделал это так?’
“Итак, там происходит разговор, в запросах на привлечение много знаний, встроенных.
“Как только он будет полностью рассмотрен, мы запускаем его и проверяем.
“У нас есть несколько шагов для тестирования: внутренне у нас есть инструмент под названием Orchestrate Runner, который может построить целый стек оркестровки на вашей машине (HTTP -сервер на базе Java, веб -фронт, и все эти вещи внутренне вращаются нашим инструментом). Что’S в первом раунде тестирования.
“Тогда каждый коммит на GitHub управляет Трэвис CI. Это работает довольно хорошо для нас, и это проведет все наши модульные тесты и интеграционные тесты. Мы даже раскручиваем мини -стек -оркестр в Трэвис С.И.
“Мы также используем Hipchat, мы даже создали бота в нашем хипчате, который может многое рассказать нам о нашем развертывании кода. После каждого успешного мастера сборки мы загружаем их в S3 в конце сборки Travis, и, основываясь на номере сборки, мы можем попросить нашего чат -бота развернуть этот код! Нравиться, ‘Привет, Prodbot, развернуть сборку номера 46 в USC Staging Environment.’ Plosker также указывает на бормоток, клиент чата, который позволяет любой из команд разработчиков задавать вопросы друг другу или начинать неформальные чаты по моделям кодирования и выбору дизайна.
Чтобы способствовать сотрудничеству и групповой дискуссии о новом дизайне функций, Orchestrate поощряет любого члена команды создать предложение, описывающее эту идею:
“Прежде чем мы начнем какую -либо большую функцию, склоняется к тому, что кто -то становится чемпионом для этой функции. Поэтому нам склонен писать предложение для этой функции: здесь’S, как это будет работать, здесь’S, почему мы должны делать это, проблемы, возможности … это, как правило, документы Google, и вся команда будет работать над этим. Это случается действительно органично.
“Например, сейчас мы работаем над поиском поиска, поэтому есть документ, который все комментируют. На данный момент у нас уже много знаний циркулируют.”
Масштабируемый бизнес
Онлайн -меню и служба доставки продуктов питания Just EAT, который в настоящее время работает в 13 странах и объявил о росте дохода на 58% в первой половине 2014 года, имеет инженерную команду из 60 разработчиков только в своих британских офисах. Компания видит “Довольно существенный, быстрый рост” Требование разработчиков работать вместе в двух офисных местах и удаленно, согласно техническому лидеру Anton Jefcoate. “Скорость роста привела нас к довольно хорошей практике. Фонды уже были там, но вы можете’T уходите от инженерной культуры, которую вы продвигаете, когда вы масштабируете свою команду разработчиков.
“Мы’VE разделил наши команды разработчиков на несколько групп для решения различных областей: потребительские приложения, деловые приложения, разработчики, которые работают над APIS.. Команда API является ядром всей платформы. Таким образом, команды API затем разделяются, и они берут под контроль определенные части платформы.
“Любой новый проект соберут пару человек из команды API -управляемой и местных приложений: что’S минимум два, максимум 10 человек в любом проекте. Это зависит от размера функции, очевидно, и от того, как далеко через платформу эта функция будет распространяться.”
Джефкоат считает, что Raynaud-Richard прав, чтобы вызвать недостатки индивидуальной культурной модели владения кодом в компаниях-разработчиках программного обеспечения.
“Недостатки – это вещи, которые решают для нас,” говорит Джефкоат. “Я думаю, что Agile – одна из вещей, которая сломала эту культуру. Я думаю, что перед Agile Devs были изолированы, но Agile поощряет команду над индивидуумом. Когда вы смотрите на отслеживание скорости или большего блага команды для производства, все делятся работой равномерно. У нас очень много чипсов. Я верю этому’S, связанный с практикой рабочих мест и типом людей, которые используют гибкие потоки: здесь’S -то, что нужно сделать, все попадают на палубу, и это не’T предоставление отдельного сценария владения кодом.”
Просто съесть ряд культурных аспектов, которые становятся более знакомыми среди облачных программных стартапов. Как и другие в своем поколении (Just-Eats началось в 2001 году), у них есть культура создания проектов с открытым исходным кодом и часто использует процесс найма, который просит кандидатов на Dogfood простое API, чтобы продемонстрировать то, что можно сделать, или указывать на возможности, которые могут улучшить просто еда’S код база.
Джефкоат видит подход с открытым исходным кодом как другой способ развития гордости в одном’Преимущество S-кода, которое может быть получено от отдельного владения кодом:
“Вам нужно только посмотреть на нашу стек и увидеть все инструменты с открытым исходным кодом, которые мы используем для решения наших проблем каждый день, поэтому, как общее сообщество разработчиков, мы действительно получаем пользу от большего блага. Открытый исходный код позволяет решать проблемы многими людьми; Есть очень мало мест, где вы можете пойти туда, где у вас есть бесплатные продукты, в которых есть такая проверенная и протестированная история. Работает с открытым исходным кодом, и я думаю, для нас, чтобы внести свой вклад в это, делает что -то вроде заявления о том, что мы являемся компанией. Вещи с открытым исходным кодом, который мы выпускаем (что относительно в зачаточном состоянии), являются общими вещами, которые помогают решить проблемы для сообщества разработчиков. Мы стараемся получить преимущества индивидуального владения кодом (такие вещи, как развитие гордости и поощрение индивидуальных и личных инвестиций в кодирование проектов), убедившись, что разработчики помогут протестировать новые методы на нашей платформе, чтобы наши разработчики решали проблемы для всей группы Eat Engineering. Если это произойдет, то это, вероятно, решит вещи вне нашей компании, так что это’Как начинаются наши проекты с открытым исходным кодом. Обычно это масштабирование и устойчивость. Сначала мы стараемся принять его внутри.”
Чтобы дополнительно встроить совместную культуру, а не отдельную модель владения кодом, Just EAT держит ежеквартальные внутренние хакатоны, чтобы объединить разработчиков в конфигурации новой команды: “Благодаря владению групповым кодом вы пропускаете некоторые преимущества, такие как код лучше, потому что разработчики более вовлечены или становятся экспертами домена. Внутренние хакатоны уходят, чтобы поощрять наших разработчиков работать над личными домашними проектами.”
Просто eat использует Jira для отслеживания выполняемых работ и координации запросов на притяжение, а затем каждый запрос на вытягивание проходит рецензирование: “Команда является полузависимой, но все обусловлено глобальным требованием продукта. После того, как вы преодолеете глобальное требование, команды склонны к самостоятельному управлению, чтобы сделать это. Таким образом, открывается запрос на тягу, как правило, в командном разговоре. Тогда обзоры – это фантастический процесс, потому что он обучается, а также проверка. У нас много автоматизации: мы действительно на нашем CI для да/нет, можно ли это развернуть.”
Джефкоат также видит компанию’S Использование парного программирования (метод того, чтобы два программиста работали вместе, строки для линии, в проекте кодирования) в качестве демонстрации антитезы индивидуальной культуры кодирования, которую ценит компания: “Мы используем парные программирование для адаптации новых разработчиков и в качестве общей практики разработки. Если я работаю над чем -то особенно новым, я буду в паре с кем -то и позабочусь, чтобы кто -то еще знал об этом. Они сделаны удаленно, спаривание является одним из лучших инструментов для стандартизации качества кода.”
Культура предприятия разработчика
Jakub Nesetril является основателем и генеральным директором Apiary, API Design и Document Coding Suite of Tools. На этой неделе Apiary выпустила Apiary для Enterprise, чтобы помочь более крупным компаниям уйти от отдельного владения кодом при создании продуктов и услуг API. Все чаще Nesetril видит, как предприятия, занимающиеся несколькими API, которые были написаны по -разному, и которые теперь должны иметь общие структуры кодирования и номенклатуры, над которыми работают несколько членов команды, а не отдельные разработчики, назначенные конкретной бизнес -единице.
На тысячах пользователей апиарки Несэтрил, как правило, видит, как отдельные хакеры или небольшие команды используют свои инструменты с открытым исходным кодом, где каждый разработчик может иметь почти отдельный подход к владению кодом (в основном потому, что они являются единственным кодером). По мере роста команд они начинают использовать коммерческий продукт Apiary, и к тому времени, когда они достигают 20 членов команды, они переходят к Apiary для команд. Именно на этом этапе организационная инфраструктура имеет тенденцию привлекать менеджера по продукту, чтобы гарантировать, что кодирование разработчика равномерно для различных проектов API.
Среди корпоративных клиентов-как только команды достигают числа разработчиков 40-60 или более-архитектор API, как правило, нанимается. “Одна из вещей, с которыми они борются, – это постоянный дизайн для их API, и это’S, почему мы построили пасери для Enterprise,” Несэтрил объясняет. В основе продукта лежит инструмент руководства по стилю, который помогает компаниям гарантировать, что разработчики соответствуют организационным соглашениям, таким как номенклатура и форматы данных.
Nesetril видит, что корпоративные клиенты отказываются от старых представлений об индивидуальном владении кодом, особенно потому, что многие унаследовали наследие разрозненных API посредством слияний и поглощений или потому, что индивидуальные варианты использования привели к начальным проектам разработки API в отключенных бизнес -единицах.
“Исторически сложилось сильное стремление к владению кодом, поскольку это создавало ответственность, но также создало трудности для сотрудничества. Мы видим гораздо более общие ресурсы среди команд разработчиков на предприятиях, где люди могут вращаться в различных частях проектов,” говорит Несэтрил.
“Хитрость с совместными подходами заключается в том, что им нужна одна версия истины. Не все могут быть экспертами во всем внутри компании, но это здорово, когда они могут работать над чем -то внутренне. Самая большая хитрость с единственной версией культуры истины – прибывает в это место, не ограничивая сотрудничество.” Несэтрил считает, что Apiary for Enterprise идеально подходит для предприятий, пытающихся управлять несколькими API без создания культуры, которая побуждает разработчиков вернуться к становлению отдельных экспертов по коде: “Это дает им этот кусок ума, что, когда они работают над API, он вписывается в упреждающий уровень передовой проверки и уведомлений, он позволяет вам быть более экспериментальными и амбициозными, если вы не увязаны из -за опасений, что вы делаете это неправильно, например, форматы даты даты. Люди могут начать вносить значимый вклад на раннем этапе.”
Индивидуальное владение кодом умирает (полупубличная) смерть
Что Рэйно-Ричард’Пост в блоге может на самом деле делать, отмечает время и смерть владения индивидуальным кодом. Уже предприятия на всех уровнях – от стартапов до предприятия – используют более совместные подходы к развитию. Google Tools и Hipchat обычно используются в командах разработчиков на всех уровнях, и появляются новые продукты разработчика, которые помогают укрепить более совместный дух. Сегодня’S Dev Environment, средняя дорога между специализацией и общими знаниями должна быть продолжена, где наибольшим навыком кодирования является асинхронное консенсусное здание: способность сотрудничать и облегчить передачу знаний в распределенной команде.
Изображение функции через Flickr Creative Commons.
Каковы преимущества парного программирования для обмена знаниями?
PolheWeHeSeShoshy зnanaInimaMI -oObщeStva. Эkpertы dobanюot -vaжne -swedenipe -эtu -kolektywnwhyю -stathe, soзdannuю -spolhe -hy -y -stre -sterne -stre -sterne -sterne -ytrynno -sterne -sterne -ysternememememememememememememememememy. Весели.
Эtothapy nonowogo otopa -opepa – pri -e -soзdanani -mы yspolhovali -iskoustwennnый yantekt. A kspertы yuluчшaht e, delasysmassmasy -mыslamymi napramyю -kaжdem raзde.
ESli -хoTiTe -vneSti -opoй -oprocyte -priglahenee, otmetivyth. Подеб
Последнее обновлено на 27 апре. 2023 г.
Парное программирование – это совместная практика кодирования, в которой два разработчика работают на одной и той же кодовой базе одновременно, используя один компьютер и одну клавиатуру. Он часто используется в методологиях разработки Agile программного обеспечения, таких как Scrum и XP, для повышения качества, производительности и обучения кода. В этой статье мы рассмотрим, как парные программирование также может способствовать владению кодом и обменом знаниями среди разработчиков, и каковы некоторые из лучших практик, чтобы он эффективно работал.
ПОРИГЕТЕР, РУСКАЯ
ДОБАВИТАР
Владение кодом
Владение кодом – это чувство ответственности и подотчетности, которые разработчики имеют для кода, который они пишут и поддерживают. Он может оказывать положительное влияние на качество кода, так как разработчики с большей вероятностью будут следовать стандартам кодирования, записать тесты, рефактор и исправление ошибок. Тем не менее, это также может иметь негативные последствия, такие как создание силосов знаний, сокращение сотрудничества и повышение зависимости от конкретных людей. Парное программирование может помочь сбалансировать владение кодом, поощряя коллективную собственность, где вся команда отвечает за кодовую базу, и никто не является единственным экспертом или владельцем определенной функции или модуля. Пары программирования также могут снизить риск потери знаний, поскольку разработчики могут поделиться своими опытами и пониманием со своими партнерами и учиться друг у друга.
ПОРИГЕТЕР, РУСКАЯ
ДОБАВИТАР
Разработчик Java на Sky
- Копировот
- Покало
Opohlowathe
Opohlowathe
С
Спасибо! Ведол.
Парное программирование фактически полностью удаляет владение кодом. Нет реального владельца любого кусочка в паре, запрограммированной среде со здоровым вращением пар.
Обмен знаниями
Обмен знаниями – это процесс передачи и обмена информацией, навыками и опытом между разработчиками. Это может улучшить обучение, инновации и решение проблем, а также способствовать культуре доверия и обратной связи. Парное программирование – это мощный инструмент для обмена знаниями, поскольку он создает естественную и интерактивную учебную среду, где разработчики могут задавать вопросы, объяснять концепции, демонстрировать методы и дать обратную связь. Парное программирование может также подвергать разработчиков различные перспективы, подходы и стили кодирования, которые могут расширить их горизонты и улучшить свои навыки.