2013-01-23 23:00:25 +0000 2013-01-23 23:00:25 +0000
353
353

Как я могу подготовиться к тому, что меня сбивает автобус?

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

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

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

Тогда… Меня сбил автобус “(http://en.wikipedia.org/wiki/Busfactor)”. Какая трагедия! Было слишком рано, чтобы быть взятым из этого мира…_

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

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

_Я остался задаваться вопросом… что я мог бы сделать? Что я пропустил? Как я мог изменить вещи для этих бедных душ? Когда вы работаете в межфункциональных командах, трудно держать остальных в курсе деталей того, что вы делаете. Легко быть “черным ящиком” магии для команды. Хуже того, вы часто разрабатываете/обладаете определенными наборами навыков, которые нелегко задокументировать (и могут включать в себя часы за часами тренировок или систем обучения).

Мой вопрос:

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

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

Ответы (12)

211
211
211
2013-01-24 01:05:15 +0000

Документация.

Достаточно частые кодовые коммиты.

Документация.

Документация.

Документировать ваши идеи, ваши проекты и ваш код. Любые известные вам сведения.

Документация.

Документирование исправлений ошибок объяснение, в чем проблема и как вы ее исправили, и почему.

И упоминала ли я документацию?

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

Тем не менее, я не всегда захожу так далеко, чтобы называть это личной ответственностью: в конечном счете, если команды неправильно управляются и/или организованы, то это не ваша ответственность; в случае, если вы переходите на новую работу, я просто передаю мою завершенную документацию и думаю “ну, если вы не можете использовать и поддерживать это должным образом, то это your fault… now good good good good good”.

Эта линия мышления не совсем уместна в случае “сбитого автобуса”, где вы, возможно, находитесь в процессе внедрения такой политики, но еще не сделали этого. Для этого сценария я бы просто предложил, чтобы вы побудили руководство (и ваших старших девелоперов) как можно скорее начать серьезно относиться к этим вещам _.

133
133
133
2013-01-23 23:42:16 +0000

Не делай по-другому. Работайте так, как будто завтра вас НЕ “сбивает автобус”.

Проблема “сбивает автобус” - это организационная проблема, а не то, что должно быть явно выражено в ваших собственных рабочих задачах.

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

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

Умелые инженерные практики решают многие вопросы дилеммы “попасть под автобус”. Выходя за рамки этой дилеммы и будучи готовым к немедленному и постоянному разочарованию, вы создадите много накладных расходов для индивидуального вкладчика. Похоже, что обстановка, описанная в ОП, может выиграть от простого улучшения практики и укомплектования кадрами, ему нет необходимости работать так, как будто он может испариться в любую минуту.

75
75
75
2013-01-24 03:48:21 +0000

Если ты работаешь подрядчиком, я бы сказал, что это 100% на твоего работодателя. Скажите им, что достижение целей, которые они для Вас поставили, означает, что другие вещи, которые, по Вашему мнению, должны считаться целями, не выполняются; спросите их, не хотят ли они скорректировать Ваши цели. Они вполне могут сказать вам, что вы должны продолжать в том же духе, поскольку ваше время дорого и они хотят получить лучшее краткосрочное соотношение цены и качества.

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

  • Некоторые вещи, которые помогут в планировании преемственности:

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

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

  • (Возможно, программное обеспечение специфическое) Документ четко контр-интуитивных процессов или проектных решений, важно определить, что процесс признан контр-интуитивным и почему это так, независимо от того, что это так. Например, если ваш клиент попросил вас сделать что-то, что кажется “неправильным” (“Я не эксперт в области, но вы уверены, что хотите это сделать?”), и вы объяснили, почему вы считаете, что это неправильно, и они подтвердили, что это то, что они хотят (еще лучше, если они объяснили, почему), то причины, по которым вы считаете, что это неправильно, и объяснение, почему это правильно, должны быть задокументированы. Что функций программного обеспечения до спецификаций будет недостаточно для замены, у них будет тот же самый вопрос, что и у вас.

  • Для любой проблемы, с которой вы сталкиваетесь и которая требует много времени/поисков, чтобы решить ее, документируйте проблему, симптомы, сокращенный путь к решению (т.е.: зная то, что вы знаете сейчас, какой был самый быстрый путь от выявления симптомов к решению), и к решению. Симптомы действительно важны для вашей замены, потому что они попадут в них до того, как они полностью осознают проблему.

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

64
64
64
2013-01-24 07:15:51 +0000

Отпуск делает хорошую “тренировку”, чтобы подготовиться к таким вещам. Это также помогает измерить, насколько хорошо вы подготовлены. Возвращайтесь к работе через 2-3 недели и считайте дни и усилия, потраченные на очистку вашего “отставания” - это может сделать достойное приближение к “хит-параду”.

Это также делает полезный инструмент, если вы хотите улучшить. Проанализируйте элементы бэклога, которые вы должны разрешить, и спросите себя, что можно сделать, чтобы это мог сделать кто-то другой. На одной из прошлых работ, это помогло мне сократить “отпускной бэклог” с примерно трех недель до двух дней менее чем за год.

  • Ох, кажется, я единственный, у кого есть эта информация, мне нужно задокументировать ее, чтобы сделать доступной для всей команды.
  • Черт возьми, никто кроме меня не может исправить эту ошибку, мне нужно найти и обучить резервного парня…

  • Следует помнить, что обычно это считается ответственность вашего руководства , так что все, что вы делаете за пределами требуемого, делается по вашему желанию. Спросите себя, как сильно вы хотите бороться с bus factor и действовать соответственно.

Я, например, хочу быть replaceable

  • … чтобы другому парню, проверяющему мои вещи из repository , не пришлось перезванивать мне, пытаясь понять unmaintainable code
  • … так что другому парню, просматривающему мои записи в issue tracker , не нужна моя помощь в figure what I was thinking about during work on it
  • … так что другому парню, читающему мои wiki pages - … не нужно, чтобы я объяснял то, что там задокументировано
  • . …чтобы я мог наслаждаться тем, как вещи, которые я сделал растут и расцветают, живя своей собственной жизнью

…чтобы я мог сосредоточиться на новых вещах, не отвлекаясь на заботы о том, что осталось позади.

16
16
16
2013-01-23 23:16:18 +0000

Спроси свою команду. Спроси своего менеджера. Представьте им вопрос именно так, как вам нужно.

Дайте им варианты. Документация для будущего разработчика. Документация для них. Выплата технического долга. Все, что угодно. Дайте им оценку времени. Дайте им выбор. Пусть взвесят это в сравнении с твоей обычной повседневной работой.

Эй, они могут даже решить, что стоит рискнуть. Но, на самом деле, это им решать.

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

13
13
13
2013-01-23 23:21:59 +0000

Я хотел протянуть руку помощи и ответить на эти вопросы…

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

Ответ, данный отличается от урока!

Пояснения

Существуют в основном два различных сценария, которые создают единую точку отказа, что ОП обращается.

Бизнес

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

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

По моему опыту наиболее успешные из них также способствуют развитию подхода к обучению. Под этим я подразумеваю, что вам редко дают “ответ” на вопрос, а скорее обсуждение и конкретные вопросы эксперта(ов), которые ведут вас по пути изучения и расширения ваших знаний о продукте, процессе, технологии в игре.

Это также предлагает свежее понимание и перспективу для эксперта в этой дискуссии. Обучение действительно может идти в обе стороны.

Работник

Вообще говоря, у вас есть два разных типа сотрудников, которые в конечном итоге в этой должности. То, что я называю ‘The Go To’ и ‘The Protector’.

The Go To’ это то, что сотрудник, который большинство менеджеров любят. He\she - это тот, которому можно назначить практически любую задачу или проект и не беспокоиться об этом. Это люди, которые вырезают свою нишу в компании и становятся теми, кто имеет ответы.

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

Оба непреднамеренно создают единые точки отказа. Иногда, не поделившись всей информацией, “The Go To” всегда обеспечивает быстрый ответ, и “The Protector” не делится никакой или всей информацией.

Таким образом, в двух словах вся документация в мире не решит основную проблему единой точки сбоя. Да, это важно и должно быть частью каждого ППГ и плана готовности к стихийным бедствиям. Но на самом деле документация не является обменом знаниями в том смысле, что кто-то должен быть в состоянии вмешаться и выполнять Ваши рабочие задачи без необходимости предварительного просмотра 200-страничного документа.

Не отвечайте на вопрос; уполномочьте их так, чтобы они могли ответить на него сами.

12
12
12
2013-01-24 06:41:17 +0000

Вот что мы делаем там, где я работаю:

a) Мы используем вики для документации. Не файлы Microsoft Word или текстовые файлы. Вики с возможностью поиска, с полным отслеживанием изменений и т.д. (я бы порекомендовал Confluence , но Confluence v4 - это такая собака, что я предлагаю вам поискать в другом месте)

  • Любые повторяющиеся или делегируемые процессы должны быть документированы.
  • Следует написать контрольные списки “вот как мы делаем __\_”
  • Контрольные списки очень важны для создания команд, так как они позволяют выполнять процессы любому, кто может следовать списку…

