1
Гибкие требования
или First Things First!
Антон Непомнящих
Компания ИСС Арт
2
■ О безнадёжных проектах
■ Как от заказчика добиться приоритетов
■ Почему разработчики тоже не любят
приоритеты
■ Что плохого в «структуре работ»
■ Проблема первой итерации
■ Как хранить требования
Что сегодня будет
3
О безнадёжных проектах
4
Главные риски
■ Ошибки календарного планирования
75% сдача проекта
5
Главные риски
■ Ошибки календарного планирования
■ Раздувание требований
75% сдача проекта
6
Главные риски
■ Ошибки календарного планирования
■ Раздувание требований
■ Текучка
75% сдача проекта
7
Главные риски
■ Ошибки календарного планирования
■ Раздувание требований
■ Текучка
■ Нарушение спецификаций
75% сдача проекта
8
Главные риски
■ Ошибки календарного планирования
■ Раздувание требований
■ Текучка
■ Нарушение спецификаций
■ Технические риски
75% сдача проекта
9
Эксперты говорят
■ Эдвард Йордон
 Приоритеты!
1.Необходимо сделать
2.Следует сделать
3.Можно сделать
10
Эксперты говорят
■ Эдвард Йордон
 Приоритеты!
■ Джоэл Спольски
 Excel 5
«...Процесс исключения свойств в
целях подгонки плана был самым
лучшим делом, которое мы могли
сделать...»
11
Эксперты говорят
■ Эдвард Йордон
 Приоритеты!
■ Джоэл Спольски
 Excel 5
■ Кент Бек (eXtreme Programming)
 Минимальная версия, полезная
бизнесу.
12
Эксперты говорят
■ Эдвард Йордон
 Приоритеты!
■ Джоэл Спольски
 Excel 5
■ Кент Бек (eXtreme Programming)
 Минимальная версия, полезная бизнесу.
■ SCRUM
 Бэклог
13
Эксперты говорят
■ Эдвард Йордон
 Приоритеты!
■ Джоэл Спольски
 Excel 5
■ Кент Бек (eXtreme Programming)
 Минимальная версия, полезная бизнесу.
■ SCRUM
 Бэклог
■ Lean
 Канбан и вытягивание
14
Как от заказчика добиться приоритетов?
15
Проблемы с заказчиком
■ Этапы создания требований
 Реальная потребность
 «А почему бы не добавить ещё и вот это?»
 Мега-идеи
16
Проблемы с заказчиком
■ Этапы создания требований
 Реальная потребность
 «А почему бы не добавить ещё и вот это?»
 Мега-идеи
■ Ему жаль отказываться от любых требований
(особенно, от мега-идей)
■ Сравнивает разработку ПО со строительством
дома
■ Не понимает, что можно и нужно менять
порядок работ
17
Список требований
■ Даём список требований с указанными
примерными оценками и просим упорядочить
1 ч
5 ч
2 ч
4 ч
2 ч
3 ч
1 ч
18
Mind Maps
■ Даём список требований с указанными
оценками и просим упорядочить
■ Или показываем mind map с выделенными
цветом приоритетами
19
Переговоры
■ Главное — понимать самому!
20
Переговоры
■ Главное — понимать самому!
■ Показать график «выгоды/затраты»
 Выделив главное и реализовав это, начинаем
получать выгоду раньше
 Совокупная прибыль больше
Profit
Time
21
Переговоры
■ Главное — понимать самому!
■ Показать график «выгоды/затраты»
■ «Сделаем попозже?» вместо «давайте
уберём!»
■ «А если бы вы могли получать по очереди?»
■ «Что если случится катастрофа? Как
минимизировать ущерб?»
22
Резюме
■ Всё равно будет интуитивно ставить всем
требованиям высший приоритет :-(
■ Поэтому очередь рулит
■ Грубых оценок достаточно
■ Но не дайте заказчику заиграться! =)
23
Почему разработчики не любят приоритеты
24
Проблемы с разработчиками
■ Понимают структуру работ, и не понимают
требования
■ Любят интересности
■ Не любят переделывать
■ «Абстрактные классы — наше всё!»
25
Иерархическая структура работ
■ Рисование линии
■ Рисование овала
■ Изменение толщины
линий
■ Операции
копирования/вставки
■ Модель редактора
■ Контроллер редактора
■ Вид редактора
■ Модель линии
■ Контроллер линии
■ Вид линии
■ Панель стилей
■ Изменение толщины
линий
■ Панель операций
■ Выделение фигур
■ Операции
копирования/вставки
Требования («фичи») Структура работ
26
Иерархическая структура работ
■ Рисование линии
■ Рисование овала
■ Изменение толщины
линий
■ Операции
копирования/вставки
■ Модель редактора
■ Контроллер редактора
■ Вид редактора
■ Модель линии
■ Контроллер линии
■ Вид линии
■ Панель стилей
■ Изменение толщины
линий
■ Панель операций
■ Выделение фигур
■ Операции
копирования/вставки
Требования («фичи») Структура работ
Для заказчика Для разработчика
27
Культура разработки
■ Рассказываем про риски
■ Работаем строго в порядке приоритетов
■ Объясняем про кривую стоимости изменений и
хорошие инженерные штучки
 OOD
 keep it simple
 Refactoring
 unit-tests
 ...
