Как не бросить коллегу под автобус?

Прошу прощения, если название слишком идиоматично, но я не знаю, как объяснить дело без него.

Краткая версия (нетехническая). У меня есть коллега, который по той или иной причине не освоил необходимый навык, который эквивалентен пятиминутному просмотру руководства или просмотру видео на YouTube. На самом деле, это должен был быть навык, который он приобрел полтора года назад.

Наш менеджер хочет, чтобы я завершил проект плохо продуманным способом, когда решение проблемы для коллеги состоит в том, чтобы просто изучить простую часть программного обеспечения. Менеджер должен это знать, ему это объясняли в прошлом.

Более длинная версия (техническая). Я разработчик программного обеспечения, и я пришел на свою текущую работу, чтобы помочь с проблемами инфраструктуры. Я первый настоящий разработчик, которого наняла компания. Другой разработчик учился у предыдущих ИТ-директоров, но на самом деле не проявлял инициативы за 2 года своей работы (несколько лет в компании).

Мы пытаемся перейти на использование Git. Пользуюсь уже 7 месяцев, проблем нет. Все, что нужно сделать, это чтобы мой коллега скачал GIT и прочитал руководство, которое я предоставил команде полгода назад. Он этого не сделал.

Теперь мой босс, который не является разработчиком и, возможно, не очень техническим специалистом, хочет внедрить git чрезвычайно запутанным способом. Он знает, что мой коллега этого не знает, и ему несколько раз объясняли, что все, что нам нужно, — это начать его использовать.

Вопросы

  • Как мне объяснить ситуацию (снова) менеджеру, не вызывая волнений?
  • Как мне получить оптимальный результат, не привлекая внимания к бездействию моего менеджера
  • Как уберечь коллегу от неприятностей (он уходит, а компания разваливается)?

Я буквально не знаю, как сформулировать что-то своему менеджеру. Он и так снисходительный и покровительственный. Вся ситуация кажется мне проигрышной.

