Это работает на моем компьютере [перевод]

Перевод заметки KJ Jones “It Works on My Machine”.

Отличие начинающих и опытных разработчиков

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

Это работает на моем компьютере!
Источник

Когда у клиентов возникали проблемы, я по умолчанию считал, что в этом виноваты только они. Я бы не создал то, что работает не правильно. Я бы заметил такую очевидную вещь. Это вина клиентов. Им следует вернуться в начало и попробовать снова.

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

Это работает на моем компьютере. Давайте посмотрим, что вы делаете не так…. Ох.

Продукт не “работает” если клиент не понимает, как им пользоваться

Сравнивая процесс использования продукта мной и клиентами, часто замечал, что их проблемы не являются проблемами. Они просто что-то делали не правильно. Я думал, что должен объяснить им, что они делают не так, дать им инструкцию, и проблема будет решена.

Этот подход плох по тремдвум причинам.

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

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

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

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

Обрабатывать всю обратную связь

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

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

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

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

Так говорят только неопытные

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

Поскольку я работал с большим числом программистов, я обратил внимание, что опытные разработчики обычно делают, как я. Они понимают, что пользователи не лжецы, а отзывы ценны. А вот младшие разработчики часто ведут себя именно так.

Частично эта проблема связана с тем, что младшие разработчики воспринимают отзывы как личное. Плохая обратная связь — нападение на них, а не на продукт. И они защищаются. Что мы делаем когда защищаемся? Отвергаем.

Это не моя проблема, у меня все работает! Это ваша ошибка, что вы сделали?

Следует понимать, что все отзывы, хорошие и плохие, они не о вас. Они о функции или о продукте. Разработчик не определяется плохим продуктом, не определяется и хорошим. Разработчик определяется тем, насколько качественно он решает проблемы, независимо от того, кто их испытывает.