Искусство Agile-разработки. Теория и практика гибкой разработки ПО
Джеймс Шор, Шэйн Уорден
Искусство Agile-разработки
Теория и практика гибкой разработки ПО
© ООО Издательство "Питер", 2023
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Отзывы
Автор «Искусства Agile-разработки» смог совершить, казалось бы, невозможное, собрав все материалы по обширнейшей теме разработки современного программного обеспечения в понятную и увлекательную книгу. Новички, лишь начинающие изучать итеративные процессы, найдут в ней отличный обзор популярных практик. Людям, заблудившимся в дебрях мудреных процессов «масштабизации Agile», она предлагает хорошие идеи выхода из этого ада. Первое издание оказало огромное влияние на мою карьеру два десятилетия назад, и, уверен, второе издание аналогичным образом поможет миллионам разработчиков улучшить свои методы поставки ПО.
Гойко Аджич, автор книг Running Serverless, Impact Mapping и Specification by Example
В этой книге есть все: от кода до поставки готового продукта. Заработанные десятилетиями тяжелого труда знания превратились в легкочитаемый и доступный для восприятия материал – обязательный к прочтению для всех, кто работает с командой разработчиков программного обеспечения или в ней.
Ави Кесснер, инженер, Forter
Эта книга получит свое постоянное место на моей книжной полке.
Кришна Кумар, основатель и CEO, Exathink Research
Первое издание этой книги заворожило меня до такой степени, что до сих пор стоит на моей книжной полке в качестве справочника. Второе издание сохраняет шарм своего предшественника и содержит еще больше знаний, накопленных за последнее десятилетие.
Бенджамин Мускалла, старший инженер-программист, GitHub
Одна из самых полных книг по Agile-разработке программного обеспечения, которые я когда-либо читала. Очень прагматичная, с яркими примерами, легко применимыми к любому проекту разработки ПО независимо от технологического стека, размера команды или предметной области отрасли. Определенно жемчужина, стоящая того, чтобы держать ее под рукой.
Луиза Нуньес, менеджер программ, Thoughtworks
Это моя любимая книга об Agile. Она охватывает технические и управленческие темы. Я использую ее на своих занятиях и всегда рекомендую своим клиентам.
Николас Паес, инженер-программист и преподаватель, Университет Буэнос-Айреса
Джеймс подробнейшим образом описывает собственный опыт в Agile-разработке ПО. Простыми словами, связывая теорию с практикой.
Кен Пью, главный консультант, автор книги Prefactoring: Extreme Abstraction, Extreme Separation, Extreme Readability
Тысячи книг об Agile. Какую из них прочитать? Я советую вам эту. Джеймс работает с Agile с первых дней его появления и знает свое дело. Книга разбирает весь бессмысленный мусор в нашей отрасли, окружающий это понятие, и предлагает тщательно выверенный, целостный подход. Этот подход не будет быстрым и легким, но он того стоит. Мне понравилась книга «Искусство Agile-разработки». Это книга с характером!
Бас Водде, соавтор LeSS
Джеймс Шор полностью обновил «Искусство Agile-разработки», дополнив книгу новыми инструментами, методами и уроками прошедшего десятилетия. Эта жемчужина среди книг поможет вам превратить ваш стиль работы в действительно эффективный Agile-подход.
Билл Уэйк, XP123, LLC
Моей семье
Предисловие
Когда мы писали Манифест Agile для разработки программного обеспечения, нашими сторонниками было незначительное меньшинство людей, пытавшихся изменить отрасль. Сейчас, 20 лет спустя, «agile» – это мейнстрим. Я пишу «agile» в кавычках намеренно: множество людей говорят, что они занимаются разработкой программного обеспечения по Agile, в самом деле искренне в это веря, однако их действия мало напоминают то ви́дение, которым мы поделились со всеми два десятилетия назад.
Правда в том, что для работы по Agile требуется целая сеть взаимосвязанных практик, охватывающая как управление, так и техническую работу по созданию ПО. Многие из этих практик, особенно технические, далеко не всем хорошо понятны или не изучаются широко. Следовательно, слишком многие люди имеют искаженное представление о том, что могло бы быть очень эффективным способом создания программных продуктов.
Джеймс Шор был одним из пионеров, вставших на тропу экстремального программирования (Extreme Programming, XP), центрального элемента движения Agile. Первое издание этой книги было отличным руководством для команд, показывавшим им, что нужно знать для правильного выполнения Agile-процессов. Позже Джеймс вместе с Дианой Ларсен продолжили работу над созданием модели Agile Fluency™, которая объединила в себе их опыт развития навыков в использовании подходов Agile. Модель показывает, что простое применение техник проектного управления, часто именуемых базовым подходом Scrum, дает некую ценность, фокусируя внимание на потребностях клиентов, но не учитывает технических навыков, необходимых для того, чтобы полностью раскрыть преимущества высокой производительности и надежности, которых добиваются многие команды.
Эта позиция непосредственно определяет структуру книги, значительная часть которой посвящена тому, как сфокусироваться на создании реальной ценности и как надежно поставить ее потребителю продукта. «Сфокусироваться на ценности» означает понимать потенциал командной работы, развивать навыки адаптивного планирования и тесно сотрудничать с заказчиками и конечными пользователями готового ПО. В понятие «надежно поставить ценность» входят основные технические практики тестирования, рефакторинга, дизайна и коллективной разработки. Оно также учитывает парадоксальное наблюдение, что создание программного обеспечения, обладающего высоким внутренним качеством, снижает затраты и увеличивает скорость поставки продукта. Сочетание культуры DevOps и непрерывной поставки (continuous delivery) дает возможность быстро вводить в эксплуатацию множество функций, а это, в свою очередь, позволяет командам понять, что является ценным в программном обеспечении, наблюдая, как оно используется на практике.
Двадцать лет назад мне повезло найти свое место в компании Thoughtworks, где наши команды используют такие навыки, чтобы создавать для наших клиентов новые программные продукты и заменять ими устаревшие. Как и Джеймс, мы обнаружили, что техники экстремального программирования служили надежной основой для нашей работы, и мы весьма успешно применяли их в течение последних двух десятилетий. Поэтому я очень рад, что Джеймс переписал свою книгу, добавив в нее опыт еще одного десятилетия своей работы в роли коуча. В результате получился прочный фундамент для изучения тех навыков, которые нам так помогли. Как и все действительно стоящее, обучение займет время, и на вашем пути будут разочарования. Но этот путеводитель может вам помочь – избавив от безрезультативных церемоний и приведя к источнику силы, которую мы с Джеймсом почувствовали, впервые применив эти методы много лет назад.
Мартин Фаулер, Chief Scientist, Thoughtworks
Введение
Вопрос: Что нужно делать, чтобы выступить в Карнеги-холле?
Ответ: Практиковаться, практиковаться и еще раз практиковаться.
Я хочу помочь вам овладеть мастерством Agile-разработки.
Agile, как и любой командный подход к разработке программного обеспечения, – в своей основе человеческое искусство, зависящее от капризов людей и их взаимодействия. Чтобы мастерски овладеть Agile-разработкой, вам нужно научиться ежеминутно оценивать множество возможностей и интуитивно выбирать лучшее направление действий.