SlideShare uma empresa Scribd logo
1 de 28
1
1. Введение в методы Agile
Технологии разработки программного обеспечения
() Владислав Лавров, vlavrov.com
2
Библиография
Книга:
Agile! Прекрасный, ужасный, шумный /
Бертран Мейер; пер. с англ. и ред. В. Биллига.
- Москва Тверь : НАУ "ИНТУИТ" - ЗАО НИИ
ЦПС, 2015. - 248 с.
Один из ведущих ученых в области инженерии
программного обеспечения Computer Science и
Software Engineering
Бертран Мейер
Электронный курс:
Анализ и оценка методов разработки
программного обеспечения (Agile)
http://www.intuit.ru/studies/courses/3505/747/info
() Владислав Лавров, vlavrov.com
3
Agile software development, agile-методы
Гибкая методология разработки
– серия подходов к разработке программного обеспечения,
ориентированных на использование интерактивной
разработки, динамическое формирование требований и
обеспечение их реализации в результате постоянного
взаимодействия внутри самоорганизующихся рабочих групп,
состоящих из специалистов различного профиля
Что такое Agile?
() Владислав Лавров, vlavrov.com
4
Манифест создателей Agile (2001)
• люди и взаимодействие важнее процессов и
инструментов;
• работающий продукт важнее исчерпывающей
документации;
• сотрудничество с заказчиком важнее согласования
условий контракта;
• готовность к изменениям важнее следования
первоначальному плану;
() Владислав Лавров, vlavrov.com
5
1. Переопределение ролей разработчиков, менеджеров и
потребителей.
2. Отказ от «Предваряющего анализа» (Big Upfront) –
начальных этапов разработки.
3. Итеративная разработка.
4. Ограниченная функциональность, основанная на
договоренностях.
5. Фокусирование на качестве, достижимом в процессе
тестирования.
1.1. Предпосылки (доктрины) Agile
() Владислав Лавров, vlavrov.com
6
1.2. Принципы Agile
Организационные принципы:
1. Поставить клиента в центр.
2. Разрешать самоорганизацию команды.
3. Сохранять устойчивый темп разработки.
4. Разрабатывать минимально необходимое ПО:
• создавать минимальную функциональность.
• создавать только запрашиваемый продукт.
• разрабатывать только код и тесты.
5. Допускать изменения.
() Владислав Лавров, vlavrov.com
7
Технические принципы:
6. Вести разработку итеративно:
• выполнять частые рабочие итерации.
• замораживать требования на время итерации.
7. Рассматривать тесты как ключевой ресурс:
• никакую новую разработку не начинать, пока не
пройдут все тесты.
• вначале тесты.
8. Выражать требования через сценарии.
Принципы Agile (продолжение)
() Владислав Лавров, vlavrov.com
8
Принцип 1.
«Поставить клиента в центр»
• Разработка является ориентированной на
потребителя.
• Цель разработки – поставка потребителю
продукта с наилучшим ROI (Return On
Investment, «Возврат Инвестиций»).
• Представители потребителей должны
включаться в проект, их роль одна из важных
ролей в команде разработчиков
() Владислав Лавров, vlavrov.com
9
Принцип 2.
«Разрешать самоорганизацию команды»
• Команда является самоорганизующейся.
• Решение зависит от специфики решаемых задач.
• Ограничение прав менеджера проекта.
() Владислав Лавров, vlavrov.com
10
Принцип 3.
«Сохранять устойчивый темп разработки»
• Развитие проекта идет устойчивым темпом.
• Благодаря жесткому графику отсутствуют
так называемые "смертельные марши",
когда для выдержки контрольного срока
начинается авральная работа днем и ночью.
• "Устойчивость" требует, чтобы работе
отводилось разумное время, сохраняя
вечера и уикэнды для отдыха.
() Владислав Лавров, vlavrov.com
11
Принцип 4.
«Разрабатывать минимально необходимое ПО»
• создаются только основные функции
(минимальная функциональность);
• строится только то, что запрашивается, исключая работы для
будущего повторного использования и расширений (минимальный
продукт);
• создаются только два вида продуктов – программы и тесты,
исключая все, что не поставляется потребителю, и избавляясь тем
самым от излишних трат (минимальные артефакты)
() Владислав Лавров, vlavrov.com
12
Принцип 5.
«Допускать изменения»
• Разработка должна допускать изменения.
• Все требования не могут быть определены в начале
разработки. Потребности выявляются в процессе
разработки.
• В ходе испытаний промежуточных версий как у
потребителей, так и у самих разработчиков возникает
понимание необходимости новых свойств или изменения
существующих свойств системы. Такие изменения
рассматриваются как нормальная часть процесса
разработки.
() Владислав Лавров, vlavrov.com
13
Принцип 6.
«Вести разработку итеративно»
• разработка представляет итеративный процесс, состоящий из
последовательного выполнения итераций.
• Каждая итерация (спринт) совершенно короткая – несколько
недель, ее результатом является рабочий релиз системы,
возможно, носящий довольно частный характер.
• Представители пользователей могут провести испытания,
результат которых может стать источником новых идей для
следующей итерации
() Владислав Лавров, vlavrov.com
14
Принцип 7.
«Рассматривать тесты как ключевой ресурс»
• Никакая новая разработка не может начаться, пока не
пройдут все тесты.
• Вначале тесты. Никакой код не может быть написан до
того, как для него не созданы тесты.
• Тесты представляют замену спецификаций и требований.
() Владислав Лавров, vlavrov.com
15
Принцип 8.
«Выражать требования через сценарии»
• Сценарий представляет описание варианта взаимодействия
пользователя с системой
() Владислав Лавров, vlavrov.com
16
• Менеджер проекта (разработки) (Manager);
• Команда (Team);
• Владелец продукта (Product owner);
• Scrum-мастер (Scrum Master);
• Потребитель (Customer – заказчик, пользователь).
1.3. Роли в Agile
Ключевые agile роли:
() Владислав Лавров, vlavrov.com
17
• назначать задачи;
• принимать решение, какие функции следует реализовать;
• распределять работы между членами команды;
• запрашивать отчеты о выполненных работах.
Роли в Agile.
Менеджер проекта (разработки)
В классическом Agile-методе
менеджеры НЕ должны:
() Владислав Лавров, vlavrov.com
18
• обеспечение окружения, позволяющего
команде работать успешно;
• организация «гладкого» взаимодействия с
остальной частью организации: в этой роли
менеджер представляет команду для высшего
руководства и других подразделений;
• управление ресурсами, включая поставщиков
и партнеров по аутсорсингу.
Роли в Agile.
Менеджер проекта (разработки) (продолжение)
Задачи:
() Владислав Лавров, vlavrov.com
19
• Команда – это не группа людей, управляемых менеджером, а
самоорганизуемая группа, наделенная правами. Главное для
самоорганизуемой команды – решить, что делать следующим.
• Ключевое достоинство состоит в способности быстрой
адаптации к новым обстоятельствам.
• Рекомендуется иметь кросcфункциональную команду, в
которой любой разработчик должен быть способен подойти к
списку задач, взять и реализовать следующую задачу.
Роли в Agile.
Команда (Team)
() Владислав Лавров, vlavrov.com
20
• Представляет организацию заказчика.
• Важнейшая обязанность – определение функциональности.
• Владелец является лицом продукта, продвигает решения, за ним
остается последнее слово в этих решениях.
• На владельце продукта лежит ответственность за определение и
сопровождение журнала заказов (бэклога) продукта – списка
заказанных функций
Роли в Agile.
Владелец продукта (Product owner)
() Владислав Лавров, vlavrov.com
21
• Одна из первостепенных задач мастера –
устранять препятствия, указанные членами
команды на ежедневных встречах. Препятствия
любого типа, технические и организационные, все,
что мешает команде работать в полную силу
(реализовать столь много пользовательских
историй, насколько это возможно).
• Защита команды от внешних раздражителей, от
администрации и других подразделений компании
Роли в Agile.
Scrum-мастер (Scrum Master)
() Владислав Лавров, vlavrov.com
22
Роли в Agile.
Потребитель (Customer)
• Методы agile ставят потребителя в центр, в некоторых
случаях включают его в члены команды.
• Потребитель обеспечивает требования, устанавливает
приоритеты и направляет проект.
• Уровень пользовательского включения может быть разным.
() Владислав Лавров, vlavrov.com
23
1.4. Практики в Agile
() Владислав Лавров, vlavrov.com
Организационные практики:
1) Спринт (Sprint).
2) Ежедневные встречи (Daily meeting).
3) Игра в планирование, планирующий покер (Planning
game, planning poker).
4) Непрерывная интеграция (Continuous integration).
5) Ретроспектива (Retrospective).
6) Разделяемое владение кодом (Shared code ownership).
24
Практики в Agile (продолжение)
() Владислав Лавров, vlavrov.com
Технические практики:
7) Тест-управляемая разработка (Test driven development).
8) Рефакторинг (Refactoring).
9) Парное программирование (Pair programming).
10) Простейшее решение, которое только может работать
(Simplest solution that can possibly work).
11) Стандарты кодирования (Coding standards).
25
1.5. Артефакты в Agile
() Владислав Лавров, vlavrov.com
Виртуальные
1) Варианты использования (Use case, user story).
2) График ликвидации (Burndown chart).
Материальные
3) Карты историй (Story card).
4) Панель историй (Story board).
5) Открытая комната (Open room).
26
График ликвидации нереализованных задач в Agile.
Убывающая диаграмма выполнения
() Владислав Лавров, vlavrov.com
Отставание от графика
Опережение графика
«Идеальный» ритм
выполнения задач
27
Карта историй в Agile
() Владислав Лавров, vlavrov.com
28
Панель задач, отражающая динамику развития проекта
() Владислав Лавров, vlavrov.com

