82
Аналитик в Agile Бибичев Андрей. «Заказные ИнформСистемы»

Аналитик в Agile (SEF-09)

Embed Size (px)

DESCRIPTION

Презентация Бибичева Андрея "Аналитик в Agile" с конференции SEF-09 (г. Минск). Видео доступно по ссылке: http://video.yandex.ru/users/stas-fomin/view/33/ А текст статьи - http://www.slideshare.net/biBIGine/agile-2029792

Citation preview

Page 1: Аналитик в Agile (SEF-09)

Аналитик в Agile

Бибичев Андрей. «Заказные ИнформСистемы»

Page 2: Аналитик в Agile (SEF-09)

О ЧЁМ И ЗАЧЕМ

Три вопроса Схема презентации

«Аналитик в Agile» 2 из 82

Page 3: Аналитик в Agile (SEF-09)

Три распространенных1. Как быть с fix-price

контрактами в Agile?

2. Какова роль менеджера в Agile и как эта роль соотносится с понятием «Product Owner»?

3. Нужны ли аналитики в Agile, и если да, как должно быть организовано взаимодействие с ними?

«Аналитик в Agile» 3 из 82

Page 4: Аналитик в Agile (SEF-09)

Fix-price контракты в Agile http://jeffsutherland.com/scrum/2008/08/agile-2008-money-for-nothing.html

«Аналитик в Agile» 4 из 82

Jeff Sutherland

Page 5: Аналитик в Agile (SEF-09)

Fix-price контракты в Agile (2) http://www.infoq.com/presentations/Introduction-Agile-Stacia-Broderick

«Аналитик в Agile» 5 из 82

Stacia Broderick

Page 6: Аналитик в Agile (SEF-09)

Менеджер в Agile http://blog.crisp.se/henrikkniberg/2007/11/14/1195064820000.html

«Аналитик в Agile» 6 из 82

Henrik Kniberg

Page 7: Аналитик в Agile (SEF-09)

Аналитик в Agile… Упс!

«Аналитик в Agile» 7 из 82

Page 8: Аналитик в Agile (SEF-09)

Позже на InfoQ появилась статья:http://www.infoq.com/articles/agile-business-analyst-role

«Аналитик в Agile» 7 из 82

Page 9: Аналитик в Agile (SEF-09)

Схема презентации

«Аналитик в Agile» 9 из 82

В Agile аналитик не

нужен?

А чем его занять?

И как встроить в процесс?

Так есть разница: Agile и НЕ-Agile?

Но есть еще много вопросов

и нюансов!

Мифы Agile Функции аналитикаСхемы взаимодействия

аналитик-команда

Еще раз про особенности аналитика в Agile

Кратко про ряд смежных вопросов

Page 10: Аналитик в Agile (SEF-09)

НО ПРЕЖДЕ – ПАРА ОГОВОРОК!

Бизнес-аналитик vs.системный аналитик

Scrum, Scrum, Scrum

«Аналитик в Agile» 10 из 82

Page 11: Аналитик в Agile (SEF-09)

Бизнес-аналитик vs. системный аналитик

«Аналитик в Agile» 11 из 82

• Экспертиза в предметной области

• Глубокое знание бизнес-процессов

• Умения внятно излагать и верифицировать

• Систематизация знаний• Построение информационных

моделей• Умение «спрямлять углы»• Участие в дизайне системы

Page 12: Аналитик в Agile (SEF-09)

Scrum, Scrum, Scrum

«Аналитик в Agile» 12 из 82

Источник:3rd Annual ”State of Agile Development” Survey June-July 2008•3061 respondents•80 countries

Page 13: Аналитик в Agile (SEF-09)

Из презентации Jeff-а Sutherland-аhttp://jeffsutherland.com/scrum/Agile2008MoneyforNothing.pdf

«Аналитик в Agile», (с) 2008 13 из 82

Google, Yahoo, Microsoft, IBM, Oracle, MySpace, Adobe, GE, Siemens, Sony/Ericson,

Page 14: Аналитик в Agile (SEF-09)

Scrum: общая схема (итерация == спринт)

Источник: http://www.crisp.se/henrik.kniberg/presentations/JAOO-2007-Henrik-Kniberg.pdf