Что лично вы теряете, если менеджер продолжает внедрять Git своим запутанным путем, попутно сталкиваясь с недостатками вашего коллеги? Мне кажется, вы должны просто отойти в сторону и позволить им продолжать, а то, возможно, потерпите неудачу. Менеджер и, возможно, компания могут «проиграть», но не вы. Если вы ничего не выиграете, взяв на себя эту ответственность, а затем, возможно, потерпите неудачу, то зачем вмешиваться?
«Я первый настоящий разработчик, которого наняла компания» — нет, там уже есть разработчик. Они просто не прилагают столько усилий, как вы. Похоже, вам нужно немного изменить свое мышление и быть более терпеливым, прежде чем вас сочтут слишком эгоистичным для вашего же блага.
@MarvMills Я согласен, хотя Git можно использовать для запуска в производство. Если они внедрят Git своим запутанным способом, а их производственные серверы сойдут с ума, разве «первый настоящий разработчик» не будет тем, кого обвинят в том, что он не вмешался, когда они пошли не так?
«5 минут беглого просмотра руководства или просмотра видео на YouTube» — вы опасно упрощаете Git для новичка, особенно если он хорошо знаком с шаблонами работы, подходящими для других систем (например, SVN). В такой небольшой компании/команде, как ваша, поверхностные знания могут быть опаснее, чем их отсутствие.
Для меня - вы недооцениваете кривую обучения GIT
Я согласен с Джулией Хейворд и кулером: конечно, совершать, толкать и получать легко. Становится сложнее, когда происходят слияния и/или конфликты.
Звучит для меня так, как будто это ты делаешь это проигрышным. Ваш менеджер принимает меры. Вам просто не нравится, как он планирует внедрить GIT.
«Я первый настоящий разработчик, которого наняла компания». - Тогда вы знаете, как важно кросс-тренироваться. Некоторые люди, в том числе и я, немного путаются, когда подключают все в проекте. Некоторые специалисты по архитектуре помогали всем знакомиться с Subversion и TeamCity специально для своих проектов. Почему ты не можешь потратить 10 минут, чтобы помочь товарищу по команде ?
Вы полагаете, что нет веских причин для запутанного предложения вашего менеджера. Возможно, есть действительно веские причины, о которых вы не знаете, такие как соответствие требованиям безопасности, аварийное восстановление, доступность, производительность или что-то еще, что вы не учли. Прежде чем выносить чужую идею, вы должны попытаться понять, почему они предлагают эту идею.
Я вижу много крушений поездов, когда git внедряется в организации. Все сводится к тому, что люди делают шаткие предположения о том, какой рабочий процесс следует использовать, слепо игнорируя тот факт, что git вообще не навязывает никакого рабочего процесса и что рабочий процесс так же важен, как и любые глупые команды git, которые используются.
@EdwinLambregts Даже если слияние является сложной темой, с этим можно справиться, когда мы доберемся до него. Мы, по какой-то причине, еще даже не находимся на yum install gitпервой git clone ...части процесса.
@watercooler, не ошибитесь, я знаю, что git может быть сложным (или чертовски простым), но я не уверен, что базовые коммиты приближаются к пику кривой. Ты? Я действительно мог недооценивать его сложность для других разработчиков только потому, что я склонен использовать контроль версий.
@Джимми, я извиняюсь, если я неясно выразился, но я предпринял несколько попыток пройти этот процесс с моим товарищем по команде. Даже ссылаясь и отправляя ссылки на видео, которые были понятны, потому что это то, что он предпочитает.
@teego1967 teego1967 Вы правы, и я согласен с вами в отношении важности рабочих процессов, но мы даже не сможем разобраться с этим, пока не получим текущую копию наших проектов в VC.
"Скачать GIT"? Можете ли вы уточнить это?
Как насчет использования... Subversion?
@nobrandheroes — Я думаю, что определение процесса слияния происходит задолго до того , как « yum install gitи git clone ...» Вот почему обычно в начале очень нужен человек со знанием и опытом работы с инструментом.
@nobrandheroes — Что такое ВК?
«Я первый настоящий разработчик, которого наняла компания». --- Если бы вы были настоящим разработчиком, вы бы знали, что изучение GIT занимает более пяти минут. Я только что видел другого ОП, говорящего, что он может сделать что-то за 10 секунд, кому-то потребовалось много времени (по его словам, неправильно). Вокруг полно сверхчеловеческих разработчиков... Это не ответ на вопрос, но я надеюсь, вы понимаете, что такое ваше отношение ни к чему не приведет в долгосрочной перспективе.
@Daniel, конечно, у git есть кривая обучения, но git pushего git pullне сложно использовать, особенно если у вас есть редактор, который делает это за вас.
Учитывая содержание вопроса и ответы, я думаю, вам следует отредактировать заголовок, чтобы отразить, что вопрос касается либо ознакомления коллеги с Git, либо о том, как реализовать Git. Я не совсем уверен, на что его изменить, иначе я бы предложил редактирование напрямую.
Кажется, никто не упомянул об этом, но более чем вероятно, что ваш коллега использует какой-то другой инструмент, который выполняет задачу, аналогичную git (их много, например, svn, mercurial и т. д.). git популярен, но есть много причины, по которым кто-то может предпочесть другой инструмент. Спрашивали ли вы своего коллегу о том, почему он не хочет переключаться? Если, например, им нравится определенный рабочий процесс с другим инструментом, вы можете либо уступить, либо показать им, как это сделать с помощью git. Ключевым моментом здесь является работа с вашим коллегой, не бросайте им материалы для чтения.

Ответы (3)

Я вижу здесь пару областей для «улучшения».

Я первый настоящий разработчик, которого наняла компания.

Итак, вы обнаружили пробел в некоторых предметных знаниях/областях. Это хорошо; это означает, что вы знаете, что вам нужно работать более тесно и быть лидером, который необходим команде для достижения успеха. Это включает в себя введение всех в курс дела и заблаговременное создание необходимых вещей, таких как система контроля версий.

