Привет, Хабр! На связи Сергей, ведущий разработчик в Контуре. Я уже рассказывал про свои правила в разработке — вы тепло приняли ту статью. В ней было про инструменты, решения и подходы, которые я использую постоянно — они позволяют мне получать предсказуемый результат в ежедневной работе. Но что делать, если передо мной нетривиальная задача? Сложный выбор? Ситуация, с которой я не сталкивался раньше и по которой у меня нет накопленного опыта?

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

Что такое ценность

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

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

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

Теперь давайте о самих ценностях.

Продуктивность

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

Например, когда я прихожу в новый проект, мне хочется лучше в нём разобраться и быстрее показать результат. Обычно я провожу небольшой технический аудит, по результатам которого завожу несколько небольших задач: уменьшить шум в логах, обновить устаревшие зависимости, добавить асинхронность, оптимизировать запросы в БД и тому подобное. Это даёт хорошую моральную поддержку на старте и позволяет «потрогать» разные части проекта, а каждый решённый тикет приносит мне удовлетворение.

Экспертность в разных областях

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

На привычном C# я пишу почти каждый день, разбираюсь в тонкостях работы MS SQL Server, участвую в разных проектах. Это даёт некоторую универсальность и возможность посмотреть на проблему под разными углами, оценить предполагаемые риски на старте: производительность, безопасность, масштабируемость, поддержка и так далее. Даже небольшое представление о работе других ролей позволяет лучше понимать коллег, заказчиков, соседние команды.

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

Такая универсальность — тот самый путь, по которому мне приятно идти.

Инициативность

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

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

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

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

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

Самостоятельность

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

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

Самое ценное, что можно извлечь из провалов — это опыт. Он вам обязательно пригодится.

Командный игрок

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

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

Дисциплина

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

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

Эффективность

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

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

Заметность

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

Зачем мне ценности

Есть миллионы уникальных ситуаций, в которых приходится принимать решения. И эти ценности позволяют мне быть последовательным и отвечать на вопрос «а почему я сделал этот выбор?». В отличие от конкретных правил, отходить от ценностей тяжело — это вызывает большое сопротивление. А несоответствие своих ценностей ценностям команды или компании неизбежно приведёт к конфликтам.

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

А вы сможете сформулировать две-три ценности прямо сейчас? Может быть они совпадают с моими? Если вы не знаете, как сформулировать ваши ценности, то подумайте вот над чем:

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

  • Посмотрите на свои провалы. Какая модель поведения привела к провалу? Сформулируйте антиценность и действия, как её избежать.

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

  • Посмотрите на обратную связь связь от коллег. Там можно поискать общие паттерны.

Поделитесь вашими ориентирами в работе в комментариях к этой статье.


Подписывайтесь на наш блог, впереди вас ждёт много интересных материалов! ? А ещё присоединяйтесь к каналу tech-команды Контура о технологиях, инженерном опыте и мероприятиях в Telegram. ?

Комментарии (0)