«Аналитик в Agile» 14 из 82

Page 15: Аналитик в Agile (SEF-09)

Nokia-тест: часть 1 У вас итерации фиксированы, т.е. начинаются в

определенное время и заканчиваются в назначенное время?

Длина итерации не превышает 6 недель? В конце итерации вы имеете работающее ПО? Вам не нужна детальная спецификация для того,

чтобы начать итерацию? Важно иметь работающее ПО в конце итерации:

вы проводите тестирование во время процесса разработки?

Если все ответы – «ДА», то это итеративный процесс в полном смысле этого слова

«Аналитик в Agile» 15 из 82

Источник: http://www.infoq.com/interviews/jeff-sutherland-scrum-rules

Page 16: Аналитик в Agile (SEF-09)

Nokia-тест: часть 2 У вас есть Product Owner, т.е. есть кто-то, кто

представляет заказчика и работает с вами? Если у вас есть Product Owner, ведет ли он Product

Backlog, т.е. список «фич», которые нужно запрограммировать? Приоритизирован ли он по важности для заказчика? Есть ли оценка трудоемкости по каждому пункту?

Строите ли вы график сгорания работ (burndown chart) во время итерации, чтобы видеть, сколько работы осталось, и успеваете ли вы к концу итерации?

Во время итерации команда работает по принципу самоорганизации, т.е. менеджеры не вмешиваются в работу команды по ходу итерации?

Если и здесь все «ДА», то это Scrum

«Аналитик в Agile» 16 из 82

Page 17: Аналитик в Agile (SEF-09)

Must Read!http://www.infoq.com/minibooks/scrum-xp-from-the-trenches http://scrum.org.ua/wp-content/uploads/2008/12/scrum_xp-from-the-trenches-rus-final.pdf

«Аналитик в Agile» 17 из 82

Page 18: Аналитик в Agile (SEF-09)

МИФЫ AGILE

Кроссфункциональность Нет подробным спецификациям Минимум документации Прямое общение разработчиков с пользователями

«Аналитик в Agile» 18 из 82

Page 19: Аналитик в Agile (SEF-09)

«Слоганы»из Agile-пропаганды

1) Наиболее эффективныекоманды – это кросс-функциональные команды2) В начале итерации командене должно требоваться наличие подробных спецификаций3) Не следует создавать лишние артефакты, в частности, write-only документацию4) У разработчиков должна быть возможность общаться с пользователями и представителями бизнеса напрямую

«Аналитик в Agile» 19 из 82

Page 20: Аналитик в Agile (SEF-09)

• И что, при переходе наScrum нам нужно учитьаналитиков программировать?!

• Product Owner — эторуководитель проекта,выполняющий еще и функции аналитика?!

• Теперь вообще не следует предварительно прорабатывать задачу или требование перед постановкой их реализации в итерацию?!

Распространенные ошибочные выводы из них

«Аналитик в Agile» 20 из 82

?

Page 21: Аналитик в Agile (SEF-09)

Даже Скотт Адамс (Scott Adams) по этому прошелся…Источник: http://dilbertru.blogspot.com/2007/11/20071126.html

«Аналитик в Agile» 21 из 82

Мы собираемся попробовать кое-что под названием «Agile программирование».

Это значит, больше никакого планирования, никакой документации.

Просто начинайте писать код и жаловаться.

Так вот как это

называется.

Твоя школа.

Page 22: Аналитик в Agile (SEF-09)

Про слоган №1: Кроссфункциональность- это «путь к горизонту»- стремиться к ней полезно,

НО в рамках разумного

«Аналитик в Agile» 22 из 82

Page 23: Аналитик в Agile (SEF-09)

«Аналитик в Agile» 23 из 82

Вот чему противопоставляется

Page 24: Аналитик в Agile (SEF-09)

Кроссфункциональность:избегайте искусственных ограничений

«Аналитик в Agile» 24 из 82

область навыков

уровеньнавыков

Профиль навыков сотрудника

Page 25: Аналитик в Agile (SEF-09)

Кроссфункциональность:избегайте искусственных ограничений

«Аналитик в Agile» 25 из 82

область навыков

уровеньнавыков

Границы должностных обязанностей

Профиль навыков сотрудника

