Велосипедный Agile

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

image

Эту картинку не стоит воспринимать буквально. Она рассчитана на то, чтобы показать главные преимущества гибкой разработки над каскадной моделью, а именно по отношению к минимально жизнеспособному продукту (Viable Product (MVP).

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


image

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

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

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

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

А эта картинка гораздо сложнее, чем гибкая методология разработки, т.к. в ней объединено 125 развития автомобилестроения в нескольких изображениях. Более того, для тех, кто хоть немного разбирается в машинах или производственном процессе, эта картинка станет скорее помехой, чем помощью.

Но в этой картинке все-таки есть одна хорошая аналогия — велосипед. Почти все когда-нибудь катались на велосипеде, и как его технология, так и история развития довольно просты. Более того, развитие велосипеда — как минимум в самом начале, а может быть и позднее — было как итеративным, так и инкрементным.

Велосипедный Agile

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

Итерация 1: Самокат

image

Первые велосипеды состояли из того, что уже было хорошо знакомо к 1800-м — колес и сидений.
Это было довольно хорошо для первой попытки, и даже сейчас еще можно встретить детские велосипеды, которые работают по этому же принципу. Чтобы поехать, вам нужно оттолкнуться ногами и приподнять от земли ступни. Но вам удастся проехать только несколько метров, и вы никак не сможете контролировать скорость.

Итерация 2: Педали

image

Во второй итерации были добавлены педали, приделанные прямо к переднему колесу.

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

Итерация 3: Пенни-фартинг

image

Чтобы увеличить эффективность педалей, переднее колесо было увеличено. Так, с каждым оборотом педали, колесо проезжало бОльшее расстояние. Заднее же колесо, которое стало менее важным, было уменьшено в размере, чтобы сохранить тот же вес.

Велосипед «пенни-фартинг» был популярен среди здоровых молодых людей, но высокая цена и опасность такой конструкции- только представьте, что будет, если упадете с него!- уменьшили спрос.

Итерация 4: Безопасный велосипед

image

Как мог велосипед сохранить, или даже увеличить эффективность модели «пенни-фартинг», и при этом стать более безопасным? При помощи цепной передачи на заднее колесо.

Теперь, велосипеды могли оставаться обычного размера, и седло находилось невысоко над землей. Педали вращали передаточный механизм при помощи цепи, которая так же соединялась с задним колесом. Соотношение механизмов могло регулироваться, так что велосипеды были такими же быстрыми и эффективными, как и пенни-фартинг, но гораздо безопаснее
Эта версия велосипеда была очень популярна. После 10 лет изменений, велосипед достиг массового спроса. Количество покупателей увеличилось, и развитие пошло в таком важном направлении, как …

Итерация 5: Переключение скоростей

Многоскоростные велосипеды.
image

Велосипедный переключатель скоростей позволяет менять скорости на велосипеде. Он был изобретен около 1900 года. Благодаря планетарному механизму стало возможно уменьшить прикладываемые усилия и увеличить эффективность за счет использования низких передач на старте или во время подъема на холмe, и высоких во время быстрой езды. Велосипед принял вид, который сохранил до наших дней.

Продвинутая аналогия

Почему история развития велосипедов подходит в качестве аналогии для гибкой методологии разработки?

  • Каждая итерация велосипеда решала одну и ту же проблему: использование человеческой силы для более быстрого движения.
  • Устройство велосипеда всем знакомо и понятно.
  • История развития велосипеда действительно инкрементна: на каждой стадии добавлялись новые детали, но использовалась постоянная парадигма. На некоторых стадиях велосипед преобразовывался благодаря применению новых технологий.
  • Развитие в то же время было и итеративным. Различные версии велосипедов были представлены конкурирующими производителями, это позволяло пользователям велосипедов информировать производителей о том, какие еще изменения необходимы. Некоторые нововведения, такие как педали, были сохранены в последующих итерациях, а например огромное колесо, как у модели «пенни-фартинг» было быстро отброшено.

Может быть кто-нибудь сможет превратить эту аналогию в комикс для следующего бестселлера о гибкой разработке?

Автор:

Источник

Оставить комментарий