$ of changes
Time
28
Проблема первой итерации
■ Сложно войти в новый слой требований
■ Заказчик долгое время не видит результат
Редактор
векторной графики
Рисование
линий
Перетаскивание Рисование овалов
Стрелочки Толщина Стыковка
Графический
редактор
29
Решение
■ Использовать готовые каркасы: фреймворки,
CMS и т.д.
■ keep it simple & refactoring и другие средства
■ Другие средства снижения вариабельности
Profit
Time
30
Как планировать загрузку команды?
31
Как раздавать задачи
■ Не раздать, а показать на список =)
■ Использовать выравнивание из Lean
■ Загружать народ улучшениями и багами
■ Фичи должны быть большими и важными
■ Каждый разработчик на паре технологий
32
Что в итоге?
■ Даём список требований с оценками заказчику
■ Пытаемся понять, что наиболее критично
■ В первой итерации пилим самое ценное
■ Повышаем культуру разработки
■ Переговоры, переговоры, переговоры!
33
Спасибо за внимание!
■ Антон Непомнящих
 anepomnyaschih@gmail.com
 Skype, Yahoo, Twitter: anton_nix
 anton-nix.livejournal.com
Старший менеджер проектов
Компания «ИСС Арт»

Гибкие требования и приоритезация

  • 1.
    1 Гибкие требования или FirstThings First! Антон Непомнящих Компания ИСС Арт
  • 2.
    2 ■ О безнадёжныхпроектах ■ Как от заказчика добиться приоритетов ■ Почему разработчики тоже не любят приоритеты ■ Что плохого в «структуре работ» ■ Проблема первой итерации ■ Как хранить требования Что сегодня будет
  • 3.
  • 4.
    4 Главные риски ■ Ошибкикалендарного планирования 75% сдача проекта
  • 5.
    5 Главные риски ■ Ошибкикалендарного планирования ■ Раздувание требований 75% сдача проекта
  • 6.
    6 Главные риски ■ Ошибкикалендарного планирования ■ Раздувание требований ■ Текучка 75% сдача проекта
  • 7.
    7 Главные риски ■ Ошибкикалендарного планирования ■ Раздувание требований ■ Текучка ■ Нарушение спецификаций 75% сдача проекта
  • 8.
    8 Главные риски ■ Ошибкикалендарного планирования ■ Раздувание требований ■ Текучка ■ Нарушение спецификаций ■ Технические риски 75% сдача проекта
  • 9.
    9 Эксперты говорят ■ ЭдвардЙордон  Приоритеты! 1.Необходимо сделать 2.Следует сделать 3.Можно сделать
  • 10.
    10 Эксперты говорят ■ ЭдвардЙордон  Приоритеты! ■ Джоэл Спольски  Excel 5 «...Процесс исключения свойств в целях подгонки плана был самым лучшим делом, которое мы могли сделать...»
  • 11.
    11 Эксперты говорят ■ ЭдвардЙордон  Приоритеты! ■ Джоэл Спольски  Excel 5 ■ Кент Бек (eXtreme Programming)  Минимальная версия, полезная бизнесу.
  • 12.
    12 Эксперты говорят ■ ЭдвардЙордон  Приоритеты! ■ Джоэл Спольски  Excel 5 ■ Кент Бек (eXtreme Programming)  Минимальная версия, полезная бизнесу. ■ SCRUM  Бэклог
  • 13.
    13 Эксперты говорят ■ ЭдвардЙордон  Приоритеты! ■ Джоэл Спольски  Excel 5 ■ Кент Бек (eXtreme Programming)  Минимальная версия, полезная бизнесу. ■ SCRUM  Бэклог ■ Lean  Канбан и вытягивание
  • 14.
    14 Как от заказчикадобиться приоритетов?
  • 15.
    15 Проблемы с заказчиком ■Этапы создания требований  Реальная потребность  «А почему бы не добавить ещё и вот это?»  Мега-идеи
  • 16.
    16 Проблемы с заказчиком ■Этапы создания требований  Реальная потребность  «А почему бы не добавить ещё и вот это?»  Мега-идеи ■ Ему жаль отказываться от любых требований (особенно, от мега-идей) ■ Сравнивает разработку ПО со строительством дома ■ Не понимает, что можно и нужно менять порядок работ
  • 17.
    17 Список требований ■ Даёмсписок требований с указанными примерными оценками и просим упорядочить 1 ч 5 ч 2 ч 4 ч 2 ч 3 ч 1 ч
  • 18.
    18 Mind Maps ■ Даёмсписок требований с указанными оценками и просим упорядочить ■ Или показываем mind map с выделенными цветом приоритетами
  • 19.
    19 Переговоры ■ Главное —понимать самому!
  • 20.
    20 Переговоры ■ Главное —понимать самому! ■ Показать график «выгоды/затраты»  Выделив главное и реализовав это, начинаем получать выгоду раньше  Совокупная прибыль больше Profit Time
  • 21.
    21 Переговоры ■ Главное —понимать самому! ■ Показать график «выгоды/затраты» ■ «Сделаем попозже?» вместо «давайте уберём!» ■ «А если бы вы могли получать по очереди?» ■ «Что если случится катастрофа? Как минимизировать ущерб?»
  • 22.
    22 Резюме ■ Всё равнобудет интуитивно ставить всем требованиям высший приоритет :-( ■ Поэтому очередь рулит ■ Грубых оценок достаточно ■ Но не дайте заказчику заиграться! =)
  • 23.
    23 Почему разработчики нелюбят приоритеты
  • 24.
    24 Проблемы с разработчиками ■Понимают структуру работ, и не понимают требования ■ Любят интересности ■ Не любят переделывать ■ «Абстрактные классы — наше всё!»
  • 25.
    25 Иерархическая структура работ ■Рисование линии ■ Рисование овала ■ Изменение толщины линий ■ Операции копирования/вставки ■ Модель редактора ■ Контроллер редактора ■ Вид редактора ■ Модель линии ■ Контроллер линии ■ Вид линии ■ Панель стилей ■ Изменение толщины линий ■ Панель операций ■ Выделение фигур ■ Операции копирования/вставки Требования («фичи») Структура работ
  • 26.
    26 Иерархическая структура работ ■Рисование линии ■ Рисование овала ■ Изменение толщины линий ■ Операции копирования/вставки ■ Модель редактора ■ Контроллер редактора ■ Вид редактора ■ Модель линии ■ Контроллер линии ■ Вид линии ■ Панель стилей ■ Изменение толщины линий ■ Панель операций ■ Выделение фигур ■ Операции копирования/вставки Требования («фичи») Структура работ Для заказчика Для разработчика
  • 27.
    27 Культура разработки ■ Рассказываемпро риски ■ Работаем строго в порядке приоритетов ■ Объясняем про кривую стоимости изменений и хорошие инженерные штучки  OOD  keep it simple  Refactoring  unit-tests  ... $ of changes Time
  • 28.
    28 Проблема первой итерации ■Сложно войти в новый слой требований ■ Заказчик долгое время не видит результат Редактор векторной графики Рисование линий Перетаскивание Рисование овалов Стрелочки Толщина Стыковка Графический редактор
  • 29.
    29 Решение ■ Использовать готовыекаркасы: фреймворки, CMS и т.д. ■ keep it simple & refactoring и другие средства ■ Другие средства снижения вариабельности Profit Time
  • 30.
  • 31.
    31 Как раздавать задачи ■Не раздать, а показать на список =) ■ Использовать выравнивание из Lean ■ Загружать народ улучшениями и багами ■ Фичи должны быть большими и важными ■ Каждый разработчик на паре технологий
  • 32.
    32 Что в итоге? ■Даём список требований с оценками заказчику ■ Пытаемся понять, что наиболее критично ■ В первой итерации пилим самое ценное ■ Повышаем культуру разработки ■ Переговоры, переговоры, переговоры!
  • 33.
    33 Спасибо за внимание! ■Антон Непомнящих  anepomnyaschih@gmail.com  Skype, Yahoo, Twitter: anton_nix  anton-nix.livejournal.com Старший менеджер проектов Компания «ИСС Арт»