Добавлен: 25.04.2023
Просмотров: 146
Скачиваний: 2
Автор методики, Скотт Амблер, выделил следующие ключевые позиции Agile Unified Process:
- Команда знает, что делает;
- Простота превыше всего.
- Соответствие принципам гибкой методологии разработки.
- Сфокусированность на ценных для проекта активностях.
- Независимость в выборе инструментов.
- Индивидуальная настройка AUP под нужды конкретного проекта.
ADM — набор итеративных методик гибкой разработки программного обеспечения, которые делают упор на формирование требования и решений по проекту через сотрудничество отдельных команд. Как и AUP, это не самоценная методика. [15]
Суть Agile Data Method определяется шестью положениями:
Данные — основа создания любого приложения.
- Проблемы с проектом — их можно обнаружить только при чётком понимании цели и концепции проекта.
- Рабочие группы — помимо непосредственной команды разработчиков есть enterprise groups, которые поддерживают другие рабочие группы.
- Уникальность — нет идеальной методики, под каждый проект нужно комбинировать инструменты с разных методологий.
- Работа в команде — совместная работа гораздо эффективнее, чем поодиночке.
- «Сладкое пятно» — поиск оптимального решения проблемы («сладкого пятна»), избегая крайностей.
Essential Unified Process (EssUP) — это разработка шведского учёного Ивара Якобсона, созданная для улучшения Rational Unified Process.
EssUP оперирует понятием практики, в которые входят:
- сценарий использования — описание поведения системы.
- итерационная разработка — создание рабочих кусков кода короткими циклами в несколько недель.
- командные практики — направленные на сплочение команды и повышение её эффективности.
- процессуальные практики — например, «Думай глобально, начинай с малого» или «Вовлекайте стейкхолдеров в бизнес-процессы».
Все практики в том или ином виде встречаются в методологиях RUP, CMMI и гибкой методике разработки.
Getting Real (GR) — эффективная для стартапов и начинающих команд методология, которая предлагает по максимуму использовать особенности небольших проектов и компаний: мобильность, гибкость, поиск новых решений, отсутствие жёсткой запутанной иерархии и т.д. Джейсон Фрид и Давид Ханссон, основатели компании 37signals (теперь — Basecamp), определили Getting Real как систему для решения реальных задач: максимально простую, понятную и функциональную. [15]
GR — сборная группа из десятка инструментов гибкой разработки, которые используются для минимизации:
- возможностей;
- опций и настроек;
- структуры компании;
- встреч;
- обещаний.
Необычная концепция не получила широкого распространения, хотя отдельные элементы используют другие методики.
OpenUP (OUP) — независимая от инструментов методология разработки ПО без жесткой структуры, которая содержит такие практики:
- измерение скорости работы команды;
- проведение ежедневных встреч и ретроспектив по завершению итераций;
- концепция микрошагов и раннего тестирования с использованием чеклистов;
- методика гибкого моделирования (AMDD).
Практики реализуются на основе четырех принципов:
- согласование интересов и достижение общего видения во время совместной работы
- непрерывное совершенствование через постоянную обратную связь
- фокусирование на архитектуре приложения на ранних стадиях для минимизации рисков
- максимизация ценности для конечного потребителя.
- непрерывное совершенствование через постоянную обратную связь. [15]
Учитывая разнообразие инструментов, практик, методов и методологий в Agile, нужно выбрать инструмент, который поможет определить эффективность каждого из них. Таким инструментом выступают метрики. [9]
Для большинства проектов хватит 4 направлений метрик:
- Производительность — сюда относятся Velocity и WIP. Первая подойдёт не для всех проектов, так как идет измеряются количество выполненных задач в итерацию, а они неравнозначны. Метрика Work-in-Progress определяет лимит задач на разных стадиях: и чем он выше, тем хуже;
- Прогнозирование — метрика capacity: определение количества идеальных часов, доступных в следующем спринте. Соответственно, можно понять, сколько времени есть на работу, насколько эффективно выполнение задач и как спланировать количество задач для спринта;
- Качество — например, индекс стабильности требований, который рассчитывается по формуле = (Общее количество оригинальных бизнес-требований + Число требований, которые поменялись к этому времени + Число добавленных требований + Число убранных требований) / (общее число оригинальных требований). С помощью метрики определяется количество времени, затраченное на переделывание задач;
- Ценности — в каждом случае просчитывается индивидуально, зависимо от формата проекта. Например, стартап AirBnb в качестве метрики, определяющую конечную ценность продукта для пользователей, выбрала количество загруженных фотографий высокого качества. С их увеличением пропорционально росло и количество потребителей.
К метрикам применимы те же правила, что и к другим Agile-инструментам. [15]
Нет единственно верной или нужной проекту метрики. Их нужно постоянно пересматривать, отбрасывать устаревшие и добавлять новые по мере необходимости. Она должна быть понятна и доступна всей всей команде, не превращаться в самоцель. Метрика ради метрики — плохое решение.
Популярность семейства гибкой методологии разработки сыграла с ним злую шутку, и даже на специализированных порталах встречаются мифы о том или ином аспекте Agile.
1. Agile подойдет для всех проектов.
Самое упорное заблуждение. Ни один метод Agile не добавит сам по себе ценности продукту и не смотивирует команду.
2. Agile против документации.
Гибкая методология разработки не против документации, она против документации как самоцели. А вот при выборе документации как средства коммуникации Agile действительно отдаёт приоритет живому общению.
3. Agile и планирование несовместимы.
Опровержением этого мифа служат дневные планирования с 10-минутными стэндапами, итерационное планирование каждые две недели, спринт-встречи и т.д.
4. Agile требует много переделывания (re-work).
В гибкой методологии разработки ПО переделывание проявляется в двух формах: переделывание требований (пользователи понимают, что им действительно нужно) и программного обеспечения (команды разработчиков находят улучшенные способы написать и спроектировать приложение). Но с этим приходится сталкиваться и в других методиках! Более того, для уменьшения негативного влияния rework и нужна итерационная модель, которая является особенностью Agile. [15]
Плюсы использования Agile следующие:
- вовлечение стейкхолдеров — у команды появляется больше возможностей понять желания клиента. А ранняя и частая доставка ПО усиливает доверие стейкхолдеров к проектной команде и еще глубже вовлекает в проект.
- ранняя и предсказуемая доставка — модель разработки через итерации (короткие промежутки от 1 до 6 недель) дает гибкость, ускоряет выпуск релиза продукта.
- фокусирование на бизнес-ценности — коллаборация с клиентом обеспечивает понимание командой того, как сделать продукт максимально ценным для потребителя.
- непрекращающееся улучшение качества — тестирование во время каждой итерации, деление финального билда на отдельные куски рабочего кода позволяют улучшать и справляться с ошибками ПО до выхода финального продукта.
Минусы:
- повышенные требования к команде и клиентам — без тесного взаимодействия между проектной командой и пользователями невозможно добиться выхода качественного продукта с высокой ценностью. А обилие инструментов и методов в Agile для внедрения требует опытную команду.
- не подходит для аутсорса и проектов, где участники взаимодействуют друг с другом только онлайн.
- риск никогда не выпустить финальную версию ПО — этот минус, как ни странно, выплывает из итеративной разработки и непрерывного совершенствования продукта — плюсов Agile.
- не работает без четкого видения бизнес-целей проекта — так как Agile-команда ориентируется на стейкхолдеров, то без выработки целей и концепции продукта разработка невозможна. [15]
В этом разделе были изучены этапы создания ПО, жизненный цикл, а также рассмотрены гибкие методологии разработки.
ЗАКЛЮЧЕНИЕ
В рамках работы решены следующие задачи:
- раскрыто понятие «программное обеспечение»;
- изучены основные принципы проектирования программного обеспечения;
- проанализированы этапы создания программного продукта;
- рассмотрены модели жизненного цикла;
- изучены гибкие методологии.
Независимо от развернутых моделей жизненного цикла, роль системного инженера охватывает весь жизненный цикл интересующей системы. Системные инженеры координируют разработку и развитие решения, начиная от определения требований до эксплуатации и, в конечном итоге, до вывода системы из эксплуатации. Они гарантируют, что эксперты в предметной области должным образом вовлечены, все выгодные возможности используются, все существенные риски выявлены и, по возможности, смягчены. Системный инженер тесно сотрудничает с руководителем проекта в адаптации общего жизненного цикла, включая ключевые решения, для удовлетворения потребностей их конкретного проекта.
Задачи системного проектирования обычно сосредоточены в начале жизненного цикла; однако, как коммерческие, так и правительственные организации признают необходимость анализа на протяжении всего жизненного цикла системы. Часто эти постоянные усилия направлены на изменение или изменение системы, продукта или услуги после того, как они поступят в производство или будут введены в эксплуатацию.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
- Богданов В. Управление проектами. Корпоративная система – шаг за шагом. — Манн, Иванов и Фербер (МИФ), 2012. — 241 с.
- Вендров А. М. Проектирование программного обеспечения экономических информационных систем. — Финансы и статистика, 2005. — 544 с.
- Вольфсон Б. Гибкое управление проектами и продуктами. — Питер, 2016. — 160 с.
- Джефф Паттон Пользовательские истории. Искусство гибкой разработки ПО. — Питер, 2014. — 400 с.
- Джефф Сазерленд Scrum. Революционный метод управления проектами. — Манн, Иванов и Фербер (МИФ), 2014. — 320 с.
- Дженнифер Дэвис, Кэтрин Дэниелс Философия DevOps. Искусство управления IT. — Питер, 2016. — 610 с.
- Мартин Клеппман Высоконагруженные приложения. Программирование, масштабирование, поддержка. — Питер, 2017. — 640 с.
- Эндрю Стеллман, Дженнифер Грин Постигая Agile. — Манн, Иванов и Фербер (МИФ), 2015. — 650 с.
- Barry Boehm, Jo Ann Lane, Supannika Koolmanojwong, Richard Turner The Incremental Commitment Spiral Model: Principles and Practices for Successful Systems and Software. — Addison-Wesley Professional, 2014. — 336 p.
- Chris Sims, Hillary Louise Johnson Scrum: a Breathtakingly Brief and Agile Introduction. — Dymaxicon, 2012. — 54 p.
- John Ousterhout A Philosophy of Software Design. — Yaknyam Press, 2018. — 190 p.
- Joyce Farrell Programming Logic & Design, Comprehensive. — Cengage Learning, 2017. — 656 p.
- Life-Prog [Электронный ресурс] Основные понятия. Программный продукт Режим доступа: https://life-prog.ru/2_13687_osnovnie-ponyatiya-programmniy-produkt.html Дата обращения (19.01.2019)
- Технология программирования [Электронный ресурс] Технология разработки программного обеспечения. Режим доступа: http://www.tehprog.ru/index.php_page=lecture12.html Дата обращения (19.01.2019)
- WorkSection [Электронный ресурс] Методология Agile. Матерь драконов или всех гибких методологий. Режим доступа: https://worksection.com/blog/agile.html Дата обращения (19.01.2019)