Mais conteúdo relacionado

Mais procurados

Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПОAnton Konushin
 
C++ осень 2012 лекция 12
C++ осень 2012 лекция 12C++ осень 2012 лекция 12
C++ осень 2012 лекция 12Technopark
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllMykyta Hopkalo
 
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...CUSTIS
 
ClubQA #2. Unit testing and TDD
ClubQA #2. Unit testing and TDDClubQA #2. Unit testing and TDD
ClubQA #2. Unit testing and TDDClub QA Kostroma
 
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПОseleznev_stas
 
Тестирование весна 2014 смешанное занятие 2
Тестирование весна 2014 смешанное занятие 2Тестирование весна 2014 смешанное занятие 2
Тестирование весна 2014 смешанное занятие 2Technopark
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нтAlexei Lupan
 
CodeFest 2011. Федянина С. — Эффективная работа распределенной команды в Soft...
CodeFest 2011. Федянина С. — Эффективная работа распределенной команды в Soft...CodeFest 2011. Федянина С. — Эффективная работа распределенной команды в Soft...
CodeFest 2011. Федянина С. — Эффективная работа распределенной команды в Soft...CodeFest
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Alexei Lupan
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной командеSvetlana Fedyanina
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityAlexei Lupan
 
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Dmytro Mindra
 
