Не секрет, что в современном мире, мы часто сталкиваемся с тем, что популярные названия становятся брендами. Слово Agile (с заглавной буквы) тоже не исключение и сейчас можно встретить описание практически любой практики с приставкой «Agile» спереди. Также не секрет, что из-за того, что люди редко глубоко вникают в концепции стоящие за названием, то мы часто путаем популярные бренды, особенно те, которые не связаны с каким-то определенным и осязаемым товаром.
Так частым примером недопонимания является вопрос типа: «А разве Lean и Agile это не одно и то же?». Если коротко – нет.
Как я уже говорил, если не смотреть на концепции, то легко ошибиться, так как оба подхода преследуют общую цель: часто выпускать готовый продукт и постоянно улучшать качество продукта (да и самих практик в конкретной команде). Более того, практики Agile зачастую поддерживают принципы Lean и наоборот. В тоже время это не одно и то же, нет. «Бережливое производство» (так переводят Lean) имеет гораздо более широкий фокус и зачастую подразумевает, что мы не сосредотачиваемся только на проблемах одной команды разработки, а смотрим на всё подразделение разработки ПО или даже на всю организацию в целом.
Впервые о «Lean for Software Development» (т.е. о «Бережливой разработке программного обеспечения») заговорили Мэри и Том Поппендик в одноименной книге, которая увидела свет в 2003 году. Как известно, «Agile сообщество» само-идентифицировалось и развивалось с 2001, поэтому не удивительно, что Мэри и Том стали почти обязательными гостями на любой Agile конференции. Кстати, предстоящая Agile Eastern Europe не исключение и если посмотреть на список докладчиков, то ключевой доклад Мэри Поппендик задает тон всей конференции.
В своей книге Поппендики озвучили 7 принципов «Бережливого производства» (Lean) в приложении к разработке ПО и даже в какой-то мере провели параллели с Agile.
Исключение затрат. Затратами считается всё, что не добавляет ценности для потребителя. В частности: излишняя функциональность; ожидание (паузы) в процессе разработки; нечёткие требования; бюрократизация; медленное внутреннее сообщение.
Акцент на обучении. Короткие циклы разработки, раннее тестирование, частая обратная связь с заказчиком.
Предельно отсроченное принятие решений. Решение следует принимать не на основе предположений и прогнозов, а после открытия существенных фактов.
Предельно быстрая доставка заказчику. Короткие итерации.
Мотивация команды. Нельзя рассматривать людей исключительно как ресурс. Людям нужно нечто большее, чем просто список заданий.
Интегрирование. Передать целостную информацию заказчику. Стремиться к целостной архитектуре. Рефакторинг.
Целостное видение. Стандартизация, установление отношений между разработчиками. Разделение разработчиками принципов бережливости. «Мыслить широко, действовать мало, промахиваться быстро; учиться стремительно».
Кроме принципов, они описали еще и 22 инструмента, которые собственно и помогают нам внедрять концепции на практике. Также как мы используем, например, практики из Scrum методологии, чтобы внедрять Agile, также практики Lean помогают нам делать весь наш процесс разработки программного обеспечения чуть более «бережливым» или «плоским».
Уверен, что я еще не раз вернусь к теме Lean на страницах нашего блога и вы можете подписаться на наш RSS, чтобы не пропустить практические рекомендации и полезные советы. А чтобы не рассказывать о том, в чем сам разбираюсь не досконально, я решил пойти на мастер-класс Мэри и Тома Поппендиков, который состоится в рамках конференции AgileEE. Хотите узнать все и сразу? Присоединяйтесь :-).
Исключение затрат – не вполне удачный перевод концепции “Eliminate waste”. Слово “затраты” подразумевает какую-то отдачу. Затраты могут быть оправданными или неоправданными. Более удачным переводом было бы “Исключение потерь”, потому как потери и есть ничем не оправданные затраты.
Надя, спасибо за комментарий. Перевод концепций – не наш, взят на википедии – http://ow.ly/2xed6 Согласна, что перевод не самый лучший, и не только в указанном тобой месте, но мы решили не изобретать велосипед 🙂