+7 (499) 638-64-11
Попробовать
Постановка и автоматизация процессов разработки ПО

История Agile

11.05.2012 22:30

Существует несколько легких методологий, которые оказали сильное влияние на Agile-движение:

  • Scrum (Jeff Sutherland and Ken Schwaber – also Mike Beedle)
  • DSDM (DSDM Consortium represented by Arie van Bennekum)
  • ASD (Jim Highsmith)
  • XP (Kent Beck, Ward Cunningham and Ron Jeffries – Martin Fowler)

Ниже приводятся основные вехи в становлении Agile-движения, с упоминанием всех основных его участников.

 

1992 – Crystal Methods

 

Семейство методологий Crystal послужила отправной точкой в развитии методологий разработки программного обеспечения, что в итоге привело к тому, что мы сейчас называем Agile-движением. Честь создания Crystal принадлежит Алистеру Коберну (Alistair Cockburn). Методология была названа Crystal в 1997 году. Методология может быть применима к командам, состоящим из 6 - 8 участников, расположенных в одном месте, работающих над созданием программных систем, не являющихся критичными для жизни пользователей. Вы можете обнаружить зачатки Agile-манифеста в методологии Crystal, поскольку она фокусируется на:

  1. Частой поставки работающего кода конечным пользователям.
  2. Разумных улучшениях.
  3. Всепроникающей коммуникации (osmotic communication) между членами команды, расположенными в одном месте. Под всепроникающей коммуникацией подразумевается непосредственная передача информации, в том числе путем подслушивания или наблюдения за вещами, происходящими вокруг.

Вы можете познакомиться с публикацией Notes on the writing of the agile manifesto. В настоящее время он является консультирующим партнером в основанной им компании "Humans and Technology".

 

1993 – Refactoring

 

Термин "Рефакторинг" (Refactoring) впервые ввел Bill Opdyke в статье под названием "Creating Abstract Superclasses by Refactoring". Вот как рефакторинг описывается в Википедии: процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. В настоящее время он занимает позицию Arcitecture Lead в компании JPMorgan Chase.

 

1994 – Dynamic Systems Development Method

 

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

 

Arie van Bennekum является одним из автором Agile-манифеста и принимал активное участие в работе консорциума DSDM начиная с 1997 года. DSDM фокусируется на восьми основных принципах:

  1. Фокус на потребностях бизнеса
  2. Поставлять во время
  3. Взаимодействовать
  4. Никогда не снижать качество
  5. Создавать постепенно с самых основ
  6. Разрабатывать итерационно
  7. Непрерывно и ясно общаться
  8. Демонстрировать управляемость

И вновь вы можете видеть основы Agile-манифеста.

 

1995 – Scrum and Pair Development

 

SCRUM был разработан совместно Джефом Сазерлендом (Jeff Sutherland) и Кеном Швабером (Ken Schwaber), которые представили доклад на конференции OOPSLA ’95 в Остине штат Техас. Джеф Сазерленд занимает пост CEO в компании Scrum, Inc. Кен Швабер является основателем Scrum.org.

 

Mike Beedle был одним из первых евангелистов Scrum и внедрил эту методологию во много организаций, начиная с середины 90-х. Как вы знаете, Scrum является фактически стандартом де-факто для гибкой разработки. В настоящее время он основатель и CEO в компании Enterpise Scrum.

agile-jeff-sutherland-and-ken-sc.png

 

Парное программирование как концепция была описана одновременно и независимо несколькими авторами. Jim Coplien опубликовал статью “A Development Process Generative Pattern Language”, в которой содержится описание паттерна “Разработка в парах”. В настоящее время он обучает применению практик Lean и Agile в разработке программного обеспечения в Дании.

 

Larry Constantine писал о “Dynamic Duos” в своей книге “Constantine on Peopleware”, опубликованной в том же году. Данная концепция стала составной частью методологии Extreme Programming. Независимо от того, что было выполнено несколько исследований, демонстрирующих эффективность программирования в парах, данная концепция не нашла реального отражения в Agile-манифесте.

 

