12. «А какой у вас Agile?», (с) 2009 5из 106 http://www.google.com/profiles/biBIGone
13. «А какой у вас Agile?», (с) 2009 6из 106 Практика внедрения Scrum
14. «А какой у вас Agile?», (с) 2009 7из 106 Agile Coach Camp 3 апреля 2009 года Москва
15. «А какой у вас Agile?», (с) 2009 8из 106 Одно слово, но разные свойства… Пришел к выводу, что есть два мира Agile. Они существуют параллельно и называются одним словом. Но они существенно отличаются!
21. Одна итерация из жизникоманды «Порошок» «А какой у вас Agile?», (с) 2009 10из 106 Я. Центра Product Owner (PO), Scrum Master (SM), Project Manager (PM)
22. Одна итерация из жизникоманды «Порошок» «А какой у вас Agile?», (с) 2009 11из 106 Серж Лет Senior Developer (server-side logic) М.С. Вордов Analyst Манкин Tester Базиль И.О. Senior Developer (GUI) хоЛ Junior Developer
23. Одна итерация из жизникоманды «Порошок» «А какой у вас Agile?», (с) 2009 12из 106 Альтер DBA /* в отпуске */
24. 3. Прежде всего, пользователи жалуются на долгий поиск накладных по статусу, но DBA в отпуске, так что придется отложить… 1. Начнем планирование! 4. Как обычно, вначале надо доделать то, что не успели в предыдущую итерацию. 5. ^&%$%^#!!! Опять много не успели сделать и пол-итерации придется доделывать… Центра 2. Мы слушаем тебя, Каа… П Л А Н И Р О В А Н И Е
25. «А какой у вас Agile?», (с) 2009 14из 106 1. Я ловлю непонятный баг в работе библиотеки wakeUp. Плюс мне не нравится в ней кусок – я думаю написать свою реализацию! 2. Как мне это надоело -«переписать». Опять всё время потратит… 3. Сколько это займет времени? 4. Сколько буду искать ошибку – не знаю… А перепишу быстро – за пару дней. 5. Ok! Отводим3 дня 6. Я исправляю замечания по результатам тестирования. Потом Манкин еще будет смотреть – не знаю,чего найдет… 7. И?! Как обычно, пару дней? 8. Ну,не знаю… Это непредсказуемо…. Х-р-р-р-р 9. А я буду всю эту итерацию переписывать наши use-case-ы в соответствии с замечаниями заказчика по оформлению.
26. «А какой у вас Agile?», (с) 2009 15из 106 2. У меня есть пара тупых формочек, которые нужно сделать по аналогии 1. Так, нам нужно понять,какую задачу дать хоЛ-у 3. Хорошая идея! Сколько это может занять? 4. Мне это раз плюнуть – за пол-дня сделаю. Ну,плюс тестирование 5. Гы! Наверняка я там найду много ошибок и они, как обычно, будут долго исправляться 9. Поскольку делать хоЛ-у, берем 8 дней 8. Ни разу не делал. Не знаю… Минимум неделю буду въезжать… Но, может,и две недели… 6. Мало смыслю в GUI. Но думаю, что по дню на формочку + день тестировать 7. В среднем мы одну форму оцениваем в один день
27. 1. Базиль И.О., ты что делал и собираешься делать? 2. Полез исправлять замечания Манкина, наткнулся на код хоЛа, сейчас его переписываю… 3. А что у тебя, Манкин? 4. Жду,пока Базиль И.О. исправит мои замечания, чтобы снова проверить. А больше пока тестировать нечего! 5. Базиль И.О., ты когда исправишь замечания? 6. Ну,не знаю, как пойдет… Еще меньше половины работы хоЛа переделал 7. А я сейчас делаю ту срочную незапланированную задачку, которую ты мне вчера поручила сделать. Ну,ты в курсе… 8. Пока разбираюсь 9. Правлю доку Daily Scrum в первые дни
28. Я тут посмотрел твой код. Он не соответствует нашей документации по архитектуре серверной части. Почему ты используешь столь необдуманное кеширование?! Ведь всё будет работатьв кластере! Да я как раз сейчас чуть менее чем полностью переписал этот код. Просто пока не коммитил, так как не всё причесал и еще кое-что хотелось доправить. По нашим стандартам надо было сразу делать согласно спецификации! Я обязательно доложу об этом Центре… Где-то в середине итерации
29. 1. Так, Серж Лет у нас снова заболел… Его задачи «повисли», блин! 2. Всё никак не могу отладить свой код. Какие-то непонятные ошибки лезут 3. Я свои формы доделал. Дальше двигаться не могу, так как Серж Лет свою часть не сделал. Читаю про JavaFX 4. $^%$(%^#$А я весь в запаре! Вчера эти балбесы мне не тот билд дали, в итоге я весь день тестировал неправильную версию. Сейчас все тесты надо проходить заново! ААА!!! Опять до ночи сидеть!.. 5. Ну,я продолжаю править доку Daily Scrum в последние дни
30. 1. Итак, то-то я уже видела и больше смотреть не будем. 2. А сё-то мне не интересно. 3. Давайте посмотрим вот это. Манкин, ты это проверял? 5. Ладно. Давай покажи что есть 4. Угу. Но только поверхностно. И уже нашел 2 ошибки. Х-р-р-р-р Д Е М О Н С Т Р А Ц И Я
31. 1. Опять много не успели! 2. Ну,это я просто проболел… 3. Кстати, на тебя жалуется наш Inspector! 4. Да он смотрел не тот код! Я его давно переписал! 5. Какие у нас еще проблемы? 6. Мне приходится переписывать почти весь код за хоЛом 8. Ну,он у нас только начинает работать. Пока учится… 7. Сам понаписал путанного кода, в котором не разобраться, а теперь наезжает… РЕ Т Р О С П Е К Т И В А
32. 9. Опять мне отдали не тот билд и я тестировал не пойми что! А потом периодически задерживали сборку и я простаивал 10. На эту тему я уже общалась с начальством. Нам обещали открыть вакансию Build-инженера 11. Ну,а что у нас хорошего? 12. Кроме моей новой прически 13. Я сделал красивую документацию! Правда,она местами уже немного устарела… 11. Да эту сборку можно полностью автоматизировать за полдня. Интересно, они про Maven хоть знают? РЕ Т Р О С П Е К Т И В А
33. Одна итерация из жизникоманды «Свежак» «А какой у вас Agile?», (с) 2009 22из 106
34. Одна итерация из жизникоманды «Свежак» «А какой у вас Agile?», (с) 2009 23из 106 Вася Scrum Master (SM) Педант, любит создавать web-GUI Андрей Product Owner (PO) Много трындит на конфах
35. Одна итерация из жизникоманды «Свежак» «А какой у вас Agile?», (с) 2009 24из 106 Юля Любит обучать и общаться, но иногда и программирует Лёша Спец по оптимизации алгоритмов Глеб Фанат Apple, но пишет на C# в M$ VisualStudio… В команде недавно
36. 1. Давайте планировать. Расчеты дали ожидаемую скорость 119 ид. часов: 224 рабочих часа минус 24 часа на подготовку и поездку на SEF-09 Андрея, фокус-фактор – 0,6 2. Ок! Наша цель на данный спринт: переделать проверки прав в Plantimeс императивного кода на нашу новую декларативную систему описания, дабы проверить её перед тем, как использовать в других проектах 3. А если не получится? 4. Значит будем переделывать систему прав в следующем спринте П Л А Н И Р О В А Н И Е
37. 5. Итак, наша цель: Права в Plantime! 6. Но вначале, как водится, важный баг, который надо исправить: долгий поиск документов по статусу. 7. А что там? Мы вроде тестировали и было всё нормально 8. За это время, должно быть, объем их базы вырос на порядок, т.к. там явно экспоненциальный рост объема операций из-за роста бизнеса. Нам даже пришлось срочно делать партиционирование основных таблиц. П Л А Н И Р О В А Н И Е
38. 9. К сожалению, сейчас наш конторский админ, который специализируется на СУБД в отпуске, но всё равно надо разбираться. Проконсультироваться можно еще с Витей и Максом – они тоже круто секут в этой теме 10. Давайте тогда оценивать. Нужно снять профиль, найти тормозящий запрос, посмотреть его план. Может, там просто индексов не хватает. 11. Я этой функциональности в глаза не видел. Сложно оценить… П Л А Н И Р О В А Н И Е
39. 12. Ну,там всё просто 13. Ага, как обычно! 14. Да действительно просто! Сейчас я за 3 минуты нарисую … Основная логика сосредоточена в классе VerySimpleClass 15. Глеб, тебе понятно? 16. Ну… не до конца… Но оценить трудоемкость попробую 17. Если будешь делать ты, дергай меня – я тебе помогу разобраться в коде и покажу,куда рыть П Л А Н И Р О В А Н И Е
41. 1. Я там хорошо ориентируюсь, так что мне это быстро, но если будет делать кто-то еще, то да – может потребоваться побольше времени. 2. Ну,я подумал, что где-то час на воспроизведение и поиск проблемы, еще пара на поиск решения, часик на его реализацию, еще часик на тестирование. 3. Воспроизведение уже есть. Я смотрел утром. 4. А проблемное место я тебе покажу за 5 минут – там больше нечему тормозить! П Л А Н И Р О В А Н И Е
42. 5. Ну что, кидаем еще раз? Или уже и так договорились? 6. Давайте лучше кинем. 7. Ок! Итого 3 ид.часа 8. Так, дальше у нас более фундаментальные задачи. Прежде всего, нужно … П Л А Н И Р О В А Н И Е
43. 9. Да, большая задача. Да еще тут надо хорошенько подумать,как это реализовать. Прикинуть распределение ответственности по классам и их публичный API 10. Тогда надо разбивать на три подзадачи, как обычно в таких случаях: совместнаядизайн-сессия, реализация, проверка. И оценивать каждую по отдельности 11. Если никто не против, то давайте так и сделаем. Мне нравится такой подход и он нас не подводил. 12. Ну что, в дизайн-сессии 2-3 активных достаточно? Или будем обсуждать все вместе? 13. А в wiki надо будет зафиксировать результат обсуждения или хватит снимков досок? П Л А Н И Р О В А Н И Е
44. . . . Значения близкие. Возьмем, как в таких случаях водится, большее? Т.е. 8? Давайте! Даже если здесь всё будет по оптимистичному сценарию, мы наверняка заковыряемся где-то на другом таске Это точно! В особенности там, где я осуществляю проверку и code-review П Л А Н И Р О В А Н И Е
46. 1. Я вчера таки разобрался,из-за чего тормозит поиск: там по статусу индекс локальный, а не глобальный. В итоге идет перебор всех партиций, а их уже много. Вариантов исправления два: сделать индекс глобальным, или в поиске требовать ограничение на дату документа (чтобы попадать в ограниченное число партиций). 2. А может, всё же проконсультироваться с Витей или Максом? 3. Да я уже! Собственно, они мне и объяснили,что означает такой план запроса. 4. Давайте сразу после Scrum-а обсудим, что с этим можно сделать. Daily Scrum в первые дни
47. 5. Да, давайте! Ну а сегодня я исправлю этот поиск по результатам обсуждения, а дальше возьму следующую по приоритетам задачу – например, проверку того, что сделал Глеб. 6. Это было бы полезно! Я как раз вчера реализовал фичу «A», но не уверен в паре моментов – хотелось бы обсудить. Сегодня буду делатьфичу «B», ну и исправлять замечания по «A», если будут. 7. Давай перед реализацией фичи «B» с тобой договоримся об API. А то мне придется сшиваться с ним по ходу реализации «0x» 8. Конечно! Daily Scrum в первые дни
48. 9. А я вчера готовился к конференции. Спасибо большое Васе за помощь в переводе абстракта на английский – он это делает значительно лучше GoogleTranslate! Сейчас вам разошлю то, что получилось – вдруг у вас будут идеи/замечания/предложения. Сегодня уезжаю в Минск… 10. Я вчера начал делать фичу «0x». Еще помогал Андрюхе с абстрактом и читал с Лёхой про партиционирование таблиц. Сегодня продолжу, буду «сшиваться» с кодом Глеба. 11. Я, как договаривались, выясняла у пользователей подробности по их request-ам. Сейчас пишу отчет в wiki. Потом буду смотреть,что получилось с ускорением поиска. Если всё хорошо, пронесу хотфикс на боевой сервер. Daily Scrum в первые дни
49. 1. Я вернулся с конфы. Всё было очень позитивно! За обедом расскажу подробнее. Сегодня буду писать отчет для публикации в блоге Компании. Дальше подключусь к вам. 2. Я вчера доделал … и начал проверять фичу «C»за Глебом. Мелочи поправил сам (форматирование, опечатки). Но у меня есть вопросы по коду и я нашел несколько ошибок. Сегодня хотелось бы вместе с Глебом всё это обсудить и исправить. 3. Я вчера исправлял замечания Леши по фиче «B». Сегодня буду с Васей выправлять «С». Если получится, возьму следующий таск. 4. Можешь посмотреть,как я исправила описание функциональности в соответствии с последними правками. Daily Scrum в середине
50. 5. Блин, я уже почти доделал мега-фичу в нашем провайдере Qlin. Осталось полденька. Дальше что-нибудь возьму по приоритету. 6. Ты опять столь же оптимистичен,как вчера? Даже уже про следующий таск говоришь? 6. ??? 7. Ну,вчера ты говорил примерно то же самое: «Осталось немного» 8. Подколол! Сегодня точно дожму! . . . Daily Scrum в середине
51. 1. Я вчера сидел допоздна. Но доделал! Все Unit-тесты проходят! Ничего другого не успел. Так что сейчас возьмусь за что-то очередное. Та-а-ак… А,ну вот проверю за Васей фичу … 2. А я вчера полдня исправлял вместе с Глебом ошибки. Потом всё оставшееся время разбирался с глюком в библиотеке MegaXob – для чего скачал полную спецификацию на формат файлов Ёxl. Нашел у них ошибку. Исправил. Теперь у нас все тесты проходят корректно. 3. Может, послать вендору твой патч, чтобы они в основном стволе исправили? 4. Я как раз этим сейчас и занят! На следующий день
52. 1. Меня вчера весь день дергали по орг. вопросам. Так что пришлось сегодня прийти пораньше, чтобы доделать то, за что я взялся. А то как-то совсем выпал из спринта… 2. Сейчас готов подключиться к кому-то из вас и помочь доделать таск. 3. Мне нужна помощь! Я не успеваю дотестировать всю критическую функциональность Plantimeпосле перевода на новые права 4. Ok! Давай поделим тестовые сценарии между собой! 5. Я тоже через пару часов могу к этому подключиться – я почти исправил все замечания по коду, а больше тасков нет! 6. Ну,а мы с Лехой совместно дожимаем доделки в Qlin Daily Scrum в последние дни
53. На демо каждый показывает то, что он сделал. Все пункты Backlog-а так или иначе демонстрируются в соответствии с how-to-demo. Замечания и предложения тут же обсуждаются и фиксируются
54. 1. Основной минус, что я так и не прочитал книжку «Agile Retrospective» Придется проводить ретроспективу «по-старинке» 2. Тогда у меня предложение: давайте на следующий спринт повесим отдельный персональный таск для Васи: «прочитать» Ну,и выделим сколько-то рабочего времени 3. Да, а какой у нас фактический фокус фактор получился? 4. С учетом незапланированной работы – 0,68 5. Будем поднимать на следующий спринт (планируемый был 0,6)? Р Е Т Р О С П Е К Т И В А
55. 6. Давайте пока не будем. Это первый спринт, когда так получилось. До этого стабильно немного не успевали. 7. Если все так думают, то оставим 0,6 8. Давайте оставим. А на случай опережения повесим несколько бонусных тасков! 9. Ok. Оставляем. Какие еще плюсы/минусы/идеи? 10. Давайте посмотрим идеи с предыдущего спринта и обсудим то, что не удалось сделать. Р Е Т Р О С П Е К Т И В А
63. 2. Уровень коммуникаций «А какой у вас Agile?», (с) 2009 48из 106 Мало, электронные Много, устные Уровень Уровень Вид Вид «Ржач» «Ржач» Нерабочие Нерабочие Электронные Электронные Устные по раб. Устные по раб.
68. 3. Топология взаимодействий Каждыйс каждым Снежинка Иерархия внутри проектной группы «А какой у вас Agile?», (с) 2009 53из 106
69. 3. Топология взаимодействий «А какой у вас Agile?», (с) 2009 54из 106 Каждыйс каждым Снежинка С кем взаимодействует С кем взаимодействует Сотр-к Сотр-к Вася Глеб хоЛ Леша Андрей Я. Центра Базиль И.О. М.С. Вордов
70. 4. Характер BurndownChart-ов «А какой у вас Agile?», (с) 2009 55из 106 S.P. S.P. Дожали долги с пред. Приоритетная мелочевка Пошли проверки Многое недоделано Чуть-чуть не успевают День День S.P. S.P. Борьба за результат Незапланированное День День
71. 5. Вид Taskboard-а «А какой у вас Agile?», (с) 2009 56из 106 вразнобой по приоритетам WIP команда WIP ½команда NEW NEW IN WORK IN WORK DONE DONE
72. 6. Величина Focus Factor-а «А какой у вас Agile?», (с) 2009 57из 106 FF[0; 0,3] FF[0,5;0,8] Обсуждается на планировании Обсуждается на планировании 70% 30% Скрытая от планирования часть Скрытая от планирования часть
74. «А какой у вас Agile?», (с) 2009 59из 106 Теоретически, Focus Factor должен быть равен примерно 0,64 2/ Традиционный путь ½L Начальная точка Цель L Кратчайший путь
75. «А какой у вас Agile?», (с) 2009 60из 106 Теоретически, Focus Factor должен быть равен примерно 0,64 2/ Нужно вспахать Вспахали (лошадь так разворачивалась ) S = a2 S = ½a2 a
77. 7. Кросс-функциональность «А какой у вас Agile?», (с) 2009 62из 106 Может быть немногогоризонтальной специализации Сильныеи вертикальная, и горизонтальная специализация
78. Как проверить кросс-функциональность Источник: http://blog.crisp.se/henrikkniberg/2009/02/27/1235769840000.html «А какой у вас Agile?», (с) 2009 63из 106
79. 8. Распределение работы «А какой у вас Agile?», (с) 2009 64из 106 PUSH /* толкающее */ PULL /* тянущее */
94. «А какой у вас Agile?», (с) 2009 75из 106 Статус и эгоизм Inattention to Results Неясность / неоднозначность Заниженные стандарты Avoidance of Accountability Чувство неуязвимости Мнимая гармония Lack of Commitment Fear of Conflict Absence of Trust
95. «А какой у вас Agile?», (с) 2009 76из 106 Предложения по устранению этих пороков /* не из книги */
96. 1. Отбор и найм «А какой у вас Agile?», (с) 2009 77из 106
103. «А какой у вас Agile?», (с) 2009 84из 106 Относись к человеку как к цели,а не как к средству Категорический императив Канта http://ru.wikipedia.org/wiki/Кант,_Иммануил
105. «А какой у вас Agile?», (с) 2009 86из 106 Old-school =>New-school
106. «А какой у вас Agile?», (с) 2009 87из 106 Old-school =>New-school Разделяй и властвуй Объединяй и вдохновляй Искусственная «мотивация» Устранение демотиваторов Персональные отношения, «любимчики» Воздействие на команду как целое
107. «А какой у вас Agile?», (с) 2009 88из 106 Old-school =>New-school Поучения, требования Личный пример Ставка на карьеру Ставка на самореализацию «Спихивание вниз» Делегирование Доверие + помощь
108. «А какой у вас Agile?», (с) 2009 89из 106 Old-school =>New-school Фокус на внешние обстоятельства Микро-менеджмент
109. «А какой у вас Agile?», (с) 2009 90из 106 Old-school =>New-school Фокус на «начальственном» звене Те, кто обеспечивает основной вклад, тоже важны
111. «А какой у вас Agile?», (с) 2009 92из 106 By Clark & Vizdos(с) 2006 implementingscrum.org http://www.implementingscrum.com/2006/09/11/the-classic-story-of-the-pig-and-chicken/
112. «А какой у вас Agile?», (с) 2009 93из 106 By Clark & Vizdos(с) 2006 implementingscrum.org http://www.implementingscrum.com/2006/09/11/the-classic-story-of-the-pig-and-chicken/
113. «А какой у вас Agile?», (с) 2009 94из 106 By Clark & Vizdos(с) 2006 implementingscrum.org http://www.implementingscrum.com/2006/09/11/the-classic-story-of-the-pig-and-chicken/
115. HenrikKniberg, «The Manager’s Role in Scrum» http://blog.crisp.se/henrikkniberg/2007/11/14/1195064820000.html «А какой у вас Agile?», (с) 2009 96из 106
116. «А какой у вас Agile?», (с) 2009 97из 106 Надо же было и здесь что-то перечеркнуть Объективные III.Внешние обстоятельства
117. «А какой у вас Agile?», (с) 2009 98из 106 1. Быстрое масштабирование бизнеса 3. Однотипное низко- квалифицированное кодирование (например, «формочкодельство») 2. Поддержкаlegacy-систем 4. Корпоративная культура, специализация по отделам и т.д.
118. «А какой у вас Agile?», (с) 2009 99из 106 По философии Lean в таких обстоятельствах: Совместное планирование – это waste Потери, не приносит пользы делу Потери, не приносит пользы делу Потери, не приносит пользы делу Daily Scrum Meeting – это waste Частые ретроспективы – это waste http://www.infoq.com/interviews/poppendieck-lean-2007 http://www.infoq.com/presentations/durnall-parkinson-thoughtworks-lean-it
119. «А какой у вас Agile?», (с) 2009 100из 106 При этом важно: Отслеживать прохождение задачи (workflow) даже при пересечении границ отделов Lead Time -> min (минимизировать время полного цикла) Ограничить количество начатой, но недоделанной работы(WIP – Work In Progress)
120. «А какой у вас Agile?», (с) 2009 101из 106 Т.е.в этих случаяхза основу процессалучше взять Kanban,а вовсе не Scrum
121. HenrikKniberg, «Kanbanvs Scrum» http://blog.crisp.se/henrikkniberg/2009/04/03/1238795520000.html http://blog.crisp.se/henrikkniberg/2009/05/29/1243594140000.html «А какой у вас Agile?», (с) 2009 102из 106
127. «А какой у вас Agile?», (с) 2009 104из 106 Источник:http://www.crisp.se/futureofagile/slides/henrikkniberg
128. «А какой у вас Agile?», (с) 2009 105из 106 Кол-во предписанныхпрактик/ролей/артефактов RUP (120+) Release notes, Test cases, … Неустойчивое состояние! Устойчивое состояние! XP (13) Уж лучше Kanban! Vision, UML, … Scrum (9) Unit-тесты, CI,Refactoring, … Демонстрации Kanban(3) Если ничего не менять, деградирует сюда Кол-во действ-нополезныхпрактик/ролей/артефактов Code-&-Fix (1) Do Whatever
129. «А какой у вас Agile?», (с) 2009 106из 106 team.custis.ru Данную презентацию и много другого интересного можно найтипо этому адресу Связь с автором:andrew@custis.ru Спасибо за внимание! Вопросы? / Возражения?