Мы пытаемся перейти на использование Git. Пользуюсь уже 7 месяцев, проблем нет

«Вы», использующие его, не составляют «Команду», использующую его. Git — это инструмент, очень похожий на многие вещи в разработке программного обеспечения. Если вы это знаете, это только помогает вам , а если вы действительно хорошо это знаете, то почему вы не обучали этому кого-то еще? Если это так легко и гладко, вы должны быть в состоянии выбить его за 5 минут. Объясните его полезность, может быть, покажите этому человеку, как много людей им пользуются.

«Вот как вы подключаете его к нашему проекту. Вот как вы время от времени нажимаете/сбрасываете/фиксируете. Вот как вы разрешаете конфликты. Это поможет нам сотрудничать и эффективно развиваться в унисон в этом проекте».

Что касается реализации Git, я бы выбрал очень простой подход:

Проблема, которую мы пытаемся решить, - это X. Способ, которым мы решаем X, заключается в использовании системы управления исходным кодом/репозитория, что позволит человеку А и мне работать вместе и совместно использовать одни и те же файлы, не наступая друг другу на пятки. Если мы не используем Git — это открывает двери для всевозможных проблем и т. д.

Я думаю, что это может быть решено без участия вашего менеджера. Если вы знаете, как использовать Git, и вы придерживаетесь лучших практик, создайте небольшую презентацию или что-то в этом роде и задокументируйте процесс и почему это полезно. Предоставьте пошаговое руководство или что- то в этом роде , что позволит людям доверять вам и покажет им, что вы знаете, о чем говорите. Используйте снимки экрана, аналитику Git, что угодно. Просто примирите это со смирением. Если ваш начальник снисходителен - это его проблема. Не твое. Вам не обязательно так жить — просто будьте на высоте и делайте свою работу как можно лучше.

«Git» — это инструмент, который помогает группам людей координировать изменения. Один человек, использующий его, вообще не очень помогает (некоторым помогает, но не решает важных проблем). Он должен использоваться всеми, иначе он становится бессмысленным для группы.
@gnasher729 Верно. По сути, это то же самое, что и Subversion, которую я использую. Вы где-то видели возможности для улучшения моего ответа? Не стесняйтесь редактировать.
@Джимми, хотя я не эксперт в изучении git (мы должны были изучать его одновременно), я написал учебники, отвел его в сторону и показал, как это работает, другое программное обеспечение и т. д. Я могу отправить только так многие *"Можете ли вы установить это программное обеспечение/запустить эту команду и подойти ко мне со своим ноутбуком, когда у вас будет свободная минутка...", напечатайте электронные письма или сообщения, не вызывая беспокойства. Он немного старше меня, что не помогает мне претендовать на его время. Думаю, я просто сяду за его стол и не уйду, пока он все не установит и не клонирует.
@nobrandheroes — Возможно, вам нужно запланировать 2 часа, а не «свободную минуту».
@МаркК. Для справки: git и Subversion решают одну и ту же проблему, но по-разному решают ее. (Я упоминаю об этом, чтобы устранить возможную путаницу с «по сути, это одно и то же»)

Перспектива лучше....

Я бы боялся броситься под автобус.

Представьте себе этот разговор:

«Эй, босс, почему вы реализуете процесс с помощью Git именно так, как сейчас?»

«Ну, ваш коллега не будет использовать Git».

«Я знаю! Он не будет читать учебник, который я дал ему шесть месяцев назад. Это так просто!»

— Ты уже полгода знаешь решение этой задачи и не объясняешь ему? Или не помог ему узнать?

«Ну, я отправил электронное письмо, и он должен его прочитать и стать таким же экспертом, как я!»

«Вы эксперт в предметной области, а коллега не знаком с этой технологией. Почему вы не уделили 30 минут или часу подробному объяснению?»

"... У меня нет хорошего ответа на этот вопрос."

Конкретные вопросы

Как мне объяснить ситуацию (снова) менеджеру, не вызывая волнений?