Восьмая лекция курса "Введение в системную инженерию"
Восьмая лекция курса "Введение в системную инженерию"Восьмая лекция курса "Введение в системную инженерию"
Восьмая лекция курса "Введение в системную инженерию"Anatoly Levenchuk
 

Mais procurados (20)

МиСПИСиТ (источники ошибок)
МиСПИСиТ (источники ошибок)МиСПИСиТ (источники ошибок)
МиСПИСиТ (источники ошибок)
 
МиСПИСиТ (структура)
МиСПИСиТ (структура)МиСПИСиТ (структура)
МиСПИСиТ (структура)
 
МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (тестирование и отладка)МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (тестирование и отладка)
 
МиСПИСиТ (архитектура)
МиСПИСиТ (архитектура)МиСПИСиТ (архитектура)
МиСПИСиТ (архитектура)
 
МиСПИСиТ (литература по курсу)
МиСПИСиТ (литература по курсу)МиСПИСиТ (литература по курсу)
МиСПИСиТ (литература по курсу)
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 
C++ осень 2012 лекция 12
C++ осень 2012 лекция 12C++ осень 2012 лекция 12
C++ осень 2012 лекция 12
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
 
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
 
ClubQA #2. Unit testing and TDD
ClubQA #2. Unit testing and TDDClubQA #2. Unit testing and TDD
ClubQA #2. Unit testing and TDD
 
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПО
 
