Модули, в которые часто вносятся изменения, экономически выгодно сделать более гибкими:
• сделать более гибкую и настраиваемую архитектуру;
• активно использовать шаблоны проектирования для дополнительной гибкости.
Итоги
Глава 12. Agile-методологии
Водопадная модель разработки ПО
Начнем с основ и для этого возьмем машину времени и переместимся в 1970 год: доктор Уинстон Ройс пишет свою статью «Управление разработкой больших программных систем» (Managing the development of large software systems), которая и положила начало водопадной модели разработки ПО. Самое интересное, что он в своей статье описывает эту модель как антипаттерн.
Доктор Ройс предлагает решение, в котором есть элементы итеративности и гибкости, но оно больше похоже на тяжеловесную методологию.
1. Подробная проработка архитектуры программы до начала разработки (включая предварительную архитектуру).
2. Максимально подробная документация на каждом этапе.
3. Симуляция всего проекта в уменьшенном виде (фактически прототипирование).
4. Планирование, контроль и мониторинг тестирования.
5. Вовлечение заказчика.
Водопадная модель разработки ПО
В результате у Ройса получается совсем другая схема работы, нежели та, на которую обычно ссылаются.
Авторы Agile-манифеста
В феврале 2001 года в местечке под названием Сноуберд в штате Юта собрались 17 специалистов (консультантов и практиков), чтобы обсудить легковесные методики разработки. В результате родился документ «Манифест гибких методологий разработки» (Agile Manifesto). Позволю себе привести список авторов манифеста и краткую информацию о них.
Кент Бек
– создатель разработки через тестирование и экстремального программирования. Автор нескольких книг на эти темы и соавтор JUnit.Майк Бидл
– основатель и генеральный директор e-Architects Inc., консалтинговой компании, которая специализируется на разработке распределенного ПО. Он также является соавтором книгиУсовершенствованная водопадная модель разработки ПО
Эйри ван Беннекум
– участвовал в разработке методологии DSDM с 1997 года. До этого активно работал над быстрой разработкой (Rapid Application Development).Алистер Кокберн
– известен исследованиями проектных команд и участием в разработке семейства методологий Crystal.Уорд Каннингем
– основатель Cunningham & Cunningham, Inc. Он также широко известен своим огромным вкладом в развитие объектно-ориентированного программирования, экстремального программирования и в концепцию вики.Джеймс Греннинг
– тренер и консультант по гибким методологиям. Является специалистом в области разработки и тестирования встроенного программного обеспечения и автором книгиСтивен Меллор
– специалист в области разработки программного обеспечения, соавтор метода ООАП Шлаера-Меллора, работал над UML в составе Object Management Group.Мартин Фаулер
– главный исследователь в компании Thoughtworks. Автор многих работ и книг по паттернам анализа, UML, рефакторингу и экстремальному программированию.Джим Хайсмит
– ведущий разработчик методологии Adaptive Software Development и автор соответствующей книги.Эндрю Хант
– соавтор книги Pragmatic Programmer: From Journeyman to Master и других работ, связанных с разработкой ПО.Рон Джеффрис
– владелец сайта XProgramming.com, консультант в компании Object Mentor и соавтор книгиДжон Керн
– участвовал во многих проектах по исследованиям и разработке в области авиастроения. Он также является евангелистом объектно-ориентированного программирования с начала 90-х годов.Брайан Мэрик
– программист и консультант по тестированию программного обеспечения. Основной вклад Брайана заключается в исследовании процессов тестирования ПО в гибких методологиях разработки.Роберт Мартин
– работает в отрасли разработки ПО с 1970 года. Он является президентом и основателем фирмы Object Mentor Inc., которая специализируется на консалтинге в области экстремального программирования, гибких методологиях разработки, консалтинге по архитектуре ПО и т. д. Он также является соавтором книг по программированию и разработке программного обеспечения.Кен Швабер
– президент компании Advanced Development Methods (ADM), которая занимается улучшением методов разработки ПО. Он является опытным разработчиком, менеджером продуктов и консультантом. В начале 90-х годов он работал с Джеффом Сазерлендом над первыми версиями Scrum. Он также является соавтором книги