Найти тему
Дед Мазай на Котлине

Манифест разработки

Поймут ли зайцы?
Поймут ли зайцы?

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

Думаю, если следовать этим правилам на практике, то хуже точно не сделаем, а вот лучше - вполне возможно:

  • Поскольку наши менеджеры по продуктам не знают, чего хотят, они узнают об этом от клиентов. Иногда они понимают их неправильно.
  • Поскольку наши менеджеры по продуктам не знают всего о системах, они приглашают других экспертов стать заинтересованными сторонами в проекте. Заинтересованные стороны понимают их неправильно.
  • Поскольку я не знаю, какую задачу решать своим кодом, я узнаю об этому наших менеджеров по продуктам. Иногда мы понимаем друг друга неправильно.
  • Поскольку я допускаю ошибки при написании кода, я работаю с IDE. Среда IDE поправляет меня, когда я совершаю ошибки.
  • Поскольку я допускаю ошибки в понимании существующего кода, я использую статически типизированный язык. Компилятор поправляет меня, когда я совершу ошибку.
  • Поскольку я совершаю ошибки в процессе размышлений, я работаю в команде. Команда поправляет меня, когда я ошибаюсь.
  • Поскольку члены команды - люди и тоже допускают ошибки, мы пишем тесты. Тесты говорят нам, когда мы совершаем ошибки.
  • Поскольку у нас есть команда, которая также занимается программированием, мы интегрируем свой код с их кодом. Наш общий код не будет компилироваться, если мы ошибаемся.
  • Поскольку наша команда разработки допускает ошибки, мы делаем приёмочные тесты, которые проверяют всю систему. Приёмочные тесты скажут нам, если мы ошибаемся.
  • Поскольку мы допускаем ошибки при выполнении приёмочных тестов, то собираем команду вместе, чтобы обсудить их. Команда скажет нам, если мы ошибаемся.
  • Поскольку мы забываем запускать тесты, то заставляем нашу сборку запускать их за нас. Сборка скажет нам, если мы ошибаемся.
  • Поскольку мы не можем продумать каждый сценарий, мы привлекаем тестировщиков для изучения системы. Тестировщики скажут нам, если что-то не так.
  • Поскольку мы заставили программу работать только на ноутбуке Михаила, мы развёртываем систему в реалистичной среде. Тесты системы в реалистичной среде скажут нам, если что-то идёт не так.
  • Поскольку мы иногда неправильно понимаем своего менеджера по продуктам и другие заинтересованные стороны, мы показываем им систему. Заинтересованные стороны скажут нам, если мы ошибаемся.
  • Поскольку наш менеджер по продуктам иногда неправильно понимает людей, которым нужна система, мы запускаем систему в производство. Люди, которым она требуется, скажут нам, если мы ошибаемся.
  • Поскольку люди чаще замечают, когда что-то идёт не так, чем когда всё работает как должно, мы не просто полагаемся на мнения. Мы используем аналитику и данные. Данные подскажут нам, если мы ошибаемся.
  • Поскольку рынок постоянно меняется, однажды мы окажемся неправы, даже если раньше были правы.
  • Поскольку промахи дорого обходятся, мы делаем всё это так часто, как только можем. Таким образом, мы всегда ошибаемся только немного.
  • Не задумывайтесь о том, чтобы сделать всё правильно. Беспокойтесь о том, как вы узнаете о проблеме и как проще будет исправить последствия, когда это случится. Потому что вы, скорее всего, ошиблись.