В целом, это рефрен идеи Geepaw Hill Many More Much Smaller Steps.

Инженерная проблема характеризуется неопределенностью в четырех смыслах: исходное состояние, целевое состояние, способ достижения целевого состояния и актуальность целевого состояния на момент его достижения.

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

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

Для чего? Для того, чтобы быстрее получать обратную связь, потому что Быстрая обратная связь - универсальное преимущество. Также для того, чтобы иметь возможность менять направление движения в любой момент, как раз на основе полученной обратной связи.

Можно поступить, как Кент Бек с экстремальным программированием, и выкрутить эту идею до максимума, до почти абсурдного уровня, до уровня отдельных строчек кода.

На самом мелком уровне - это атомарные рефакторинги и Flocking Rules. А дальше можно пойти по уровням вверх и рассматривать мелкие шаги на уровне деления историй на отдельные задачи (микротаски), на уровне деления эпиков на истории (пример с историей на 13 сторипойнтов), на уровне деления функциональности по модулям (SRP, наверное, тоже косвенно про размер шага и время недоступности системы).

Примеры этой идеи:

Материалы по идее:

Мой опыт:

  • Интеграция RCS в Маркетолог/Омни
  • Разбиение большой истории на 13 стори-пойнтов.