1997 – Feature Driven Development

 

Методология Feature Driven Development (FDD) изначально была разработана Jeff De Luca. Основные практики, описанные в FDD, следующие:

  1. Моделирование объектной модели домена.
  2. Разработка на основе фич.
  3. Индивидуальное владение кодом.
  4. Команды, организованные по фичам.
  5. Инспекции.
  6. Управление конфигурацией.
  7. Регулярные сборки продукта.
  8. Видимость прогресса и результатов.

Интересно то, что практика индивидуального владения кодом вступает в противоречие с концепцией коллективного владения кодом, что сегодня является ключевой практикой. В настоящее время он возглавляет консалтинговую компанию Nebulon.

 

Процесс разработки ПО по методологии FDD был представлен миру посредством публикации книги "Java Modeling in Color with UML: Enterprise Components and Process", где Джеф выступил в соавторстве с Питером Кодом (Peter Coad). Питер основал компанию TogetherSoft, которую затем продал компании Borland.

 

Jon Kern, один из авторов Agile-манифеста, работал совместно с Джефом и Питером и помогал формировать концепцию FDD. Вот его заметки “Agile Manifesto Notes – Feb 2001, Snowbird, Utah“.

 

1999 – Adaptive Software Development

 

Jim Highsmith сформулировал концепцию Adaptive System Development и опубликовал книгу с таким же названием. Идея выросла из его работы на методологиями быстрого создания приложений (RAD). Он предложил три фазы жизненного цикла:

  1. Speculation
  2. Collaboration
  3. Learning

Также он написал историю того, как был сформулирован Agile-манифест. Сейчас он работает старшим консультантом в компании ThoughtWorks.

 

The Pragmatic Programmer

 

Andrew Hunt опубликовал свою книгу "The Pragmatic Programmer: From Journeyman to Master". В книге описаны характерные черты прагматичного программиста, который является:

  1. Early adopter (человек, начинающий приобретать новый товар или использовать новую технологию вскоре после появления товара/технологии, т. е. на ранних этапах жизненного цикла товара/технологии)
  2. Любознательный и пытливый.
  3. Критически мыслит.
  4. Реалист.
  5. Эрудирован и не обязательно специализируется в чем-то конкретном.

Соавтором этой же книги выступил Dave Thomas. Если вы пройдетесь по детальному списку рекомендаций как стать прагматичным разработчиком, то обязательно найдете влияние на Agile-манифест. Вот и его история о том, что произошло в феврале 2001 года: Some Agile History

 

Extreme Programming, User Stories, Release Planning and Continuous Integration

 

Во время работы в Chrysler Кент Бек (Kent Beck) разработал концепцию экстремального программирования (Extreme Programming). Он опубликовал этот метод в 1999 в книге - Extreme Programming Explained. Частью Extreme Programming является концепция историй пользователя (User Stories) и планирования релиза (Release Planning). Данная методология описывает лучшие практики в сфере планирования, управления, проектирования, кодирования и тестирования. Ward Cunningham и Ron Jeffries также привнесли свои идеи, так что все трое считаются основателями метода XP.

 

Некоторые думают, что Мартин Фаулер (Martin Fowler) ввел термин "непрерывная интеграция" (Continuous Integration), однако на самом деле термин CI также был введен Кентом Беком. Вот его воспоминания на тему создания Agile-манифеста: “Writing The Agile Manifesto“. Он называет себя автором и спикером и работает в ThoughtWorks.

 

2000 – События ведущие к манифесту

 

Bob Martin проявил инициативу и взялся за организацию, ставшей исторической, встречи, прошедшей в феврале 2001 года на горнолыжном курорте. Он является владельцем Uncle Bob Consulting.

 

2002 – Новые идеи в Agile

Test Driven Development

 

Благодарность за TDD идет к Кенту Беку. Концепция разработки через тестирование изначально появилась в XP, в виде подхода "сначала тест". Чуть позже эта техника была описана более подробно Кентом в его книге: Test Driven Development: By Example.