Что я узнал, работая в одной из крупнейших технологических компаний мира

Проработав в Amazon почти четыре года, я приобрел множество навыков, которые будут жизненно важны для моей карьеры на долгие годы. Когда я только начинал в 2016 году, это было действительно похоже на питье из пожарного шланга по сравнению с работой в НАСА. Я не могу говорить от лица каждой отдельной команды в Amazon, но для меня инженерия в Amazon движется со скоростью и точностью, что складывается в принципы лидерства, которые есть в Amazon, такие как Правы, много, Настаивать на самом высоком. Стандарты »и Одержимость потребителями .

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

Одержимость клиентов

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

  • Легко ли это для клиентов использовать и понять?
  • Каковы виды отказов этого решения и как мы можем предотвратить или смягчить их?
  • Насколько масштабируется решение и удовлетворяет ли оно спрос в ближайшие 5–10 лет?
  • Это единственные решения, которые мы можем придумать, или мы можем сделать лучше?
  • Является ли решение экономически эффективным как для клиентов, так и для бизнеса?

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

Большая часть операций - это автоматизация. Насколько легко развернуть и протестировать наш код от предварительной до производственной среды, когда мы выпускаем новые функции? Откатить, если есть проблема? Можем ли мы создать процессы для максимального смягчения или предотвращения проблем? Можем ли мы ограничить проблемы отдельных клиентов и не повлиять на других? Мы могли бы задать много вопросов, но главный вывод из этого - автоматизация, которая решает две задачи: выпуск функций и предотвращение / смягчение проблем, когда они возникают. Если вы сможете это сделать, то в конечном итоге обеспечите отличный опыт для своих клиентов.

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

- Джефф Безос (письмо акционерам, 2016 г.)

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

Достижение консенсуса

Разногласия на рабочем месте являются обычным явлением и могут вызвать задержки, которые могут повлиять на дату поставки нашего продукта или функции, которые мы обещали нашим клиентам. В Amazon инженеров учат настаивать на высочайших стандартах и ​​иметь основу; Не соглашайтесь и соглашайтесь. Хотя это хорошие принципы, они могут привести к серьезным разногласиям, которые могут показаться непреодолимыми. Для этого есть несколько причин, таких как 1) личная выгода от того, что ваше решение было выбрано вместо чьего-то другого, 2) отсутствие процессов для обработки противоречивых мнений и 3) недостаточное исследование проблемы. Есть несколько способов разрешения разногласий, и я буду рассматривать их поэтапно.

Для начала существуют разногласия по поводу того, как продвигать проект, если вы оказались на одной стороне прохода. Во-первых, обе стороны должны иметь аргументы, основанные на данных; без этого вы просто будете бодаться друг с другом. Чтобы заставить кого-то выслушать ваши идеи, вы сами должны быть хорошим слушателем. Когда вы встречаетесь с противоположным мнением, один из самых эффективных способов быть хорошим слушателем - задавать вопросы. Задавая вопросы, вы узнаете, что вы принимаете их идеи во внимание, и заставляете их более критически относиться к предлагаемым решениям. Благодаря этому в их решении могут быть пробелы (или пробелы в вашем решении), и разногласия разрешатся сами собой.

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

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

Расширение своего влияния

По мере того, как вы становитесь старше в компании, ваше влияние распространяется от команды, в которой вы участвуете, ко многим командам или даже многим организациям. Один из самых неприятных моментов для меня был: Как мне этого добиться? Я не могу просто прийти на совещание дизайнеров другой команды. Возможности повлиять на другую команду могут появиться в результате работы над проектами, которые требуют от вас кросс-функциональной работы с другими командами. Это дает вам возможность повлиять на техническое направление этой команды, потому что вам нужно будет понять услуги этой группы и их процессы для успешного завершения проекта. Затем вы можете предложить улучшения и способы сделать что-то иначе, чем они могут никогда раньше не рассматривал.

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

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

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

Попробуйте некоторые из этих методов в повседневной работе и посмотрите, что вам подходит.

Хотя я работаю в Amazon, я придерживаюсь собственного мнения.