Page 26: Аналитик в Agile (SEF-09)

Кроссфункциональность:избегайте искусственных ограничений

«Аналитик в Agile» 26 из 82

область навыков

уровеньнавыков

Границы должностных обязанностей

ОБЫДНО!Пропадает!!!КПД < 30%

Профиль навыков сотрудника

Page 27: Аналитик в Agile (SEF-09)

Про слоган №2:Нет подробным спецификациям

- это в пику Heavy Weight:

«Аналитик в Agile» 27 из 82

Вера в магию и ум аналитиков и архитекторов

А дальше дело за малым – за кодерами

Page 28: Аналитик в Agile (SEF-09)

Еще баян про дерево и качелиИзвините! Не удержался…

«Аналитик в Agile» 28 из 82

1

2

3

4

5А было нужно:

1 – так объяснил заказчик

2 – так спроектировали

3 – так реализовали

4 – после тестирования

5 – так внедрили

Page 29: Аналитик в Agile (SEF-09)

Agile-спецификации – что рулит:• User story (Пользовательские истории)

• Use cases (Сценарии использования)

• Domain Models(Модели предметной области)

• Data Flow Diagrams (Потоки данных)

• Vision (Концепции)• …

Подробнее про Agile-спецификации:http://agileconsortium.blogspot.com/2008/04/nokia-test-agile-specifications-3.html

«Аналитик в Agile» 29 из 82

Page 30: Аналитик в Agile (SEF-09)

Про слоган №3:Минимум документации

Чем подробнее и больше документация,тем быстрее она «протухает»:

«Аналитик в Agile» 30 из 82

через год

Изначально красивая и качественная документация

Она же через год

Page 31: Аналитик в Agile (SEF-09)

Минимум, но не ноль!Без документации могут быть проблемы:

Тяжело вводить новых людей в проект;

Велика вероятность потери общих концепций и видения проекта;

Сложно осуществлять контроль качества;

Некомфортно сопровождать и развивать старую функциональность;

«Аналитик в Agile» 31 из 82

Page 32: Аналитик в Agile (SEF-09)

Про слоган №4: Прямое общение разработчиков с

пользователями/бизнесами

«Аналитик в Agile» 32 из 82

Кто из них кто – решайте сами…

Page 33: Аналитик в Agile (SEF-09)

Весьма полезно! Повышает вовлеченность и

мотивацию Повышает качество Выше вероятность сделать то, что

нужно, а не просто «что просили, то и кушайте»

Ускоряет процесс

Однако никто не запрещает иметь катализатор (читай – Аналитика)!

«Аналитик в Agile» 33 из 82

Page 34: Аналитик в Agile (SEF-09)

ВОЗМОЖНЫЕФУНКЦИИ АНАЛИТИКА

Связующее звено между разработчиками и заказчиками Экспертиза в предметной области Систематизация и построение моделей Контроль качества Участие в пилотных внедрения VIP-сопровождение

«Аналитик в Agile» 34 из 82

Или 6 способов

занять скучающего

аналитика в Agile

Page 35: Аналитик в Agile (SEF-09)

Функция 1: Связующее звено между разработчиками и заказчиками

«Аналитик в Agile» 35 из 82

Углубление в

бизнес-шелуху

Углубление в

техническую шелуху

Профили сотрудников

заказчика

Граница заказчик-исполнитель

Например, помощник бухгалтера

Например, DBA

Профили разработчиков

Page 36: Аналитик в Agile (SEF-09)

Даже в такой ситуациианалитик – хорошее усиление связи

«Аналитик в Agile» 36 из 82

Углубление в

бизнес-шелуху

Углубление в

техническую шелуху

Профили сотрудников

заказчика

Профили разработчиков

Граница заказчик-исполнитель

Например, помощник бухгалтера

Например, DBA

Page 37: Аналитик в Agile (SEF-09)

А весьма распространены

и такие ситуации:

«Аналитик в Agile» 37 из 82

Page 38: Аналитик в Agile (SEF-09)

В них роль аналитика становится

экстремально важной

«Аналитик в Agile» 38 из 82

Page 39: Аналитик в Agile (SEF-09)

Кроме того, не следует забывать

о рисках:

«Аналитик в Agile» 39 из 82

Занятость ключевого персонала у заказчика

Уход лидера проекта

Page 40: Аналитик в Agile (SEF-09)

Аналитик может(и должен)вас спасти!

«Аналитик в Agile» 40 из 82

Уход лидера проекта

Занятость ключевого персонала у заказчика

Page 41: Аналитик в Agile (SEF-09)

Функция 2: Экспертиза в предметной области

«Аналитик в Agile» 41 из 82

«Разжеванная»информация

Эксперты в предметной области и представители заказчика, пользователи

Информация

Команда разработчиков

Аналитик здесь похож на RSS-агрегатор +

портал (единая точка доступа)

Page 42: Аналитик в Agile (SEF-09)

Функция 3: Систематизация ипостроение моделей

• В Agile в сессиях моделирования (построения моделей) обычно принимает участие большая часть команды

• Но удобно иметь начальное приближение!

• Если аналитик способен его «сгенерировать», то это отлично, ну а если нет, то не фатально – команда спасёт (подогретые коммуникации рулят)!

«Аналитик в Agile» 42 из 82

Page 43: Аналитик в Agile (SEF-09)

Про сессии моделированияСлайд из презентации для РИТ-2008 («Практика внедрения Scrum»)

«Аналитик в Agile» 43 из 82

Page 44: Аналитик в Agile (SEF-09)

Функция 4:Контроль качества

• Как?!Аналитик превращается в тестера?!

• И да, и нет. Более подходящая параллель – «лётчик-испытатель» (первым опробует свежую функциональность)

«Аналитик в Agile» 44 из 82

Page 45: Аналитик в Agile (SEF-09)

Definition of Done (aka «DoD»)(критерий «Сделано»)

«Аналитик в Agile» 45 из 82

Подробнее см. например:http://chrissterling.gettingagile.com/2007/10/05/building-a-definition-of-done/

сборочныйсервер

коллега аналитик

Демо

(1) автоматическиесборка + тесты

(2) Code Review(3) Сделано то, что нужно?Оно работает? Это удобно?

Feedback

Feedback

Page 46: Аналитик в Agile (SEF-09)

Функция 5:Участие в пилотных внедрениях

Аналитик может сильно помочь:• обучение пользователей (документации не

хватает, процесс не отлажен)• «живая справка» (аналитик должен знать

систему, как свои пять пальцев)• исправление последствий некорректных

действий пользователей (требует специальных прав и навыков)

• фиксация всех недочетов и пожеланий («взять на карандаш»)

• перегрузка и выверка данных• начальная настройка системы

«Аналитик в Agile» 46 из 82

Page 47: Аналитик в Agile (SEF-09)

Функция 6: VIP-сопровождение

VIP:• крупные заказчики• первые клиенты

Особенности:• проблемы нестандартные• пожелания сложные• bug-report-ы зачастую выливаются в

большие доработки«Аналитик в Agile» 47 из 82

Аналитик хорошо знает и систему, и предметную

область. Кроме того, он умеет понимать пользователей и объяснять разработчикам

Page 48: Аналитик в Agile (SEF-09)

СХЕМЫ ВЗАИМОДЕЙСТВИЯАНАЛИТИК-КОМАНДА

Product Owner – аналитик Аналитик – помощник Product Owner-а Аналитик внутри команды Внешний отдел аналитиков

«Аналитик в Agile» 48 из 82

Page 49: Аналитик в Agile (SEF-09)

Схема 1: Product Owner – аналитикСамая простая и очевидная

«Аналитик в Agile» 49 из 82

Источник:http://www.crisp.se/henrik.kniberg/presentations/JAOO-2007-Henrik-Kniberg.pdf

Page 50: Аналитик в Agile (SEF-09)

Однако естьвысокие риски:

бутылочное горлышко экстремальная незаменимость:

а если в отпуске, а если заболел (дай Бог ему здоровья)

трудно найти на рынке труда вряд ли удастся полноценно вовлечь в активное участие во внедрениях и тестировании есть вероятность приоритизации работ, исходя из готовности постановки, а не business value и трудоемкости

«Аналитик в Agile» 50 из 82

Page 51: Аналитик в Agile (SEF-09)

