Борис Вольфсон - Гибкое управление проектами и продуктами
Отдельно подчеркну, что нельзя использовать такие карты напрямую для оценки сотрудников: большая часть проблем относится к процессам, и работники часто просто не могут на эти причины повлиять.
Контрольная карта по дефектам
Контрольная карта по дефектам в разрезе проектов
Диаграмма Парето
Этот инструмент позволяет выявить модули, которые содержат определенный процент дефектов. Обычно получается соотношение, близкое к 20/80: 20 % модулей содержат 80 % дефектов.
Именно на эти модули стоит обратить внимание:
• покрыть их дополнительно тестами;
• провести дополнительные инспекции кода.
Диаграмму Парето можно использовать для анализа модулей по дефектам, но можно этим и не ограничиваться: аналогичный анализ можно провести по количеству вносимых изменений.
Диаграмма Парето
Модули, в которые часто вносятся изменения, экономически выгодно сделать более гибкими:
• сделать более гибкую и настраиваемую архитектуру;
• активно использовать шаблоны проектирования для дополнительной гибкости.
Итоги
Глава 12. Agile-методологии
Водопадная модель разработки ПО
Начнем с основ и для этого возьмем машину времени и переместимся в 1970 год: доктор Уинстон Ройс пишет свою статью «Управление разработкой больших программных систем» (Managing the development of large software systems), которая и положила начало водопадной модели разработки ПО. Самое интересное, что он в своей статье описывает эту модель как антипаттерн.
Доктор Ройс предлагает решение, в котором есть элементы итеративности и гибкости, но оно больше похоже на тяжеловесную методологию.
1. Подробная проработка архитектуры программы до начала разработки (включая предварительную архитектуру).
2. Максимально подробная документация на каждом этапе.
3. Симуляция всего проекта в уменьшенном виде (фактически прототипирование).
4. Планирование, контроль и мониторинг тестирования.
5. Вовлечение заказчика.
Водопадная модель разработки ПО
В результате у Ройса получается совсем другая схема работы, нежели та, на которую обычно ссылаются.
Авторы Agile-манифеста
В феврале 2001 года в местечке под названием Сноуберд в штате Юта собрались 17 специалистов (консультантов и практиков), чтобы обсудить легковесные методики разработки. В результате родился документ «Манифест гибких методологий разработки» (Agile Manifesto). Позволю себе привести список авторов манифеста и краткую информацию о них.
Кент Бек – создатель разработки через тестирование и экстремального программирования. Автор нескольких книг на эти темы и соавтор JUnit.
Майк Бидл – основатель и генеральный директор e-Architects Inc., консалтинговой компании, которая специализируется на разработке распределенного ПО. Он также является соавтором книги Scrum, Agile Software Development, написанной совместно с Кеном Швабером.
Усовершенствованная водопадная модель разработки ПО
Эйри ван Беннекум – участвовал в разработке методологии DSDM с 1997 года. До этого активно работал над быстрой разработкой (Rapid Application Development).
Алистер Кокберн – известен исследованиями проектных команд и участием в разработке семейства методологий Crystal.
Уорд Каннингем – основатель Cunningham & Cunningham, Inc. Он также широко известен своим огромным вкладом в развитие объектно-ориентированного программирования, экстремального программирования и в концепцию вики.
Джеймс Греннинг – тренер и консультант по гибким методологиям. Является специалистом в области разработки и тестирования встроенного программного обеспечения и автором книги Test Driven Development for Embedded C.
Стивен Меллор – специалист в области разработки программного обеспечения, соавтор метода ООАП Шлаера-Меллора, работал над UML в составе Object Management Group.
Мартин Фаулер – главный исследователь в компании Thoughtworks. Автор многих работ и книг по паттернам анализа, UML, рефакторингу и экстремальному программированию.
Джим Хайсмит – ведущий разработчик методологии Adaptive Software Development и автор соответствующей книги.
Эндрю Хант – соавтор книги Pragmatic Programmer: From Journeyman to Master и других работ, связанных с разработкой ПО.
Рон Джеффрис – владелец сайта XProgramming.com, консультант в компании Object Mentor и соавтор книги Extreme Programming Installed.
Джон Керн – участвовал во многих проектах по исследованиям и разработке в области авиастроения. Он также является евангелистом объектно-ориентированного программирования с начала 90-х годов.
Брайан Мэрик – программист и консультант по тестированию программного обеспечения. Основной вклад Брайана заключается в исследовании процессов тестирования ПО в гибких методологиях разработки.
Роберт Мартин – работает в отрасли разработки ПО с 1970 года. Он является президентом и основателем фирмы Object Mentor Inc., которая специализируется на консалтинге в области экстремального программирования, гибких методологиях разработки, консалтинге по архитектуре ПО и т. д. Он также является соавтором книг по программированию и разработке программного обеспечения.
Кен Швабер – президент компании Advanced Development Methods (ADM), которая занимается улучшением методов разработки ПО. Он является опытным разработчиком, менеджером продуктов и консультантом. В начале 90-х годов он работал с Джеффом Сазерлендом над первыми версиями Scrum. Он также является соавтором книги Scrum, Agile Software Development.
Джефф Сазерленд – технический директор (CTO) компании PatientKeeper, которая занимается созданием ПО для медицинских учреждений. За свою карьеру был техническим директором (или вице-президентом по технологиям) в девяти компаниях. Известность приобрел как изобретатель методологии Scrum.
Дейв Томас – верит, что сердце проекта по разработке – не методология, а люди. По этой причине он является соавтором книги The Pragmatic Programmer.
Crystal Clear
Crystal Clear – это легковесная гибкая методология, созданная Алистером Кокберном. Она предназначена для небольших команд из 6–8 человек для разработки некритических бизнес-приложений. Как и все гибкие методологии, Crystal Clear больше опирается на людей, чем на процессы и артефакты.
Crystal Clear использует семь методов/практик, три из которых являются обязательными.
1. Частая поставка продукта.
2. Улучшения через рефлексию.
3. Личные коммуникации.
4. Чувство безопасности.
5. Фокусировка.
6. Простой доступ к экспертам.
7. Качественное техническое окружение.
Как видите, все практики характерны для семейства Agile-методологий. В графическом виде практики Crystal Clear можно изобразить таким образом.
Методы и практики Crystal Clear
Dynamic Systems Development Method (DSDM)
Методология DSDM (Dynamic Systems Development Method – метод разработки динамических систем) основана на подходе RAD (Rapid Application Development – быстрая разработка приложений) и включает в себя три стадии.
1. Предпроектная стадия, на которой авторизуется реализация проекта, определяются финансовые параметры и команда.
2. Жизненный цикл проекта представляет собой реализации проекта и включает в себя пять этапов.
3. Постпроектная стадия обеспечивает качественную эксплуатацию системы.
Общая схема DSDM
Жизненный цикл проекта включает в себя пять стадий (первые две фактически объединяются).
1. Определение реализуемости.
2. Экономическое обоснование.
3. Создание функциональной модели.
4. Проектирование и разработка.
5. Реализация.
Agile Unified Process
Agile Unified Process (AUP) – упрощенная версия IBM Rational Unified Process, созданная Скоттом Амблером (Scott Ambler) и состоящая из семи методов.
1. Моделирование используется для понимания бизнес-требования и предметной области.
2. Реализация – преобразование модели в исполняемый код с модульными тестами.
3. Тестирование – способ поиска дефектов и верификации системы на предмет соответствия требованиям.
4. Размещение – доставка готовой системы пользователям.
5. Управление конфигурациями – управление доступом и версиями артефактов проекта.
6. Управление проектом – непосредственные активности, связанные с ходом проекта: управление и координация людей, управление рисками, финансами и т. д.
7. Среда – совокупность процессов, инструментов, стандартов и правил.
Feature-driven development
Feature-driven development (функционально-ориентированная разработка) – методология, созданная Джеффом Де Люка (Jeff De Luca). Разработка ведется в пять этапов.