За почти два десятилетия работы разработчиком я стал лучше понимать, что важно для меня в работе, побывав в полудюжине различных сред, которые превосходны в одних качествах, но отсутствуют в других.
Этот список — мой список вещей, которые наиболее важны для меня в работе разработчика в данный момент моей жизни.
Этот список со временем меняется по мере того, как меняются мои обстоятельства и приоритеты.
Этот список, вероятно, отличается от вашего списка.
Редко можно найти «работу своей мечты», которая соответствует всем вашим критериям.
Часто приходится жертвовать менее важными качествами ради более важных.
Я сделал это.
Это нормально, если вы понимаете компромиссы, на которые идете.
В начале карьеры у вас меньше вариантов. Вы не можете позволить себе быть разборчивым.
Это нормально, потому что у вас, вероятно, есть…
✔ Больше времени
✔ Больше информации
✔ Меньше ограничений
✔ Больше опыта
Я делюсь этим списком в надежде, что он поможет кому-то критически подумать о своем следующем шаге в карьере.
Итак, без лишних слов, мои 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 г.