Схема 2: Аналитик – помощник Product Owner-а

«Аналитик в Agile» 51 из 82

Источник: «Agile MASHUPS» Rachel Davies, QCon London 2008 http://www.slideshare.net/deimos/rachel-davies-agile-mashups

Исходя из недостатков предыдущей,напрашивается следующая:

Page 52: Аналитик в Agile (SEF-09)

Недостатки

• риск недостаточной прозрачности деятельности аналитика для команды

• вероятность восприятия аналитика как руководителя

«Аналитик в Agile» 52 из 82

Page 53: Аналитик в Agile (SEF-09)

Недостатки (продолжение)

«Аналитик в Agile» 53 из 82

Кто в доме хозяин? Один не заметен на фоне другого

Page 54: Аналитик в Agile (SEF-09)

Схема 3: Аналитик внутри команды«Все, кто могут быть погружены внутрь команды,

должны быть в команде.»

Аналитик сидит вместе со всеми Аналитик участвует в Scrum-митингах

наравне со всеми Работа аналитика учитывается при

планировании Аналитик может «делиться» своей работой с

другими (по общему согласию) И наоборот: аналитик может привлекаться к

другим работам (например, подготовить тестовые данные, рассказать про проект новому сотруднику и т.п.)

«Аналитик в Agile» 54 из 82

The

BEST!

Page 55: Аналитик в Agile (SEF-09)

Неэффективно, если:• Одной предметной областью занимается

несколько команд;

• В частности, Scrum-of-Scrum;• Проект, где технические трудности и

особенности превалируют над проблемами предметной области (например, a la Web 2.0);

• Нехватка квалифицированных аналитиков

«Аналитик в Agile» 55 из 82

Page 56: Аналитик в Agile (SEF-09)

Схема 4:Отдельный отдел аналитиков

• Экстремально высокая отдаленность от разработчиков

• Высока вероятность отката к прежним практикам и прежним проблемам

«Аналитик в Agile» 56 из 82

Опасная схема!

Page 57: Аналитик в Agile (SEF-09)

Итого:

«Аналитик в Agile» 57 из 82

POPO

PO

PO

PO

PO’1 2

3 4

Page 58: Аналитик в Agile (SEF-09)

ЕЩЕ РАЗ ПРО ОСОБЕННОСТИ АНАЛИТИКА В AGILE

Ключевой момент Лекарство от страха Типовые ошибки-дуализмы

«Аналитик в Agile» 58 из 82

Page 59: Аналитик в Agile (SEF-09)

Ключевой моментНЕ Agile

«Аналитик в Agile» 59 из 82

Page 60: Аналитик в Agile (SEF-09)

Ключевой моментAgile

«Аналитик в Agile» 60 из 82

Page 61: Аналитик в Agile (SEF-09)

У аналитика в Agileесть «лекарство от страха»

«Аналитик в Agile» 61 из 82

помощь команды быстрая обратная связь от заказчика

небольшое количество вспомогательных артефактов активные устные коммуникации

Ошибки аналитика не столь дороги

Page 62: Аналитик в Agile (SEF-09)

Качели №1

«Аналитик в Agile» 62 из 82

Команду не допускают к

аналитической работе

Разработчикам самим приходится

полностью прояснять, что же

нужно

Page 63: Аналитик в Agile (SEF-09)

Качели №2

«Аналитик в Agile» 63 из 82

Аналитик мало общается с заказчиком

Аналитиквсё время проводит у заказчика

Page 64: Аналитик в Agile (SEF-09)

Качели №3

«Аналитик в Agile» 64 из 82

Подробные спецификации перед началом

итерации

Отсутствие какой-либо проработки

требований до постановки их в

итерацию

Page 65: Аналитик в Agile (SEF-09)

Качели №4

«Аналитик в Agile» 65 из 82

Аналитик не рисует никаких

диаграмм и схем

Аналитик не пишет текст –

исключительно рисует диаграммы

и схемы

Page 66: Аналитик в Agile (SEF-09)

Качели №5

«Аналитик в Agile» 66 из 82

Команда с «придыханием»

относится к постановкам аналитика

Командане доверяет результатам

работы аналитика (не использует их)

Page 67: Аналитик в Agile (SEF-09)

