Программисты с потерянной обратной связью

Зачастую бывает так, что мы садимся осваивать новый программный продукт, и нас начинает мучать странное ощущение "некачественности". Я не говорю о случаях, когда явно что-то не работает – там всё понятно. Я о другом – когда это ощущение рождается где-то на задворках подсознания, и его никак не выразить словами. Когда тебя спрашивают: ну скажи ты конкретно, что тебя не устраивает? А ты и сказать не можешь – мучаешься, пытаясь выразить свою неудовлетворённость словами.

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

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

Весь мир насыщен обратной связью. Прокрутите в голове все события, которые происходят в вашей жизни повседневно, и вспомните определить фидбэк от каждого из них. А теперь представьте, как выглядела бы жизнь, если бы фидбэка не было. Представьте себе девушку, которая не реагирует на ваши ласки. Разберите мышку и извлеките щёлкающий механизм. Попробуйте поработать на сенсорной клавиатуре айпада вслепую. Каждый раз выходя из машины, проверяйте вручную – закрылись ли все дверцы и багажник.
Мир без обратной связи был бы адом. Именно таким адом выглядит программный продукт, который не поставляет достаточное количество обратной связи пользователю. Что происходит прямо сейчас? Я кликнул – и что изменилось? Начался ли фоновый процесс? Или уже закончился? А если он идёт, то почему так долго? А успешно ли он завершился? Ждёт ли от меня система каких-то действий, или это я должен подождать? Можно ли закрывать эту страницу – сохранятся ли данные?

Причины создания таких программных продуктов лежат глубоко в области психологии. Большинство "компьютерных гиков" настолько "продвинуты" в области разработки и программирования именно потому, что у них нарушена коммуникабельность и связь с внешним миром. Они играют в вов и линейку, сидят в социальных сетях и на профессиональных форумах, занимают всё свободное время чтением документации, отрицая реальный мир и создавая вокруг себя воображаемый. Они реализуют себя в жизни в общении с компьютерами, потому что общество их отторгает, а компьютеры бессловесны и принимают их "как есть". Даже само понятие "компьютерной грамотности" становится для них критерием для деления людей на достойных и недостойных. Возможно, в глубине души они уверены, что Ньютон, Галилей, Коперник и Чарльз Дарвин тоже были программистами.

С теми кто просто замкнут по своей природе – ещё можно найти общий язык и помочь человеку осознать, что никакая программа не ценна сама по себе. Ценной её делает полезность для потребителя. Но если человеку впору ставить диагноз "аутизм" или "социопатия" – то в результате становится страшно. Страшно от осознания, что ты сидишь перед экраном и пользуешься продуктом, но тебя как-бы нет. Для автора ты – пустое место, робот с запрограммироваными use-кейсами и встроенным аппаратом для чтения документации. Только так автор может допустить тебя к использованию продукта, но если бы тебя вообще не было – вот это был бы идеал.

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

Материалы для самостоятельного изучения:
Рекомендации компании Apple
Рекомендации по книге Джефа Раскина "Интерфейс"
Не позволяйте знаниям ослепить себя
 
 

Как выбирать программистов

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

Программист не должен быть абстрактным творцом

Каждый может взять готовый паттерн или с нуля придумать абстрактное хранилище данных. Это не сложно, но это только половина дела. Если в реальности твоё хранилище при попытке выбрать “все зелёные объекты массой от 10 до 50 кг, которые были куплены не менее 2-х раз за текущую неделю” на несколько секунд вешает выделенный сервак – то грош цена твоей красивой абстракции.

Continue reading “Как выбирать программистов”