b) Контроль версий, очевидно

c) Система отслеживания дел/проблем, очевидно

d) Комментарии к вашей работе. Это самая нюансированная вещь, и ее так трудно научить, но как подрядчик/независимый, вы, возможно, сможете это сделать: Комментарии должны объяснить ваш мыслительный процесс и почему вы делаете. Ссылки на документацию, переполнение стека и т.д. вполне уместны. Подходят параграфы и страницы комментариев. Объяснение того, что вы пытались и НЕ делали, уместно. Одна из самых больших проблем кода заключается в том, что теряется мысль и пот, которые идут на то, чтобы что-то работало одним способом (а не другим). Есть книга, что-то вроде “красивого кода” или что-то в этом роде, в которой есть фрагмент на блоках комментариев в одной из больших открытых VCS систем Subversion или Git , я думаю). Это красиво, потому что рассказывает историю. Вот что делает этот код. Вот как он работает. Вот как он структурирован. (Признаюсь, что этот блок, насколько я помню, может не входить в вопрос “почему”.)

Результат этого: Сколько людей возвращаются и редактируют код только для того, чтобы добавить комментарии? Мы все должны… много. Но на практике почти никто не делает этого.

10
10
10
2013-01-25 13:21:31 +0000

Netflix имеет систему, которую они называют ChaosMonkey . В сущности, она ‘ломает’ или эмулирует ломание определенных систем случайным образом.

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

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

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