Тестирование весна 2014 смешанное занятие 2
Тестирование весна 2014 смешанное занятие 2Тестирование весна 2014 смешанное занятие 2
Тестирование весна 2014 смешанное занятие 2
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нт
 
CodeFest 2011. Федянина С. — Эффективная работа распределенной команды в Soft...
CodeFest 2011. Федянина С. — Эффективная работа распределенной команды в Soft...CodeFest 2011. Федянина С. — Эффективная работа распределенной команды в Soft...
CodeFest 2011. Федянина С. — Эффективная работа распределенной команды в Soft...
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной команде
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for quality
 
Netpeak Talks #3: Масштабируемое приложение на PHP
Netpeak Talks #3: Масштабируемое приложение на PHPNetpeak Talks #3: Масштабируемое приложение на PHP
Netpeak Talks #3: Масштабируемое приложение на PHP
 
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
 
Восьмая лекция курса "Введение в системную инженерию"
Восьмая лекция курса "Введение в системную инженерию"Восьмая лекция курса "Введение в системную инженерию"
Восьмая лекция курса "Введение в системную инженерию"
 

Destaque

Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Andrey Bibichev
 
Методологии управления It проектами
Методологии управления It проектамиМетодологии управления It проектами
Методологии управления It проектамиOlena Ivanko
 
Гибкие методологии разработки ПО в реальном мире
 Гибкие методологии разработки ПО в реальном мире Гибкие методологии разработки ПО в реальном мире
Гибкие методологии разработки ПО в реальном миреTech Talks @NSU
 
Jira - обучение, внедрение и практика использования
Jira  - обучение, внедрение и практика использованияJira  - обучение, внедрение и практика использования
Jira - обучение, внедрение и практика использованияSQALab
 
AgileCamp'11 Новосибирск - введение в инженерные практики
AgileCamp'11 Новосибирск - введение в инженерные практикиAgileCamp'11 Новосибирск - введение в инженерные практики
AgileCamp'11 Новосибирск - введение в инженерные практикиAnton Katkov
 
AgileCamp'12 Нижний Новгород: Введение
AgileCamp'12 Нижний Новгород: Введение AgileCamp'12 Нижний Новгород: Введение
AgileCamp'12 Нижний Новгород: Введение Anton Katkov
 
Андрій Кушнарьов «Agile планування проектів»
Андрій Кушнарьов «Agile планування проектів»Андрій Кушнарьов «Agile планування проектів»
Андрій Кушнарьов «Agile планування проектів»Lviv Startup Club
 
Коварный Tracer Bullet Development
Коварный Tracer Bullet DevelopmentКоварный Tracer Bullet Development
Коварный Tracer Bullet DevelopmentMikalai Alimenkou
 
Agile - гибкое управление проектами
Agile - гибкое управление проектамиAgile - гибкое управление проектами
Agile - гибкое управление проектамиSergey Atroschenkov
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriverMikalai Alimenkou
 
Экстремальное программирование (XP – extreme programming)
Экстремальное программирование (XP – extreme programming)Экстремальное программирование (XP – extreme programming)
Экстремальное программирование (XP – extreme programming)Golubtsova Lena
 

