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

Этот список — мой список вещей, которые наиболее важны для меня в работе разработчика в данный момент моей жизни.

Этот список со временем меняется по мере того, как меняются мои обстоятельства и приоритеты.

Этот список, вероятно, отличается от вашего списка.

Редко можно найти «работу своей мечты», которая соответствует всем вашим критериям.

Часто приходится жертвовать менее важными качествами ради более важных.

Я сделал это.

Это нормально, если вы понимаете компромиссы, на которые идете.

В начале карьеры у вас меньше вариантов. Вы не можете позволить себе быть разборчивым.

Это нормально, потому что у вас, вероятно, есть…

✔ Больше времени
✔ Больше информации
✔ Меньше ограничений
✔ Больше опыта

Я делюсь этим списком в надежде, что он поможет кому-то критически подумать о своем следующем шаге в карьере.

Итак, без лишних слов, мои 10 лучших качеств в работе по развитию (примерно в порядке важности):

1. Культура удаленного доступа 🏡

Возможность работать удаленно имеет для меня ключевое значение — я никогда больше не буду работать в офисе, если смогу этого избежать.

Свобода видеть своих детей, когда они возвращаются домой из школы, делать перерыв на кофе с моей женой и просто делиться более «обычными» моментами повседневной жизни с моей семьей — бесценна.

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

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

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

Компании недостаточно просто добавить несколько приглашений в Skype к своим приглашениям на встречи и положить этому конец.

Необходимы здоровые ожидания в отношении удаленных работников.

Плохо: поскольку вы удалены, вы должны быть доступны 24/7.

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

2. Культура мастерства 🛠

ремесло (сущ.): искусство, ремесло или занятие, требующее особых навыков

Хорошее программное обеспечение создается, когда разработка рассматривается как ремесло.

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

Я хочу работать с коллегами, которые рассматривают свою работу как ремесло, которое нужно оттачивать.

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

Преимущества культуры мастерства:

✔ Более высокое качество
✔ Гордость владельца
✔ Постоянное совершенствование

3. Программное обеспечение — это продукт 💾

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

Центр затрат против менталитета центра прибыли.

Я недавно твитнул об этом.

При рассмотрении в качестве центра затрат акцент делается на снижении затрат.

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

При рассмотрении в качестве центра прибыли акцент делается на максимизации прибыли.

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

По моему опыту, отношение центра затрат таково: «Сделай это».

Позиция центра прибыли: «Сделайте это хорошо».

Я предпочитаю последнее.

4. Соблюдает лучшие практики разработки 👨‍💻

Это побочный продукт культуры мастерства.

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

Лучшие практики включают…

✔ YAGNI
✔ Чистый код
✔ Защитный код
✔ Шаблоны проектирования
✔ Последовательный стиль
✔ Принципы SOLID
✔ Автоматические тесты
✔ Минимизация сложность
✔ Функции без побочных эффектов
✔ и т. д.

Использование хороших практик разработки способствует…

👍 качество
👍 надежность
👍 читабельность
👍 ремонтопригодность
👍 надежность

Чистая, хорошо структурированная, хорошо протестированная кодовая база также более приятна для работы.

Именно в такой кодовой базе я предпочитаю работать.

5. Соблюдает лучшие практики DevOps 💻

Компания, которая уделяет первостепенное внимание качеству программного обеспечения, отдает приоритет DevOps.

Инвестиции в DevOps имеют большое значение для улучшения жизни разработчиков.

Преимущества автоматизации DevOps многочисленны:

☑ Более высокая стабильность
☑ Более высокая пропускная способность
☑ Более простое развертывание
☑ Сокращение человеческих ошибок
☑ Меньше времени, затрачиваемого разработчиком на развертывание

6. Талантливые и целеустремленные коллеги 👩‍💻

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

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

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

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

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

7. Анти-предприятие 🏢

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

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

У меня низкая терпимость к отходам.

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

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

Я не хочу…
↪ тратить 15 минут на ввод запроса на изменение
↪ восстановление базы данных разработки
↪ это займет неделю
↪ это в противном случае у меня ушло бы 5 минут
↪ при наличии соответствующих разрешений.

Я не люблю быть скованным процессом.

У меня нет желания подниматься по карьерной лестнице или играть в статусные игры.

8. Возможность профессионального роста 📈

Я хочу, чтобы меня бросили вызов профессиональному росту.

Мой рост как разработчика зависит от…

1️⃣ моя собственная инициатива,
2️⃣ проект(ы), над которыми я работаю, и
3️⃣ люди, с которыми я работаю.

Самые большие периоды роста в моей карьере были результатом не только собственной инициативы, но и того факта, что я работал над интересными проектами с, что более важно, умными коллегами (№ 6).

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

Часто этот потенциал максимален, когда вы впервые присоединяетесь, и со временем уменьшается, но не всегда.

Новые проекты или новые члены команды могут разжечь огонь роста.

9. Очистить линию от вклада в ценность ➡

Я хочу видеть, как мой вклад способствует успеху компании.

Это способствует большему удовлетворению хорошо выполненной работой.

Легче увидеть, как ваш вклад влияет на общий успех компании, когда…

✔ компания небольшая (№7), а
✔ программное обеспечение — это продукт (№3).

10. Компенсация/льготы/справедливость 💵

Он занимает последнее место в моем топ-10, но это не значит, что он не важен.

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

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

Как только капитал входит в уравнение, вы переходите от простой торговли временем за деньги к торговле временем за деньги + долю в чем-то потенциально очень ценном.

Хорошая компенсация — это один из способов, которым компания может показать мне, что мой вклад ценен.

Вот оно. Мои 10 лучших качеств в работе по разработке программного обеспечения.

Какие вещи есть в вашем списке? Оставьте свой комментарий в оригинальной теме здесь.

- Джон

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

Первоначально опубликовано на https://blog.jonblankenship.com 13 июня 2020 г.