Команды, которые создают функции для конечных пользователей, получают все заслуги.
Это те, у кого *сексуальная* работа, они делают крутые вещи для клиентов компании. Лол, как бы ни была сексуальна работа программиста…
Но эти разработчики полагаются на массу работы с платформой и инфраструктурой.
Команды, работающие за кулисами, имеют решающее значение для поддержания работоспособности приложения. В то время как причудливые функции для конечных пользователей привлекают все внимание, команды разработчиков платформы часто выполняют тяжелую работу по масштабированию, производительности и безопасности.
Кто ваш пользователь?
Как разработчик, вы можете легко потерять информацию о том, кто ваш пользователь.
Кодирование непосредственно для клиентов — один из вариантов. Но даже здесь двусмысленность делает вещи неясными. Является ли пользователь администратором, сотрудником, владельцем учетной записи на премиум-плане?
Существует множество вариантов того, кто может использовать ваш продукт.
Передовые разработчики должны помнить об этих различиях. Наша работа как разработчиков состоит в том, чтобы создавать ценность для пользователей.
Это происходит, когда вы решаете проблемы за них. Но вы можете решить их проблемы только тогда, когда знаете, кто они.
С другой стороны, есть много профессий, где вашим «пользователем» являются другие разработчики.
Разработчики могут быть вашими пользователями
Если вы строите такие вещи, как:
- API
- SDK
- Библиотеки с открытым исходным кодом
- Конвейеры DevOps
Тогда ваши пользователи, скорее всего, являются разработчиками.
Это важное различие. Ваша компания может иметь миссию помощи определенной клиентской базе. Но если вы работаете с «вспомогательными» инженерными группами, то вашими пользователями на самом деле являются другие разработчики в вашей организации.
Все сложно
Такое различие между клиентами и другими разработчиками вдвойне усложняет работу по поддержке команд, потому что:
- Вам нужно понять, как сделать интуитивно понятную, гибкую архитектуру, которую легко использовать другим разработчикам.
- Вы также должны понимать, чего пытаются достичь передовые разработчики, чтобы создать необходимые им инструменты.
Быть великим инженером-программистом означает балансировать между этими интересами.
Учитывайте опыт разработчиков инструментов, которые вы создаете. Легко ли это реализовать? Можем ли мы сделать это менее сложным? Как мы можем абстрагироваться от деталей и отделить основные части.
Кроме того, создайте инструменты, которые нужны другим командам. Решайте проблемы за них. Сделай так, чтобы они сказали: «Это так круто!»
Дополнительные ресурсы
Присоединяйтесь к ежедневному списку рассылки. Новые советы от меня, прямо на ваш почтовый ящик каждый день.
—
Присоединяйтесь к Medium за 5 долларов — получите доступ ко всему Medium + поддержите меня и других!