Destaque (20)

Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)
 
Методологии управления It проектами
Методологии управления It проектамиМетодологии управления It проектами
Методологии управления It проектами
 
Гибкие методологии разработки ПО в реальном мире
 Гибкие методологии разработки ПО в реальном мире Гибкие методологии разработки ПО в реальном мире
Гибкие методологии разработки ПО в реальном мире
 
Jira - обучение, внедрение и практика использования
Jira  - обучение, внедрение и практика использованияJira  - обучение, внедрение и практика использования
Jira - обучение, внедрение и практика использования
 
AgileCamp'11 Новосибирск - введение в инженерные практики
AgileCamp'11 Новосибирск - введение в инженерные практикиAgileCamp'11 Новосибирск - введение в инженерные практики
AgileCamp'11 Новосибирск - введение в инженерные практики
 
Scrum and XP in practice
Scrum and XP in practiceScrum and XP in practice
Scrum and XP in practice
 
Future4kist 1.4
Future4kist 1.4Future4kist 1.4
Future4kist 1.4
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
AgileCamp'12 Нижний Новгород: Введение
AgileCamp'12 Нижний Новгород: Введение AgileCamp'12 Нижний Новгород: Введение
AgileCamp'12 Нижний Новгород: Введение
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
Андрій Кушнарьов «Agile планування проектів»
Андрій Кушнарьов «Agile планування проектів»Андрій Кушнарьов «Agile планування проектів»
Андрій Кушнарьов «Agile планування проектів»
 
Коварный Tracer Bullet Development
Коварный Tracer Bullet DevelopmentКоварный Tracer Bullet Development
Коварный Tracer Bullet Development
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
Станислав Головченко. Как построить системное управление проектами за 2 месяца?
Станислав Головченко. Как построить системное управление проектами за 2 месяца?Станислав Головченко. Как построить системное управление проектами за 2 месяца?
Станислав Головченко. Как построить системное управление проектами за 2 месяца?
 
Agile - гибкое управление проектами
Agile - гибкое управление проектамиAgile - гибкое управление проектами
Agile - гибкое управление проектами
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 
Extreme banking
Extreme bankingExtreme banking
Extreme banking
 
Экстремальное программирование (XP – extreme programming)
Экстремальное программирование (XP – extreme programming)Экстремальное программирование (XP – extreme programming)
Экстремальное программирование (XP – extreme programming)
 
Agile Feedback Loops (ukr)
Agile Feedback Loops (ukr)Agile Feedback Loops (ukr)
Agile Feedback Loops (ukr)
 
TDD for DB integration
TDD for DB integrationTDD for DB integration
TDD for DB integration
 

Semelhante a Введение в методы agile

РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...Yury Vetrov
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileAlexey Krivitsky
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...RIF-Technology
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы AgileMagneta AI
 
Work with requirements in terms of Agile transformation
Work with requirements in terms of Agile transformationWork with requirements in terms of Agile transformation
Work with requirements in terms of Agile transformationAndrii Mandrika
 
DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...
DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...
DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...Dakiry
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovMaxim Tsepkov
 
Работа с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииРабота с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииAndrii Mandrika
 
Гибкие методологии при создании ИТ продукта.
Гибкие методологии при создании ИТ продукта.Гибкие методологии при создании ИТ продукта.
Гибкие методологии при создании ИТ продукта.Project Management Institute (PMI) in Ufa
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.Igor Shkulipa
 
Внедрение гибкой методологии управления проектами в Danske bank
Внедрение гибкой методологии управления проектами в Danske bankВнедрение гибкой методологии управления проектами в Danske bank
Внедрение гибкой методологии управления проектами в Danske bankAlbina Iskhakova
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 

Semelhante a Введение в методы agile (20)

Scrum framework
Scrum frameworkScrum framework
Scrum framework
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с Agile
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы Agile
 
