• Не надо по-хорошему, и так работает

    Posted on July 17th, 2009 Александр Орлов 10 comments

    Давеча был в отпуске. База отдыха в Крыму, на которой нас угораздило остановиться, была относительна неплохая. Сан. узел довольно приличный, хороший проточный нагреватель воды. И даже холодная вода была все время, что для Крыма, по-моему, не является правилом.

    Но первый раз зайдя в туалет, я, честно говоря, растерялся. В туалете не было сливного бачка. “Что делать? Что делать” – запаниковал я… Как потом оказалось, история была такая.

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

    Но тут возник usability bug. Сделав свое дело, кастомер должен был выйти на улицу, чтобы привести слив в действие. Конечно, это ужасный баг, не P1, но где-то P2/P3. И тут изворотливый ум строителей снова подсказал решение. В стенке домика, прямо над кнопкой слива было проделано сквозное отверстие в стене. Теперь кастомер смог бы, находясь в туалете, высунуть руку сквозь отверстие на улицу и привести слив в действие. Ура!

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

    Выглядело мега-решение вот так:

    На первый взгляд, решение, конечно, потрясает своей уродливостью. Но есть ровно четыре “но”:

    1. Это решение вполне выполняет свою бизнес функцию: человек сходил, человек слил.

    2. На второй день кастомер в моем лице к решению привык и перестал замечать его уродливость.

    3. Стоимость переделки (выломать унитаз из бетона, отодвинуть его на другое место, заделать стену и пр.) крайне высока.

    4. Решение довольно надежно. Поломок не было.

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

    Вот так почему-то и у нас бывает. Каждый менеджер, управляющий командой, рано или поздно получает сотрудника, который а) ясно видит, как все сейчас в архитектуре продукта неправильно и б) точно знает, как должно быть. В результате сотрудник, конечно, приходит с гениальной идеей “а не затеять ли нам рефакторинг”. После чего на жалкие возражения менеджера типа “да и так работает неплохо, ломается редко, да пользователям не надо”, смело отвечает: “Это все не по уму. А вам просто всем положить на качество архитектуры и кода.” И ходит потом менеджер, рассказывает сказки про бизнес-ниды и риски. :)

     

    10 responses to “Не надо по-хорошему, и так работает”

    1. Но это же типичный “технологический долг”!

      1) С такой чудо-конструкцией к задней стенке уже ничего не пристроить. Оставишь зазор – соберется там куча мусора. Т.е. немастабируемое решение.
      2) В Крыму пару раз за зиму всегда бывает ниже нуля. Не универсальное решение
      3) Случайно построив забор/свалив строй материалы/выкопав яму, можно заблокировать прямой доступ к бачку. И заметить это в не очень подходящий момент. Т.е. возрасла трудоемкость модификации и повысился риск краха приложения из-за совокупности багов.

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

      А теперь зрим в корень архитектуры – зачем базе отдыха, которая работает только летом, бетонные стены?

    2. Забавная история :)

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

    3. Антон Непомнящих

      Интересно, что менеджеру, просто чтобы не снизить мотивацию подчиненных приходится давать им “поиграться” с кодом и чего-нить порефакторить :) Конечно, эти порывы нужно ограничивать, но совсем запрещать экономически нецелесообразно :)

      Де Марко и Листер вообще пишут ведь, что разработчики быстрее всего пишут код, когда даешь им шанс писать его максимально качественно и нет давления по срокам. Парадокс, да? :)

    4. 2 George. Эк серьезно поставили диагноз по фотографии. :)

      1. А ничего и не надо пристраивать в обозримом будущем.

      2. Зимой там нет никого. Все в Сочах на лыжах катаются. :)

      3. Легко контролируется.

      Cтены вроде не бетонные, отштукатурено просто.

      Там история такая вообще. строители успели такую чудо конструкцию реализовать в трех домиках. Потом их остановили и внесли коррективы в проект. :)

    5. 2 Dima Malenko. Ох, и не говори… Я уже начал писать книгу. Рабочее название – “Говносервис”. :)

    6. 2 Антон Непомнящих. Да, у Демарко и Листера есть это интересное исследование, из которого менеджер, к сожалению, не может вынести практического смысла. Ужасное исследование, лучше бы нам этого не говорили. :)

    7. > 2 George. Эк серьезно поставили диагноз по фотографии. :)

      Дык у меня работа такая :(

      Зимой там есть такое – я в Крыму родился ;)

      Мой комментарий был немного не по теме – пост про ПЕРЕДЕЛКУ…

      Я просто хотел акцентировать внимание, что подобные недоделки нельзя поощрять – т.е. нельзя не наказывать (пардон – конструктивно доводить до исполнителей, что это плохо) за их появление.

      А вопрос то вот в чем: сразу бросаться всё переделывать экономически не целесообразно. Но подобные “особенности” можно закрывать постепенно, добавляя к основным работам. Или нафиг – пока не прижмет – не трогать? А не будет ли поздно, когда прижмет? Не потеряет ли компания (немного репутации, например), когда прижмет?

    8. 2 George. Смотреть вперед, конечно, надо. Правила здравого смысла никто не отменял. Тут мы, думаю, сходимся.

    9. Предположим, я клиент такого коттеджа.

      При цене 10 евро в сутки, такое недоразумение в номере вызвало бы лишь улыбку. Вот за 1000 евро, я бы наверно очень, очень удивился, и не только.

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

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

    10. Вот так почему-то и у нас бывает. Каждая команда/фирма, рано или поздно получает менеджера, который а) ясно видит, как все сейчас в команде/фирме неправильно и б) точно знает, как должно быть. В результате менеджер, конечно, приходит с гениальной идеей “а не затеять ли нам реформы”. После чего на жалкие возражения команды типа “да и так работаем неплохо, версии даем стабильно, да и пользователи не жалуются”, смело отвечает: “Это все не по уму. А вам просто всем положить на то что в мире кризис, и что индусы ща в два раза дешевле чем отечественные программисты”.

    Leave a reply

    You must be logged in to post a comment.