Пока вы не потратите значительное время на объяснение Git своему коллеге (возможно, включите в эти разговоры своего босса), вы будете вызывать описанное выше.

  1. Организуйте 30-60-минутную встречу, на которой вы расскажете о преимуществах контроля версий. В первой части ВООБЩЕ НЕ ГОВОРИТЕ О GIT. Серьезно стремитесь к 60 минутам. Действуйте так, как будто ваш коллега и руководитель вообще ничего не знают о VCS.
  2. После этого представьте Git и объясните, как он решает текущие проблемы, с которыми вы столкнулись.
  3. Затем представьте, как, по вашему мнению, должен работать рабочий процесс для Git.
  4. Пройдитесь по нескольким примерам, которые у вас и у них действительно будут.

Как мне получить оптимальный результат, не привлекая внимания к бездействию моего менеджера

См. гипотетический разговор. Если бы я был вашим менеджером, меня, вероятно, раздражало бы то, что наш разработчик не может найти базовое решение, которое работает для небольшой команды, что является решенной проблемой в разработке программного обеспечения.

Вы не можете просто засунуть голову в землю, защищаться и обвинять своих коллег. Возможно, git слишком сложен для вашей команды. Если это так, это не вина вашего менеджера - это ваша вина, что вы не предложили что-то более простое (возможно, SVN - концептуально его гораздо проще понять, чем git/mercurial).

Вы должны работать с инструментами и людьми, с которыми вы работаете. Иногда в бизнесе у вас не может быть оптимальных решений из-за факторов [x, y, z].

Неэффективный рабочий процесс лучше, чем идеально эффективный процесс, который не выполняется или не соблюдается.

Как уберечь коллегу от неприятностей (он уходит, а компания разваливается)?

Вы возьмете на себя ответственность за то, что что-то не работает. Вы здесь эксперт, и если система выйдет из строя, кто будет нести ответственность? Ты будешь. Не ваш коллега, а вы, эксперт в предметной области.

Он снисходительный и покровительственный, как это

Я бы взял время, чтобы подумать, действительно ли ваш менеджер снисходителен или просто разочарован тем, что «простая» проблема привела к тому, что столько времени было потрачено впустую.

Большинство менеджеров раздражает, когда им приходится принимать решения и создавать процессы, в которых их команда является экспертом, из-за нерешительности этой команды в течение ПОЛГОДА.

Git все еще иногда сбивает меня с толку, и я использую его уже несколько лет. Некоторые люди учатся по-разному. Я нашел стандартные записи для GIT более чем бесполезными. Но я нашел несколько, которые помогли мне разобраться и объяснили так, как мне было удобнее. Встреча, на которой вы демонстрируете использование, может стать толчком, чтобы помочь разработчику начать работу.
Git может сбивать с толку. Но мы не занимаемся сложными рабочими процессами. На данный момент это просто вытягивание, нажатие и клонирование. Я также проводил с ним мануалы.
Выше было для ReallyTired. Я не могу заставить @ работать прямо сейчас.
@nobrand вы понимаете, что для того, чтобы нажать, вам нужно понять, как git обрабатывает коммиты, верно?
@enderland Что вы имеете в виду , как git обрабатывает коммиты ? Может быть, я упускаю что-то конкретное для git?
@enderland. Однако, просто перечитывая ваш основной пост, потому что вы делаете хорошие выводы, я думаю, что, возможно, я недостаточно ясно выразился, что заставил вас сделать предположения. Git и наша реализация — это мандат от нашего босса, мы получили его одновременно, несколько месяцев назад, и именно тогда я узнал об этом, а он — нет. Все наши проекты — это репозитории git, и я неоднократно пытался лично помочь ему с этим, но мне не удалось заставить его даже установить его. Наш босс прекрасно знает, где мы застряли в процессе. Я никого не виню, но я беспокоился, как представить это как таковое.

Вам нужно решить, будете ли вы частью проблемы или частью решения. Если вашему коллеге действительно так просто освоить Git, как вы думаете, то знаете ли вы, почему он до сих пор не сделал такой простой вещи? Если он так важен для компании, как вы заявили (он уходит, а компания разваливается), и руководитель знает, что ваш коллега не хочет учиться пользоваться Git, этот запутанный способ его внедрения может быть единственным компромисс, на который может пойти менеджер.

Я бы атаковал его, как если бы отлаживал кусок кода. Сначала поймите, почему что-то не работает, а затем найдите подходящее решение. Прямо сейчас кажется, что вы решили, что основная проблема заключается в том, что ваш коллега ленив, но это не та проблема, которую вы можете решить. Я думаю, что если вы копнете немного глубже, вы сможете найти что-то, что вы можете сделать, чтобы улучшить ситуацию, не бросая своего коллегу под автобус или говоря своему начальнику, что вы считаете его образ действий глупым.

Поговорите со своим коллегой и узнайте, в чем реальная проблема. Некоторые люди имеют другой стиль обучения, чем другие. Я лучше всего учусь при самостоятельном чтении, но некоторые люди учатся лучше, когда кто-то проводит их через это. Если бы вы показали ему основные шаги, чтобы загрузить его код в Git, внести изменения, а затем проверить его, а затем сообщить ему, если у него возникнет вопрос о том, как сделать что-то, что вы готовы ответить на него, он будет чувствовать себя более удобный переход. Я думаю, что ваше отношение к тому, что изучение Git — это тривиальное усилие, является большой частью проблемы здесь. Вы местный эксперт, но если он попросит вас о помощи, вы заставите его почувствовать себя тупицей, потому что он не может просто прочитать учебник и понять это.

Очень немногие люди что-то делают (или не делают) без какой-либо основной причины или мотивации, и обычно очевидная причина не является настоящей причиной. Избегать изменений не так уж и редко: изменение того, как вы что-то делаете, требует больших усилий и сопряжено с риском того, что вы сделаете ошибки и будете выглядеть глупо, пока изучаете новую систему. Итак, ваш коллега не ленив, ему просто не нравится чувствовать себя некомпетентным. Как бы вы себя чувствовали, если бы кто-то дал вам набор волынок, несколько нот и указал на видео на YouTube после того, как рассказал вам, как легко играть на волынке? Подготовленному музыканту это может быть легко понять, но, возможно, не так уж сложно для разработчика.

Вполне возможно, что если бы вы просто помогли своему коллеге изучить Git, чтобы он был более уверен в своих способностях его использовать, вы не только решили бы проблему, но и в конечном итоге выглядели бы довольно хорошо для своего руководителя, улучшив рабочие отношения с вашим коллегой. , и не нужно иметь дело с какой-то запутанной реализацией Git.

Я тоже не умею собирать вещи сама. Мне больно пытаться ориентироваться в практических материалах без чьей-либо помощи. Меня действительно раздражает, когда люди говорят мне: «Просто посмотри это видео и разберись — это просто!». Для меня это непросто. Если у коллеги проблемы, как у меня, поможет официальная сессия «знакомство с Git», которая может длиться час или около того. Если вы можете заставить своего менеджера появиться, это может помочь с проблемой реализации.
@Франсин - Конечно. Сессия «Ознакомление с Git» необходима для всей команды . Люди, которые уже знакомы с Git, могут привыкнуть к совсем другим процессам. Для управления версиями необходимо определить один процесс и совместно использовать его в команде. Инструмент без процесса — ничто.
Может быть, он боится сделать что-то, что перезапишет текущий код в «центральном»? репозиторий (предполагаемый рабочий процесс), а также когда он работает с чем-то, он не знает, как исправить слияние, как найти правильный код для слияния, если он работал над чем-то ранее, как не потерять работу, которую он сделал над чем-то другим , пока он занимается чем-то вместе с вами или другими коллегами. Слияние конфликтов может быть адом, и вы можете почувствовать себя идиотом, потратив полдня на то, чтобы просто рыскать по инструменту VCS, чтобы попытаться собрать код, который уже работает, в начале VCS была огромной тратой времени.