Work with requirements in terms of Agile transformation
Work with requirements in terms of Agile transformationWork with requirements in terms of Agile transformation
Work with requirements in terms of Agile transformation
 
DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...
DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...
DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Работа с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииРабота с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформации
 
Введение в Agile
Введение в AgileВведение в Agile
Введение в Agile
 
Agile testing
Agile testingAgile testing
Agile testing
 
Гибкие методологии при создании ИТ продукта.
Гибкие методологии при создании ИТ продукта.Гибкие методологии при создании ИТ продукта.
Гибкие методологии при создании ИТ продукта.
 
agile.pptx
agile.pptxagile.pptx
agile.pptx
 
Agile testing
Agile testingAgile testing
Agile testing
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
 
Менеджер ИТ продукта
Менеджер ИТ продуктаМенеджер ИТ продукта
Менеджер ИТ продукта
 
Scrum Wars
Scrum WarsScrum Wars
Scrum Wars
 
Внедрение гибкой методологии управления проектами в Danske bank
Внедрение гибкой методологии управления проектами в Danske bankВнедрение гибкой методологии управления проектами в Danske bank
Внедрение гибкой методологии управления проектами в Danske bank
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 

Mais de Ural Federal University named after First President of Russia B.N. Yeltsin

Mais de Ural Federal University named after First President of Russia B.N. Yeltsin (20)

2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.
 
2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.
 
2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.
 
ООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсыООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсы
 
3. Общая характеристика АСУ
3. Общая характеристика АСУ3. Общая характеристика АСУ
3. Общая характеристика АСУ
 
3. Информация и ее роль
3. Информация и ее роль3. Информация и ее роль
3. Информация и ее роль
 
Образовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУОбразовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУ
 
1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ
 
Наследование и полиморфизм
Наследование и полиморфизмНаследование и полиморфизм
Наследование и полиморфизм
 
Классы и объекты С#
Классы и объекты С#Классы и объекты С#
Классы и объекты С#
 
Интерфейсы
ИнтерфейсыИнтерфейсы
Интерфейсы
 
магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+
 
магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+
 
1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+
 
1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+
 
1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+
 
2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД
 
2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД
 
2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД
 
2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю
 