С момента написания этого ответа, я стал осведомлен о https://www.fdic.gov/news/news/financial/1995/fil9552.html . В основном, FDIC рекомендует банкам ввести обязательные, оплачиваемые сделки сроком не менее 2 недель подряд для ключевых сотрудников банка. Благополучие сотрудников является вторичным фактором. Основное соображение заключается в том, что это заставит банки назначить кого-то другого, кто будет заботиться об увольняемом сотруднике. Если увольняемый сотрудник растрачивает деньги, схема развалится на части под присмотром заменяющего сотрудника. Это также означает, что банк не будет уязвим для автобусной атаки.

9
9
9
2013-01-24 08:41:52 +0000

Я бы начал с

  1. Стандартизация

  2. Регулярные и обязательные отзывы о коде/проекте

  3. Спирит и дубль и дубль и дубль 4. Очевидно, что Документ. Это старая песня. Я больше не буду ее петь.

5
5
5
2013-01-24 14:50:09 +0000

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

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

  • Процесс обычно включает:

  • Определение областей риска

  • Документирование процессов

  • Определение соответствующей реакции на различные сцены

  • Принятие планов по работе со сценариями.

2
2
2
2013-12-16 15:34:26 +0000
  • Если кто-то пишет сценарий / рутина, то someone должен быть первым, кто использует, что в производстве.
  • Если кто-то развертывает новые системы, то none никто не будет использовать или поддерживать тех, пока они не могут искать все необходимые учетные данные доступа сами по себе, в одиночку, ночью, не спрашивая кого-то другого.
  • Существует также “настройка в виде кода” и автоматизированное тестирование программного обеспечения. Это позволяет вашему преемнику реверс-инжиниринговать вашу работу.

  • В сущности, “вещи, которые еще не перечислены/тестированы, не существуют для нас”. Только перечисленные вещи надежны.

Мы называем это “известность”. (хранится только в чьей-то голове), и все отказываются действовать по этому поводу.

Очевидно, что это не работает между техническими и нетехническими темами. Но и мы не ожидаем, что техники смогут взять на себя финансовые расчеты от бухгалтерии. Так что даже наша бухгалтерия может забрать “знания в могилу”, если только 1 бухгалтер когда-либо делал эти расчеты.

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

0
0
0
2013-01-24 11:08:19 +0000

Пункты ниже должны быть в Вашем рабочем описании, переданном Вам и установленном владельцами компании. Их ответственность за это лежит на них. Однако, вы можете быть единственным, кто знает, что это необходимо.

  • Работайте в рамках хорошо установленных стандартов, установленных для вашей области или организации.
  • Документируйте то, что вы делаете.
  • Документируйте подробно, если вы отклоняетесь от хорошо установленных стандартов, и почему вы это сделали.
  • Документируйте, как документировать для вашей организации.
  • Если вы находитесь на вершине цепочки системного администрирования и владеете учетными записями пользователей root/super; создайте учетную запись, которая имеет максимально возможный допуск к секретной информации. Сгенерируйте для нее длинный случайный пароль. Распечатайте его на бумаге. Подпишите его. Запечатайте его в конверт и отдайте совету директоров, а не генеральному директору. Потому что генеральный директор может расстаться с компанией на плохих условиях и все равно иметь этот пароль. Скажите им, чтобы хранить его безопасно, за пределами сайта и его использования (Это может дать вам статус суперпользователя в сети в случае вашего отсутствия или по другим причинам, которые могут быть применимы).

Похожие вопросы

19
8
9
10
1