Джеймс Шор был одним из пионеров, вставших на тропу экстремального программирования (Extreme Programming, XP), центрального элемента движения Agile. Первое издание этой книги было отличным руководством для команд, показывавшим им, что нужно знать для правильного выполнения Agile-процессов. Позже Джеймс вместе с Дианой Ларсен продолжили работу над созданием модели Agile Fluency™, которая объединила в себе их опыт развития навыков в использовании подходов Agile. Модель показывает, что простое применение техник проектного управления, часто именуемых базовым подходом Scrum, дает некую ценность, фокусируя внимание на потребностях клиентов, но не учитывает технических навыков, необходимых для того, чтобы полностью раскрыть преимущества высокой производительности и надежности, которых добиваются многие команды.
Эта позиция непосредственно определяет структуру книги, значительная часть которой посвящена тому, как сфокусироваться на создании реальной ценности и как надежно поставить ее потребителю продукта. «Сфокусироваться на ценности» означает понимать потенциал командной работы, развивать навыки адаптивного планирования и тесно сотрудничать с заказчиками и конечными пользователями готового ПО. В понятие «надежно поставить ценность» входят основные технические практики тестирования, рефакторинга, дизайна и коллективной разработки. Оно также учитывает парадоксальное наблюдение, что создание программного обеспечения, обладающего высоким внутренним качеством, снижает затраты и увеличивает скорость поставки продукта. Сочетание культуры DevOps и непрерывной поставки (continuous delivery) дает возможность быстро вводить в эксплуатацию множество функций, а это, в свою очередь, позволяет командам понять, что является ценным в программном обеспечении, наблюдая, как оно используется на практике.
Двадцать лет назад мне повезло найти свое место в компании Thoughtworks, где наши команды используют такие навыки, чтобы создавать для наших клиентов новые программные продукты и заменять ими устаревшие. Как и Джеймс, мы обнаружили, что техники экстремального программирования служили надежной основой для нашей работы, и мы весьма успешно применяли их в течение последних двух десятилетий. Поэтому я очень рад, что Джеймс переписал свою книгу, добавив в нее опыт еще одного десятилетия своей работы в роли коуча. В результате получился прочный фундамент для изучения тех навыков, которые нам так помогли. Как и все действительно стоящее, обучение займет время, и на вашем пути будут разочарования. Но этот путеводитель может вам помочь – избавив от безрезультативных церемоний и приведя к источнику силы, которую мы с Джеймсом почувствовали, впервые применив эти методы много лет назад.
Введение
Вопрос: Что нужно делать, чтобы выступить в Карнеги-холле?
Ответ: Практиковаться, практиковаться и еще раз практиковаться.
Я хочу помочь вам овладеть мастерством Agile-разработки.
Agile, как и любой командный подход к разработке программного обеспечения, – в своей основе
Как можно научиться такому сложному искусству? Практикуясь!
Во-первых, эта книга – руководство. Она содержит подробное описание одного из способов практического применения Agile. Книга основана на экстремальном программировании, но также берет идеи и практики из Scrum, Kanban, DevOps, Lean Software Development, Lean Startup и др. В конечном счете это практическое пособие, которое позволит вам успешно внедрить Agile-разработку в вашу команду и организацию или поможет обнаружить, что Agile не подходит в вашей ситуации.
Во-вторых, эта книга призвана помочь вам овладеть
Я не могу спрогнозировать, какую волну поднимет ваш выбор в вашей организации. Я и не пытаюсь. Вы должны сами определить нюансы и достичь понимания. Это единственный способ овладеть искусством. Следуйте практикам. Смотрите, что происходит. Думайте, почему они сработали… или не сработали. Потом повторяйте. Что было таким же? Что получилось по-другому? Почему? Потом делайте это снова. И снова.
Поначалу вам может быть трудно понять, как использовать каждую из практик. Они могут выглядеть простыми на бумаге, но сложными в реальном применении. Продолжайте практиковаться, пока не станет легче.