воскресенье, 2 февраля 2014 г.

Zero bugs или Broken Windows Theory

Пара ссылок по теме поста:



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

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

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

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

От таких отзывов я вижу несколько очень хороших эффектов:

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

Обратные, отрицательные эффекты тоже довольно просты и очевидны:

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

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

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