Введение в методы agile

  • 1. 1 1. Введение в методы Agile Технологии разработки программного обеспечения () Владислав Лавров, vlavrov.com
  • 2. 2 Библиография Книга: Agile! Прекрасный, ужасный, шумный / Бертран Мейер; пер. с англ. и ред. В. Биллига. - Москва Тверь : НАУ "ИНТУИТ" - ЗАО НИИ ЦПС, 2015. - 248 с. Один из ведущих ученых в области инженерии программного обеспечения Computer Science и Software Engineering Бертран Мейер Электронный курс: Анализ и оценка методов разработки программного обеспечения (Agile) http://www.intuit.ru/studies/courses/3505/747/info () Владислав Лавров, vlavrov.com
  • 3. 3 Agile software development, agile-методы Гибкая методология разработки – серия подходов к разработке программного обеспечения, ориентированных на использование интерактивной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля Что такое Agile? () Владислав Лавров, vlavrov.com
  • 4. 4 Манифест создателей Agile (2001) • люди и взаимодействие важнее процессов и инструментов; • работающий продукт важнее исчерпывающей документации; • сотрудничество с заказчиком важнее согласования условий контракта; • готовность к изменениям важнее следования первоначальному плану; () Владислав Лавров, vlavrov.com
  • 5. 5 1. Переопределение ролей разработчиков, менеджеров и потребителей. 2. Отказ от «Предваряющего анализа» (Big Upfront) – начальных этапов разработки. 3. Итеративная разработка. 4. Ограниченная функциональность, основанная на договоренностях. 5. Фокусирование на качестве, достижимом в процессе тестирования. 1.1. Предпосылки (доктрины) Agile () Владислав Лавров, vlavrov.com
  • 6. 6 1.2. Принципы Agile Организационные принципы: 1. Поставить клиента в центр. 2. Разрешать самоорганизацию команды. 3. Сохранять устойчивый темп разработки. 4. Разрабатывать минимально необходимое ПО: • создавать минимальную функциональность. • создавать только запрашиваемый продукт. • разрабатывать только код и тесты. 5. Допускать изменения. () Владислав Лавров, vlavrov.com
  • 7. 7 Технические принципы: 6. Вести разработку итеративно: • выполнять частые рабочие итерации. • замораживать требования на время итерации. 7. Рассматривать тесты как ключевой ресурс: • никакую новую разработку не начинать, пока не пройдут все тесты. • вначале тесты. 8. Выражать требования через сценарии. Принципы Agile (продолжение) () Владислав Лавров, vlavrov.com
  • 8. 8 Принцип 1. «Поставить клиента в центр» • Разработка является ориентированной на потребителя. • Цель разработки – поставка потребителю продукта с наилучшим ROI (Return On Investment, «Возврат Инвестиций»). • Представители потребителей должны включаться в проект, их роль одна из важных ролей в команде разработчиков () Владислав Лавров, vlavrov.com
  • 9. 9 Принцип 2. «Разрешать самоорганизацию команды» • Команда является самоорганизующейся. • Решение зависит от специфики решаемых задач. • Ограничение прав менеджера проекта. () Владислав Лавров, vlavrov.com
  • 10. 10 Принцип 3. «Сохранять устойчивый темп разработки» • Развитие проекта идет устойчивым темпом. • Благодаря жесткому графику отсутствуют так называемые "смертельные марши", когда для выдержки контрольного срока начинается авральная работа днем и ночью. • "Устойчивость" требует, чтобы работе отводилось разумное время, сохраняя вечера и уикэнды для отдыха. () Владислав Лавров, vlavrov.com
  • 11. 11 Принцип 4. «Разрабатывать минимально необходимое ПО» • создаются только основные функции (минимальная функциональность); • строится только то, что запрашивается, исключая работы для будущего повторного использования и расширений (минимальный продукт); • создаются только два вида продуктов – программы и тесты, исключая все, что не поставляется потребителю, и избавляясь тем самым от излишних трат (минимальные артефакты) () Владислав Лавров, vlavrov.com
  • 12. 12 Принцип 5. «Допускать изменения» • Разработка должна допускать изменения. • Все требования не могут быть определены в начале разработки. Потребности выявляются в процессе разработки. • В ходе испытаний промежуточных версий как у потребителей, так и у самих разработчиков возникает понимание необходимости новых свойств или изменения существующих свойств системы. Такие изменения рассматриваются как нормальная часть процесса разработки. () Владислав Лавров, vlavrov.com
  • 13. 13 Принцип 6. «Вести разработку итеративно» • разработка представляет итеративный процесс, состоящий из последовательного выполнения итераций. • Каждая итерация (спринт) совершенно короткая – несколько недель, ее результатом является рабочий релиз системы, возможно, носящий довольно частный характер. • Представители пользователей могут провести испытания, результат которых может стать источником новых идей для следующей итерации () Владислав Лавров, vlavrov.com
  • 14. 14 Принцип 7. «Рассматривать тесты как ключевой ресурс» • Никакая новая разработка не может начаться, пока не пройдут все тесты. • Вначале тесты. Никакой код не может быть написан до того, как для него не созданы тесты. • Тесты представляют замену спецификаций и требований. () Владислав Лавров, vlavrov.com
  • 15. 15 Принцип 8. «Выражать требования через сценарии» • Сценарий представляет описание варианта взаимодействия пользователя с системой () Владислав Лавров, vlavrov.com
  • 16. 16 • Менеджер проекта (разработки) (Manager); • Команда (Team); • Владелец продукта (Product owner); • Scrum-мастер (Scrum Master); • Потребитель (Customer – заказчик, пользователь). 1.3. Роли в Agile Ключевые agile роли: () Владислав Лавров, vlavrov.com
  • 17. 17 • назначать задачи; • принимать решение, какие функции следует реализовать; • распределять работы между членами команды; • запрашивать отчеты о выполненных работах. Роли в Agile. Менеджер проекта (разработки) В классическом Agile-методе менеджеры НЕ должны: () Владислав Лавров, vlavrov.com
  • 18. 18 • обеспечение окружения, позволяющего команде работать успешно; • организация «гладкого» взаимодействия с остальной частью организации: в этой роли менеджер представляет команду для высшего руководства и других подразделений; • управление ресурсами, включая поставщиков и партнеров по аутсорсингу. Роли в Agile. Менеджер проекта (разработки) (продолжение) Задачи: () Владислав Лавров, vlavrov.com
  • 19. 19 • Команда – это не группа людей, управляемых менеджером, а самоорганизуемая группа, наделенная правами. Главное для самоорганизуемой команды – решить, что делать следующим. • Ключевое достоинство состоит в способности быстрой адаптации к новым обстоятельствам. • Рекомендуется иметь кросcфункциональную команду, в которой любой разработчик должен быть способен подойти к списку задач, взять и реализовать следующую задачу. Роли в Agile. Команда (Team) () Владислав Лавров, vlavrov.com
  • 20. 20 • Представляет организацию заказчика. • Важнейшая обязанность – определение функциональности. • Владелец является лицом продукта, продвигает решения, за ним остается последнее слово в этих решениях. • На владельце продукта лежит ответственность за определение и сопровождение журнала заказов (бэклога) продукта – списка заказанных функций Роли в Agile. Владелец продукта (Product owner) () Владислав Лавров, vlavrov.com
  • 21. 21 • Одна из первостепенных задач мастера – устранять препятствия, указанные членами команды на ежедневных встречах. Препятствия любого типа, технические и организационные, все, что мешает команде работать в полную силу (реализовать столь много пользовательских историй, насколько это возможно). • Защита команды от внешних раздражителей, от администрации и других подразделений компании Роли в Agile. Scrum-мастер (Scrum Master) () Владислав Лавров, vlavrov.com
  • 22. 22 Роли в Agile. Потребитель (Customer) • Методы agile ставят потребителя в центр, в некоторых случаях включают его в члены команды. • Потребитель обеспечивает требования, устанавливает приоритеты и направляет проект. • Уровень пользовательского включения может быть разным. () Владислав Лавров, vlavrov.com
  • 23. 23 1.4. Практики в Agile () Владислав Лавров, vlavrov.com Организационные практики: 1) Спринт (Sprint). 2) Ежедневные встречи (Daily meeting). 3) Игра в планирование, планирующий покер (Planning game, planning poker). 4) Непрерывная интеграция (Continuous integration). 5) Ретроспектива (Retrospective). 6) Разделяемое владение кодом (Shared code ownership).
  • 24. 24 Практики в Agile (продолжение) () Владислав Лавров, vlavrov.com Технические практики: 7) Тест-управляемая разработка (Test driven development). 8) Рефакторинг (Refactoring). 9) Парное программирование (Pair programming). 10) Простейшее решение, которое только может работать (Simplest solution that can possibly work). 11) Стандарты кодирования (Coding standards).
  • 25. 25 1.5. Артефакты в Agile () Владислав Лавров, vlavrov.com Виртуальные 1) Варианты использования (Use case, user story). 2) График ликвидации (Burndown chart). Материальные 3) Карты историй (Story card). 4) Панель историй (Story board). 5) Открытая комната (Open room).
  • 26. 26 График ликвидации нереализованных задач в Agile. Убывающая диаграмма выполнения () Владислав Лавров, vlavrov.com Отставание от графика Опережение графика «Идеальный» ритм выполнения задач
  • 27. 27 Карта историй в Agile () Владислав Лавров, vlavrov.com
  • 28. 28 Панель задач, отражающая динамику развития проекта () Владислав Лавров, vlavrov.com