Качели №6

«Аналитик в Agile» 67 из 82

Аналитик не участвует в

тестировании (QA)

Аналитик вынужден постоянно

«протыкивать» много старых интерфейсов

Page 68: Аналитик в Agile (SEF-09)

Качели №7

«Аналитик в Agile» 68 из 82

Команда воспринимает аналитика как руководителя

Аналитик для команды – мальчик/

девочка «на побегушках»

Page 69: Аналитик в Agile (SEF-09)

Качели №8

«Аналитик в Agile» 69 из 82

Аналитик взаимодействует с

командой исключительно при помощи

документациии Bug-трекера

Аналитик взаимодействует с

командой исключительно

посредством устных коммуникаций

Page 70: Аналитик в Agile (SEF-09)

Качели №9

«Аналитик в Agile» 70 из 82

С заказчиком и пользователями общается только

аналитик

Все члены команды без исключения

вынуждены плотно общаться с заказчиками

и пользователями

Page 71: Аналитик в Agile (SEF-09)

Можно продолжать, но я остановлюсь.Найдите свой идеальный баланс!

«Аналитик в Agile» 71 из 82

Page 72: Аналитик в Agile (SEF-09)

КРАТКО ПРОРЯД СМЕЖНЫХ ВОПРОСОВ

Как «выращивать» аналитиков Инструменты для ведения документации по проекту Почему модели предметной области снова в моде

«Аналитик в Agile» 72 из 82

Page 73: Аналитик в Agile (SEF-09)

«Выращивание»аналитиков

• Сейчас готовые аналитикина рынке труда стоятнеоправданно дорого

• Может, кризис это исправит?

• Да и уровень их навыковв большинстве случаевоставляет желать лучшего…

• Нужно уметь выращивать внутри Компании(таких, какие вам нужны):– способный инженер-тестировщик => будущий аналитик– способный инженер службы сопровождения => аналогично

«Аналитик в Agile» 73 из 82

Page 74: Аналитик в Agile (SEF-09)

Средства документирования

«Аналитик в Agile» 74 из 82

• Multimedia:– фотографии с досок– сканы листков– видео (с обсуждений, семинаров и т.п.)

• Презентации – плюс векторная графика (Visio/SVG)

• Wiki– обязательно ПЛЮС текстовые нотации для

графических диаграмм

РУЛИТ!Но нельзя редактировать

Доклад Стаса Фомина

про MediaWiki !!!

Page 75: Аналитик в Agile (SEF-09)

«Аналитик в Agile» 75 из 82

Page 76: Аналитик в Agile (SEF-09)

Почему модели предметной области снова в моде

«Аналитик в Agile» 76 из 82

ПО без «чего-то»основополагающего

инаправляющего

рискуетпревратиться в кучу

сараев-пристроек безкакой-либо

концептуальнойцелостности

!!!Чем ПО больше и сложнее или чем оно дольше живет и

развивается, тем выше становится этот риск

Page 77: Аналитик в Agile (SEF-09)

Почему модели предметной области снова в моде

«Аналитик в Agile» 77 из 82

Нужен своего рода «концептуальный план»- это и есть модель предметной области

Page 78: Аналитик в Agile (SEF-09)

Domain Driven Design (aka DDD)

«Аналитик в Agile» 78 из 82

Проектирование и дизайн системы должны вращаться вокруг одного Солнца и это Солнце –

модель предметной области

http://www.infoq.com/minibooks/domain-driven-design-quickly

Eric Evans

Page 79: Аналитик в Agile (SEF-09)

В DDD ничего принципиально нового нет

«Аналитик в Agile» 79 из 82

Всё это похоже на:• Объектно-ориентированное моделирование• Model Driven Architecture (MDA)

Только смещены акценты

Page 80: Аналитик в Agile (SEF-09)

Тренинг по созданию моделей предметной области (Domain Modeling)

«Аналитик в Agile» 80 из 82

Page 81: Аналитик в Agile (SEF-09)

Тренинг по созданию моделей предметной области (Domain Modeling)

«Аналитик в Agile» 81 из 82

Page 82: Аналитик в Agile (SEF-09)

Это всё!Вопросы?

«Аналитик в Agile»

НЕ Agile Agile