Требование времени для непрерывной доставки как условие приема на работу [закрыто]

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

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

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

Компания **** осознает важность автоматизации тестирования как части процесса непрерывной интеграции / непрерывной доставки для своевременного и надежного вывода функций программного обеспечения на рынок.

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

Поэтому мы призываем каждого штатного разработчика работать над созданием и улучшением систем автоматизации тестирования и доставки программного обеспечения в той мере, в какой они считают, что выполнение такой работы отвечает интересам компании. Компания обязуется не ограничивать время, которое любой разработчик может тратить на такую ​​работу, до уровня менее 20% своего рабочего времени в неделю с настоящего момента по апрель 2019 года.

Это относится к текущим разработчикам и всем, кто присоединится к компании в течение этого периода.

Ответы (3)

Есть большая разница между «мы согласны с тем, что вы выступаете за CI/CD» и «мы нанимаем вас для внедрения CI/CD для нас».

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

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

Действия значат больше, чем слова.

Также «Спрос» не упадет хорошо
Это ответ. Многие компании говорят о внедрении методов CI/CD (в наши дни это модное слово), но относительно немногие (по моему опыту) действительно вносят необходимые изменения, чтобы это заработало. Лучше спросить их, что они на самом деле сделали , и оценить вашу заинтересованность в присоединении к ним на основе этого, чем издавать указы «убедиться, что это будет сделано» только для того, чтобы через несколько месяцев разочароваться в общей инерции внутри команды.

Написание тестов, как и написание и сопровождение любого кода, стоит денег. Распределение ресурсов — это бизнес-решение , основанное на технических соображениях.

Меня заверили, что это именно то, чего хочет компания, и для меня не будет проблемой выступать в качестве сильного сторонника CI/CD.

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

Доведение этого дела до сведения руководства будет вашей работой, если вас возьмут на работу.

Это не приглашение диктовать политику компании как условие вашего трудоустройства.

(Обратите внимание, что я определенно считаю, что автоматизированные тесты — это хорошо.)

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

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

Однако у вас может быть возможность повлиять на ситуацию. Если компания серьезно настроена на автоматизированные тесты и CI/CD, вы можете выработать план со своим будущим начальником.

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

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

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

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