вторник, 13 октября 2015 г.

[prog.process.flame] Скажу и я что-нибудь за Кинопоиск :)

Для тех, кто не в курсе одного из самых громких скандалов Рунета последнего времени: 8-го октября состоялся запуск новой версии популярного сайта kinopoisk.ru. Новый сайт выглядел совершенно по-другому, старым пользователям Кинопоиска, особенно неискушенным компьютерным пользователям, искать нужную для себя информацию на новом сайте стало очень неудобно. Плюс к тому, в работе нового Кинопоиска наблюдались нестабильности. Такой внезапный поворот событий вызвал неслабый поток говн, в котором поучаствовал и основатель, Виталий Таций, высказавшийся кратко, но по делу. В итоге, Яндекс, а это нынешний владелец Кинопоиска, вернул в продакшен старую версию, а новую переместил на beta.kinopoisk.ru, где на данный момент можно лицезреть итоги двухгодичного процесса запуска новой версии.

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

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

Но т.к. подробности неизвестны, то остается обозначить несколько вопросов, ответы на которые было бы интересно услышать лично мне. Т.к., наблюдая за тем, что происходит в софтостроении последние 20 лет, мне думается, что эти факторы могли оказать серьезное пагубное влияние на ход проекта. Итак:

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

Может быть дизайнерам была дана слишком большая власть на проекте? Я начинал писать софт во времена, когда дизайну и юзабилити в наших палестинах внимания не уделяли вообще. UI проектировал сам программист, а потом по нескольку раз он же этот UI модифицировал, когда получал отрицательные отзывы от пользователей. О том, что UI/UX -- это серьезная дисциплина в первый раз узнал году в 1995-ом, когда к выходу Windows 95 было опубликовано множество статей о том, как же в Microsoft серьезно подходили к переработке пользовательского интерфейса для того, чтобы Windows стало пользоваться еще проще. Вот с тех пор интерес к внешнему виду UI рос постоянно и, возможно, сейчас он достиг своего апогея. Одновременно с этим росло и влияние таких членов продуктовых команд, как дизайнеры и проектировщики UI. Причем рост был ну очень серьезный: где-то с нуля до 100% :) Т.е. если раньше сначала делали программу, а потом давали задачу дизайнеру наваять несколько иконок, то теперь разработку программу с UI не имеет смысла начинать, пока дизайнер не нарисует все формы, не определит расположение и поведение всех контролов, не подготовит основные графические ресурсы. В итоге, на мой рабоче-крестьянский взгляд, маятник качнулся далеко в другую сторону: сейчас вместо погони за функциональностью можно увидеть погоню за красотой. Т.е. мерилом качества стала красота, а не полезность.

Почему обновление сервиса не производилось итерационно? Насколько я понимаю, после покупки Кинопоиска Яндексом у нового владельца возникли задачи, которых у прошлых владельцев не было. Например, возможность входа на Кинопоиск пользователей Яндекса из-под своего Яндексовского аккаунта. Кроме того, наверняка Кинопоиск использовал какой-то свой технологический стек, отличный от такового у Яндекса и Яндексу в долгосрочной перспективе было бы выгодно перевести сервис на свой привычный технологический стек. Плюс еще какие-то дополнительные бизнес-цели (которые могли совпадать со старыми, а могли и не совпадать). Например, возможность платного просмотра фильмов онлайн. Может быть старые владельцы думали об этом, может и нет. А вот Яндексу такая фича показалась очень нужной. Как бы то ни было, перед разработчиками нового Кинопоиска стоял ряд задач. Почему было принято решение потратить около двух лет на запуск совершенно нового варианта сервиса вместо плавной итерационной модификации старого -- вот это вопрос на миллион. А может быть и не на один миллион. Может быть у старого сервиса был один фатальный недостаток: его писали не в Яндексе? ;)

Насколько этому провалу поспособствовала корпоративная культура большого Яндекса? В больших компаниях огромную роль играют формализованные бизнес-процессы. Это нормально, т.к. управляемый хаос, обычный для небольших стартапов, недопустим в большой компании. Однако, жесткие бизнес-процессы имеют несколько серьезных отрицательных последствий при разработке нового продукта. Во-первых, теряется то, что можно назвать vision ("целостным представлением", если говорить по-русски). Чем больше людей участвует в согласовании различных параметров проекта, тем проще превратить изначальную целостную картинку в нечто аморфное и непонятное. Во-вторых, размываются зоны ответственности. Все идет по процессам, все совещания проводятся, решения принимаются коллегиально, подписи на документах собраны. Но кто в итоге несет ответственность? И кто за что должен отвечать? В-третьих, при наличии формализованных бизнес-процессов передача информации снизу вверх серьезно затрудняется. Так, если какой-то рядовой тестировщик видит, что UI неудобен и убог, он не может просто так повлиять на развитие проекта. Потому что он тестировщик, у него узкая специализация и его мнение о качестве UI мало кого интересует. Да и есть ли у него возможность запустить свое мнение наверх хотя бы в виде докладной записки -- это вопрос. Посему в условиях больших компаний на низком уровне люди могут точно знать, что итоговый продукт будет никому не нужен из-за своей убогости, но наверху об этом могут даже не догадываться, т.к. передача информации в больших компания настроена, в основном, на движение сверху-вниз.

Ну и есть еще один интересный вопрос: а что там было на проекте с отчетностью? Разработка проекта, надо полагать, заняла изрядное время. Может два года (с момента покупки Яндексом). Может года полтора. Может год. Но даже если год -- это целых четыре квартала. Наверняка же по итогам кварталов дела на проекте как-то оценивались. Может быть у участников проектной команды, особенно у менеджеров, были квартальные KPI. Если так, то как обстояли дела с выполнением этих квартальных KPI?

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

Комментариев нет: