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

Это те, у кого *сексуальная* работа, они делают крутые вещи для клиентов компании. Лол, как бы ни была сексуальна работа программиста…

Но эти разработчики полагаются на массу работы с платформой и инфраструктурой.

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

Кто ваш пользователь?

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

Кодирование непосредственно для клиентов — один из вариантов. Но даже здесь двусмысленность делает вещи неясными. Является ли пользователь администратором, сотрудником, владельцем учетной записи на премиум-плане?

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

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

Это происходит, когда вы решаете проблемы за них. Но вы можете решить их проблемы только тогда, когда знаете, кто они.

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

Разработчики могут быть вашими пользователями

Если вы строите такие вещи, как:

  • API
  • SDK
  • Библиотеки с открытым исходным кодом
  • Конвейеры DevOps

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

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

Все сложно

Такое различие между клиентами и другими разработчиками вдвойне усложняет работу по поддержке команд, потому что:

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

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

Учитывайте опыт разработчиков инструментов, которые вы создаете. Легко ли это реализовать? Можем ли мы сделать это менее сложным? Как мы можем абстрагироваться от деталей и отделить основные части.

Кроме того, создайте инструменты, которые нужны другим командам. Решайте проблемы за них. Сделай так, чтобы они сказали: «Это так круто!»

Дополнительные ресурсы

Присоединяйтесь к ежедневному списку рассылки. Новые советы от меня, прямо на ваш почтовый ящик каждый день.

Присоединяйтесь к Medium за 5 долларов — получите доступ ко всему Medium + поддержите меня и других!