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

Аналитик в Agile

  • Upload
    sqalab

  • View
    1.961

  • Download
    1

Embed Size (px)

DESCRIPTION

Андрей Бибичев, Заказные ИнформСистемы, Москва, Россия

Citation preview

Page 1: Аналитик в Agile

Аналитик в Agile

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

Page 2: Аналитик в Agile

О ЧЁМ И ЗАЧЕМ

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

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

Page 3: Аналитик в Agile

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

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

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

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

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

Page 4: Аналитик в Agile

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

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

Jeff Sutherland

Page 5: Аналитик в Agile

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

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

Stacia Broderick

Page 6: Аналитик в Agile

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

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

Henrik Kniberg

Page 7: Аналитик в Agile

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

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

Page 8: Аналитик в Agile

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

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

Page 9: Аналитик в Agile

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

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

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

нужен?

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

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

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

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

и нюансов!

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

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

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

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

Page 10: Аналитик в Agile

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

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

Scrum, Scrum, Scrum

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

Page 11: Аналитик в Agile

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

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

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

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

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

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

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

Page 12: Аналитик в Agile

Scrum, Scrum, Scrum

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

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

Page 13: Аналитик в Agile

Из презентации 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

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

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

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

Page 15: Аналитик в Agile

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

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

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

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

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

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

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

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

Page 16: Аналитик в Agile

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

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

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

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

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

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

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

Page 17: Аналитик в Agile

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

МИФЫ AGILE

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

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

Page 19: Аналитик в Agile

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

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

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

Page 20: Аналитик в Agile

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

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

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

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

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

?

Page 21: Аналитик в Agile

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

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

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

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

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

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

называется.

Твоя школа.

Page 22: Аналитик в Agile

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

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

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

Page 23: Аналитик в Agile

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

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

Page 24: Аналитик в Agile

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

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

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

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

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

Page 25: Аналитик в Agile

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

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

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

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

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

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

Page 26: Аналитик в Agile

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

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

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

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

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

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

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

Page 27: Аналитик в Agile

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

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

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

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

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

Page 28: Аналитик в Agile

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

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

1

2

3

4

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

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

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

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

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

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

Page 29: Аналитик в Agile

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

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

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

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

через год

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

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

Page 31: Аналитик в Agile

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

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

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

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

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

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

Page 32: Аналитик в Agile

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

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

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

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

Page 33: Аналитик в Agile

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

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

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

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

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

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

Page 34: Аналитик в Agile

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

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

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

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

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

аналитика в Agile

Page 35: Аналитик в Agile

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

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

Углубление в

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

Углубление в

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

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

заказчика

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

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

Например, DBA

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

Page 36: Аналитик в Agile

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

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

Углубление в

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

Углубление в

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

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

заказчика

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

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

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

Например, DBA

Page 37: Аналитик в Agile

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

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

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

Page 38: Аналитик в Agile

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

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

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

Page 39: Аналитик в Agile

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

о рисках:

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

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

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

Page 40: Аналитик в Agile

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

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

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

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

Page 41: Аналитик в Agile

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

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

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

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

Информация

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

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

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

Page 42: Аналитик в Agile

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

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

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

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

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

Page 43: Аналитик в Agile

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

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

Page 44: Аналитик в Agile

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

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

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

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

Page 45: Аналитик в Agile

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

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

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

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

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

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

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

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

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

Page 47: Аналитик в Agile

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

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

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

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

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

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

Page 48: Аналитик в Agile

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

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

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

Page 49: Аналитик в Agile

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

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

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

Page 50: Аналитик в Agile

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

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

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

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

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

Page 51: Аналитик в Agile

Схема 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

Недостатки

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

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

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

Page 53: Аналитик в Agile

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

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

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

Page 54: Аналитик в Agile

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

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

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

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

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

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

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

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

The

BEST!

Page 55: Аналитик в Agile

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

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

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

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

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

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

Page 56: Аналитик в Agile

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

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

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

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

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

Page 57: Аналитик в Agile

Итого:

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

POPO

PO

PO

PO

PO’1 2

3 4

Page 58: Аналитик в Agile

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

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

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

Page 59: Аналитик в Agile

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

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

Page 60: Аналитик в Agile

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

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

Page 61: Аналитик в Agile

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

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

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

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

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

Page 62: Аналитик в Agile

Качели №1

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

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

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

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

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

нужно

Page 63: Аналитик в Agile

Качели №2

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

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

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

Page 64: Аналитик в Agile

Качели №3

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

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

итерации

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

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

итерацию

Page 65: Аналитик в Agile

Качели №4

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

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

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

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

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

и схемы

Page 66: Аналитик в Agile

Качели №5

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

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

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

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

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

Page 67: Аналитик в Agile

Качели №6

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

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

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

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

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

Page 68: Аналитик в Agile

Качели №7

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

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

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

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

Page 69: Аналитик в Agile

Качели №8

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

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

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

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

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

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

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

Page 70: Аналитик в Agile

Качели №9

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

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

аналитик

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

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

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

Page 71: Аналитик в Agile

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

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

Page 72: Аналитик в Agile

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

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

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

Page 73: Аналитик в Agile

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

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

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

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

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

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

Page 74: Аналитик в Agile

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

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

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

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

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

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

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

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

про MediaWiki !!!

Page 75: Аналитик в Agile

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

Page 76: Аналитик в Agile

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

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

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

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

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

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

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

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

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

Page 77: Аналитик в Agile

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

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

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

Page 78: Аналитик в Agile

Domain Driven Design (aka DDD)

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

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

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

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

Eric Evans

Page 79: Аналитик в Agile

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

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

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

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

Page 80: Аналитик в Agile

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

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

Page 81: Аналитик в Agile

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

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

Page 82: Аналитик в Agile

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

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

НЕ Agile Agile