Руководство не видит ценности в стандартном процессе для конфигурации машины и новой ориентации на разработчика

9

Около 3 месяцев назад наш ведущий веб-разработчик и дизайнер (одно и то же лицо) покинули компанию, причиной ухода стали более зеленые пастбища. Хорошо для них, говорю я. Моя проблема в том, что его отдел был полностью без документов. С тех пор, как ушел лидер, все было непросто, есть много знаний, как теоретических знаний, которые мы используем для цитирования новых проектов, так и технических / практических знаний о наших существующих продуктах, которые мы потеряли в результате его ухода. Обычно я работаю менеджером по продуктам (для самих наших продуктов) и бизнес-аналитиком в некоторых наших консультационных проектах. За прошедший год я научился программировать и стараюсь продолжать двигаться вперед. Мы взяли на себя задачу настроить свой ноутбук как машину для разработки, надеясь реализовать некоторые из более простых запросов функций и исправить некоторые несложные ошибки, которые поступают в нашу систему продажи билетов. Но никто не знает, как взять новую машину с Windows и настроить ее для бесперебойной работы с нашими производственными приложениями.

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

Мой вопрос состоит из двух частей:

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

  2. Являюсь ли я маленьким ребенком и должен ли я разобраться в этом процессе и создать документ самостоятельно?

OpenCoderX
источник
1
Многое из этого зависит от используемой технологии и других деталей. В некоторых технологических стеках вы можете найти наиболее важные зависимости, которые необходимо установить в нескольких файлах конфигурации, в других случаях это необходимо документировать. Я думаю, что разработчик, который сейчас работает с системой, должен лучше знать, какая информация абсолютно важна.
Торстен Мюллер
2
И это должен быть урок в жизни. Подготовка вещей - это половина работы, и убедитесь, что все это не рухнет, когда вы уйдете - это другая половина.
MrFox
Это начинает меня расстраивать, я пытаюсь быть упреждающим, но есть некоторые проблемы с конфигурацией, которые я пропускаю (я опубликую специфические ошибки при переполнении) Стек выглядит следующим образом: сервер MS SQL, Visual Studio 2008, Visual Source Safe, IIS 7, код приложения ASP.NET.
OpenCoderX
1
Visual Source Safe, а? Если это так, я подозреваю, что то, что делал предыдущий парень, не было ужасно блестящим. Опять же, по крайней мере, есть контроль источников.
Уайетт Барнетт
1
Я GIT умирать. Как только я получу версию сайта, работающую локально, я буду использовать GIT для отслеживания своих изменений, а затем только зарегистрировать свою основную ветку GIT в VSS. Контроль источника в контроле источника.
OpenCoderX

Ответы:

5

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

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

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

superM
источник
У нас есть системный администратор, и их позиция заключается в том, что они настраивают компьютер с базовым доступом к сети, правами пользователя (Active Directory) и устанавливают любое программное обеспечение. Например, мне пришлось работать с сетевым администратором, чтобы установить Visual Source Safe и Visual Studio, но после установки на этом их знания заканчиваются. Это никогда не было в их компетенции, чтобы сделать эти конфигурации.
OpenCoderX
1
Может быть, я слишком избалован - наш системный администратор может даже выполнять sql-запросы при публикации проекта (не зная sql))). В этом случае вам обязательно нужно иметь документацию))
superM
Во многих компаниях, особенно параноидальных или некомпетентно управляемых, «период уведомления» - это время, которое требуется для того, чтобы выйти из отдела кадров или офиса менеджера, чтобы подать в отставку, чтобы нас быстро сопровождали за дверь.
jfrankcarr
Я думаю, что лидерство, которое оставило, дало уведомление нескольких недель, но что он сделал, чтобы подготовить нас к его отъезду, я не знаю. Я думаю, что они в основном обучали замену, с которой все было в порядке, но машину, которую они используют, настроил человек, который ушел. Я должен был немного сунуть нос в ситуацию, но до тех пор, пока программирование их отъезда для меня не стало просто хобби. Меня забрали, когда я обнаружил, что наш новый разработчик знает о настройке новой системы столько же, сколько и я.
OpenCoderX
Это будет отличаться для разных компаний, но везде, где я работал, процесс конфигурации машины должен был документироваться как требование условного депонирования.
JohnL
5

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

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

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

Являюсь ли я маленьким ребенком и должен ли я разобраться в этом процессе и создать документ самостоятельно?

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

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

FrustratedWithFormsDesigner
источник
1

Перво-наперво, вам нужно выйти из Visual SourceSafe. Я думаю, что это должно быть сказано. По крайней мере, перейти на TFS. И есть и другие варианты.

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

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

Есть несколько книг о том, как перевести ваше окружение в более непринужденное состояние. Мне самому нравится Непрерывная доставка и Непрерывная интеграция из серии Фаулера, но есть и другие варианты.

Майкл Браун
источник
1

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

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

(Знания должны быть отражены в документе, а не разработчик, который был самым длинным.)

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

Через год после сбоя жесткого диска на восстановление потребовалось 2 дня.

Скажите своему боссу: если жесткий диск выйдет из строя на этом компьютере, развитие не произойдет!

Я решил, что 2 дня были пустой тратой двух дней ....

Теперь мы используем виртуальные машины с образами дисков для каждого проекта разработки.

Программа установки копирует образ виртуальной машины на целевой компьютер и запускает его. Есть значок «runme», по которому вы щелкаете. Он запрашивает ваше имя пользователя, а затем изменяет имя пользователя, используемое для доступа к исходному коду, на ваше собственное. Это также изменяет пустое поле автора документа IDE на ваше имя.

(Я написал runme примерно через 2 часа, мы разработчики, мы программируем наши проблемы)

Наши разработчики - стандартные машины, за исключением сервера виртуальных машин.

Мы используем virtualbox, который не дорогой.

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

Полное понимание: я руководитель группы, в которой я работаю, и мое руководство дает мне полную свободу действий.

Тим Виллискрофт
источник
Я часто задумывался о том, чтобы делать виртуальные машины, а не настраивать все на ПК. Имейте хорошую, нетронутую виртуальную машину для разработки и не беспокойтесь, что ИТ-специалисты заставили обновление испортить вашу систему разработки.
Джоэл Рондо
Однажды я отлаживал программу на C ++, взаимодействующую со многими системными DLL, когда запускалось обновление антивируса. Это изменило некоторые из DLL. Думаю, я больше не буду воспроизводить этот тест.
Тим Уиллискрофт
0

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

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

Они не тот же список.

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

У меня вопрос, что делает новый разработчик? Это должна быть его работа, а не ваша. Он замена другого парня. Да, отстойно, что он вошел в среду без документации, но его задача - документировать вещи. Пусть он сядет, выяснит, что такое среда разработки, и задокументирует ее. Заставьте его выяснить и задокументировать, что требуется для запуска приложения на клиентском компьютере.

Что касается связи со старым разработчиком, я бы не стал. ИМХО, если разработчик покидает компанию без документации или передачи знаний, он надеется, что его вызовут для выполнения какой-то работы по ставке консультирования. Это непрофессионально и не должно быть вознаграждено. Да, может потребоваться дополнительное время, чтобы выяснить это для себя, но вы / команда узнаете кое-что в процессе, и произведенная документация будет актуальной и актуальной.

Tyanna
источник