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

image

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

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

Поддержка публикации — компания Edison, которая разработала систему проведения онлайн лотерей для африканская игровой компании и автоматизировала всю нудную рутину для торговой сети.

image

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

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

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

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

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

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

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


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

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


image

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

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


image

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

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

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


image

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

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

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


image

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

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

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


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

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

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


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

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

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

Перевод: Юлия Хаитова


Поделиться с друзьями
-->

Комментарии (5)


  1. speakingfish
    13.11.2016 13:11
    +3

    Не «благодаря планетарному механизму» (там нет никакой планетарной передачи) а благодаря переключению передач.
    Планетарная передача это вот что: https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%BD%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B0
    Бывают планетарные вариаторы (бесступенчатые передачи) для велосипедов. Но это примерно такие вот штуки: http://velofun.ru/hub/planetarnyy-variator-dlya-velosipeda-nuvinci-n360-i-n171-cvt.html


    1. rz_hunTer
      13.11.2016 16:24

      Бывают и обычные втулки с планетарной передачей (не путать с планетарным вариатором). https://en.wikipedia.org/wiki/Hub_gear


  1. Rastishka
    13.11.2016 15:49
    +1

    Сильно зависит от целей заказчика и наличия бюджетов.


    Обратите внимание, что по второму случаю на КдПВ проект приходится делать практически с нуля между этапами 2>3 и 4>5, то есть существенное удорожание.


    Или получение велосипеда с кое как приклеенным реактивным двигателем.


    1. NINeOneone
      14.11.2016 11:06

      Эмм, а если статью почитать. Автор в статье и говорит о том, что КДПВ не очень в качестве демонстрации agile, эволюция велосипедов с этой задачей справляется лучше.


  1. vyatsek
    15.11.2016 12:11

    Может мой отзыв резкий и немного негативный. Но опять айтишники заново открывают/изобретают колесо. Любое, повторяю любое производство идет именно по такому сценарию и никакой это не Agile, это называется эволюционный подход, которому 100500 лет.
    Agile декларирует вот, что:

    • Люди и взаимодействие важнее процессов и инструментов
    • Работающий продукт важнее исчерпывающей документации
    • Сотрудничество с заказчиком важнее согласования условий контракта
    • Готовность к изменениям важнее следования первоначальному плану

    Тут говорится лишь о том, что надо фокусироваться на реальности, а не на формальности и под это адаптироваться. Возможно aglie появилося потому, что в IT неуместно применяли детерминированные процессы с производства.