Теория Agile, практика Scrum простым языком с кейсами Alexey RuchkinКак я пришел к работе по Scrum на примере ПРАГМАТИК и как он помог почти уложиться в дедлайн проекта. Теория работы по Scrum - каким должен быть бэклог, роли в скраме, какой софт лучше использовать и пример планирования 2х недельного спринта. Опыт Scrum в АДАМАС с внешним подрядчиком.
Agile/Scrum методологии разработки программного обеспеченияjazzteamСотрудница компании JazzTeam провела ряд лекций в Гродненском государственном университете имени Янки Купалы.
После конференции Solit-2013 в рамках ознакомительного тура по Беларуси для одного из англозычных докладчиков, руководство компании посетило Гродненский государственный университет имени Янки Купалы, где состоялось знакомство с руководством кафедры программного обеспечения интеллектуальных и компьютерных систем. В рамках продолжения отношений между компанией и кафедрой представитель компании JazzTeam провела несколько лекции по тематике разработки программного обеспечения.
Лекции проходили в рамках заседания студенческого семинара “Информатика – Сегодня”, которые университет и кафедра проводят регулярно.
Первая лекция была проведена 22 марта 2013 года на тему: “Agile/Scrum методологии разработки программного обеспечения”.
Посетителей, участников, слушателей этой лекции заинтересовали такие вопросы: преимущества и недостатки agile и scrum, как разработчики решают спорные моменты, как новичок может повлиять на всю команду, как замотивировать разработчиков и т.д. После доклада была продолжительная и насыщенная дискуссия по возникшим у слушателей вопросам.
На лекциях присутствовало много людей, начиная от первокурсников до преподавателей.
Лекции охватывали большой спектр вопросов, и все моменты были разобраны на примерах. Публика вела себя очень оживленно и интересовалась больше примерами из жизни, практическими навыками.
Впечатления о проведенных лекциях остались самые положительные. Спасибо за интересные вопросы и обсуждения!
Пробуем Kanban!Alexander ByndyuКанбан — современный подход к разработке ПО, принадлежащий семейству гибких методов наряду со Scrum и экстремальным программированием.
Хотите узнать, что такое канбан и как его применять в вашем проекте по разработке ПО? Приходите на наш семинар. Вы поучаствуете в игровом проекте-симуляции и поймете, как сделать канбан-доску, что такое каденция, Work In Progress и Cycle Time и как их использовать.
По материалам конференции .NET разработчиков http://www.dotnetconf.ru/Materialy/Probuem_Kanban
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...OnticoДоклад осветит вопросы устройства REST API для веб-приложений и мобильных клиентов, от которых требуется высокая производительность.
Проектирование высокопроизводительных REST API.
- Кто должен участвовать в проектировании.
- Как узнать, что оптимизировать.
- Как измерять производительность REST API.
Паттерны и антипаттерны.
- Почему pagination - это плохо, и на что лучше заменить.
- Проблема N+1 и как с ней бороться.
- Бесполезные данные - как обнаружить и уничтожить.
- Как не ломать кэширование на клиенте.
- Эффективная работа с интерфейсами "мастер-детали".
Кэширование.
- Три слоя кэширования.
- Самый быстрый запрос - тот, которого не было. Как увеличить их количество.
- Экономия трафика.
- Исключение ненужных вычислений.
- Подходы к инвалидации кэша.
Приемы оптимизации работы с API на клиенте.
- Параллельные запросы.
- Эффективный разбор данных.
- In-memory DB на клиенте.
- Стратегии кэширования на клиенте.
Enarm 2145 preguntas3lsantoEste documento presenta 20 preguntas de una prueba de conocimientos médicos (ENARM) junto con sus posibles respuestas. Cada pregunta trata sobre un tema diferente de medicina interna como enfermedades hepáticas, gastrointestinales y respiratorias. El documento proporciona indicaciones sobre cómo abordar el examen y sugiere estudiar las respuestas correctas e incorrectas de cada pregunta.
Как сделать наши проекты немного более управляемыми с AgileAlexey KrivitskyHow to solve project challenges with Agile and Scrum. Alexey Krivitsky, IT talk, Kharkov
Agile\scrum: все что необходимо знатьYuri Navruzovсобрано в одной презентации :) и плюс бонус - рекомендации по применению при управлении удаленными\аутсорс-командами
Принципы эффективного управления компаниейНовый СайтКоммерческий директор "Новый сайт" Иван Панасюк - о принципам эффективного управления компанией для семинара «Формула компании: новые подходы к внутреннему развитию команды» (19 мая, Минск).
Artem Bezruchko "Test Strategy in SCRUM"FwdaysTest strategy - what it is and what differs from the test plan;
No one canceled Waterfall or how we got to SCRUM;
Large and small test activity cycles: Small activity (testing -> QC), Large (QC -> QA);
What is the actual benefit of adhering to the strategy;
The lecture will be useful for testing specialists, team leaders and those who want to organize testing in their team.
scrum metricsCOMAQA.BY Позволяют ли метрики эффективно управлять проектом: диагностировать проблемы, локализовать их, исправлять и проверять? Как использовать метрики с максимальной результативностью?
Светлана Мухина, Метрики в Agile проектахScrumTrekЯ думаю, что чем сложнее метрика, тем проще ее подвести под необходимые результаты. Зачастую достаточно немного исказить одно не самое важное значение в формуле расчета и в итоге на больших числах можно получить приличное искажение. С помощью визуализации метрик тоже можно оказывать влияние и изменять мнение в необходимую вам сторону. И тут возникает вопрос #2 - "Что делать?" Использовать или не использовать метрики. Возможно, вы найдете для себя ответ на этот вопрос в моем докладе про очень простые метрики: -capacity - кол-во идеальных часов доступное в итерацию; -velocity - количество сделанной работы в стори поинтах или других "попугаях"; -burn-down - прогресс команды на данный момент, сколько сделали и сколько осталось; -индекс стабильности требований - как часто меняются требования; И еще поделюсь своим мнением о том, какая может быть польза команде от заполнения системы учета времени; Я расскажу, как мы собираем эти метрики на проектах и что нам это дает. Например, иногда они помогают найти ответ на вопрос #1 "Кто виноват?" (это шутка).
Пробуем Kanban!Alexander ByndyuКанбан — современный подход к разработке ПО, принадлежащий семейству гибких методов наряду со Scrum и экстремальным программированием.
Хотите узнать, что такое канбан и как его применять в вашем проекте по разработке ПО? Приходите на наш семинар. Вы поучаствуете в игровом проекте-симуляции и поймете, как сделать канбан-доску, что такое каденция, Work In Progress и Cycle Time и как их использовать.
По материалам конференции .NET разработчиков http://www.dotnetconf.ru/Materialy/Probuem_Kanban
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...OnticoДоклад осветит вопросы устройства REST API для веб-приложений и мобильных клиентов, от которых требуется высокая производительность.
Проектирование высокопроизводительных REST API.
- Кто должен участвовать в проектировании.
- Как узнать, что оптимизировать.
- Как измерять производительность REST API.
Паттерны и антипаттерны.
- Почему pagination - это плохо, и на что лучше заменить.
- Проблема N+1 и как с ней бороться.
- Бесполезные данные - как обнаружить и уничтожить.
- Как не ломать кэширование на клиенте.
- Эффективная работа с интерфейсами "мастер-детали".
Кэширование.
- Три слоя кэширования.
- Самый быстрый запрос - тот, которого не было. Как увеличить их количество.
- Экономия трафика.
- Исключение ненужных вычислений.
- Подходы к инвалидации кэша.
Приемы оптимизации работы с API на клиенте.
- Параллельные запросы.
- Эффективный разбор данных.
- In-memory DB на клиенте.
- Стратегии кэширования на клиенте.
Enarm 2145 preguntas3lsantoEste documento presenta 20 preguntas de una prueba de conocimientos médicos (ENARM) junto con sus posibles respuestas. Cada pregunta trata sobre un tema diferente de medicina interna como enfermedades hepáticas, gastrointestinales y respiratorias. El documento proporciona indicaciones sobre cómo abordar el examen y sugiere estudiar las respuestas correctas e incorrectas de cada pregunta.
Как сделать наши проекты немного более управляемыми с AgileAlexey KrivitskyHow to solve project challenges with Agile and Scrum. Alexey Krivitsky, IT talk, Kharkov
Agile\scrum: все что необходимо знатьYuri Navruzovсобрано в одной презентации :) и плюс бонус - рекомендации по применению при управлении удаленными\аутсорс-командами
Принципы эффективного управления компаниейНовый СайтКоммерческий директор "Новый сайт" Иван Панасюк - о принципам эффективного управления компанией для семинара «Формула компании: новые подходы к внутреннему развитию команды» (19 мая, Минск).
Artem Bezruchko "Test Strategy in SCRUM"FwdaysTest strategy - what it is and what differs from the test plan;
No one canceled Waterfall or how we got to SCRUM;
Large and small test activity cycles: Small activity (testing -> QC), Large (QC -> QA);
What is the actual benefit of adhering to the strategy;
The lecture will be useful for testing specialists, team leaders and those who want to organize testing in their team.
scrum metricsCOMAQA.BY Позволяют ли метрики эффективно управлять проектом: диагностировать проблемы, локализовать их, исправлять и проверять? Как использовать метрики с максимальной результативностью?
Светлана Мухина, Метрики в Agile проектахScrumTrekЯ думаю, что чем сложнее метрика, тем проще ее подвести под необходимые результаты. Зачастую достаточно немного исказить одно не самое важное значение в формуле расчета и в итоге на больших числах можно получить приличное искажение. С помощью визуализации метрик тоже можно оказывать влияние и изменять мнение в необходимую вам сторону. И тут возникает вопрос #2 - "Что делать?" Использовать или не использовать метрики. Возможно, вы найдете для себя ответ на этот вопрос в моем докладе про очень простые метрики: -capacity - кол-во идеальных часов доступное в итерацию; -velocity - количество сделанной работы в стори поинтах или других "попугаях"; -burn-down - прогресс команды на данный момент, сколько сделали и сколько осталось; -индекс стабильности требований - как часто меняются требования; И еще поделюсь своим мнением о том, какая может быть польза команде от заполнения системы учета времени; Я расскажу, как мы собираем эти метрики на проектах и что нам это дает. Например, иногда они помогают найти ответ на вопрос #1 "Кто виноват?" (это шутка).
2. Роли
Product Owner - Олег Елифантьев
Scrum Master - Таня Баева
Team - все, так как у нас все выполняют
работы в план
3. Что есть что
Продукт - это наш фреймворк.
Product backlog - по сути наши планы. Планы
составляются на месяц.
User story - отдельный пункт плана: проект
или большая доработка. Может растянуться
на несколько месяцев.
Sprint backlog - задачи, на которые
разбиваются пункты плана. Может меняться
в следствие пересогласования плана.
4. Что, как и когда: Product backlog
В начале месяца после составления планов
объявляем все пункты и присваиваем им
приоритет. Он повлияет на порядок
выполнения задач.
Далее разбиваем пункты на подзадачи.
Формируем Sprint backlog. На каждой задаче
должно быть отмечено сколько времени
человек планирует ей заниматься. Исходя
из этого времени будут выбираться задачи
на спринт (Нельзя, чтобы время превысило
отведенное на спринт время).
5. Sprint
Sprint предлагается делать месяц, исключая
выходные дни. Это позволит видеть более
четко прогресс работ на burndown chart и
доске.
По итогам спринта все задачи должны быть
сделаны. Должна быть проведена
демонстрация заказчику текущего состояния
работ и получена обратная связь. Если
задача в текущем спринте не сделана переносим ее на следующий.
6. Sprint
Так как спринт занимает месяц, а это
достаточно долго, то каждую пятницу
проводится срез работ. На нем обсуждается
текущее положение дел, в случае
отклонения от идеального выгорания задач
обсуждается куда ушло время. Также
необходимо провести демонстрацию работ,
выполняемых в эту неделю, заказчику и
получить от него обратную связь.
7. Затруднения
Для нас это задачи в сборку, доработки и
исправление ошибок. То, что появляется
“внезапно”. В плане эти пункты должны
присутствовать. Т. о., в каждом спринте
появляются две зарезервированных задачи:
“доработки” и “исправление ошибок”. На
этих задачах мы отмечаем затраченное
время. В конце спринта такая задача будет
гарантированно закрыта. Она нужна для
сбора метрик и затраченного времени на
ошибки/доработки времени (не ошиблись ли
с оценкой?).
8. Затруднения
Если много времени потрачено на
доработки: нам следует чаще отказывать в
доработках либо пересогласовывать план.
Так как тратя время на них, мы не
соблюдаем сроки и нам сложнее выполнить
план.
Если много времени тратим на ошибки: нам
следует больше внимания обращать на
стабильность кода, писать больше тестов и
следить за ними.
9. Daily Meeting
Проходит ежедневно в 15:00. Каждому
участнику команды отводится 1 минута.
Рассказывая, он отвечает на вопросы:
● что делал
● с какими проблемами столкнулся
● что будет делать дальше
На ежедневные митинги приглашаются
технические писатели, для того, чтобы быть
в курсе происходящего во фреймворке.
11. ܳ-доска
Появляется графа для очереди. Это те
задачи, которые еще не включены ни в один
спринт.
Доска содержит графы:
● Ждет обработки
● На выполнении
● Ждет тестирования/проверки
● На проверке. Это состояние значит, что
кто-то из разработчиков проверяет
задачу.
● Тестирование
● Сделано
12. ܳ-доска
Когда задача находится в состоянии
“Тестирование” это не значит, что нужно
просто проверить, как для состояния “На
проверке”. Это значит, что должны быть
написаны тесты на задачу
разработчиком/тестировщиком.
*В этом нам помогает отдел автоматизации
тестирования.
13. Sprint review
По сути это сдача планов. В них входит
демонстрация результата заказчику.
14. Sprint retrospective
Проводится по окончании каждого спринта,
т.е. в пятницу после ежедневного митинга. В
это время каждый может высказать свое
мнение/пожелания/впечатления о работе
проделанной им лично или отделом за
неделю. Также на пятничный митинг
приглашается группа автоматизации
тестирования.
15. Product retrospective
Демонстрация результата работы нашему
отделу. Возможно, также и
заинтересованным людям. Предлагается по
итогам каждого месяца проводить
внутренний семинар, на котором каждый
расскажет что нового он сделал. Также
возможно обсуждение проблем с которыми
столкнулись.
16. Автоматизация
Для автоматизации процесса нами был
выбран YouTrack
Данный продукт хорошо интегрируется с
нашей средой разработки phpStorm, а также
с нашим сервером CI TeamCity.
Документация возможностей YouTrack.
17. YouTrack: трекер задач
В YouTrack у нас заведен один проект - “WI.
SBIS Application Framework”. В нем
содержатся все задачи, которые мы
планируем когда-либо сделать. Все они
отражены в списке.
19. YouTrack: трекер задач
Увидеть все задачи по проекту можно
просто кликнув слева по его названию.
Также можно найти задачи по любому
признаку. Просто начните набирать признак
или значение признака, по которому хотите
найти задачи, а система сама подскажет
вам доступные варианты.
24. *YouTrack: было бы здорово
Было бы здорово пустить прикладных
разработчиков в наш трекер с целью
создания нам запросов на новые
возможности платформы, а также
голосования за них. Так мы бы понимали
точно скольким людям нужна какая-то
функциональность и что она вообще нужна.
25. YouTrack: интеграция с TeamCity
В настройках проекта можно указать, какие
сборки в TeamCity нужно связать с этим
проектом. Для того, чтобы связать задачу со
сборками в TeamCity нужно немного магии.
Что мы делаем: в комментарии к коммиту
указываем идентификатор задачи.
Пример: (#wi_sbis-171) issue 68744 06.11.13
Что это дает нам: Мы видим сборки в
TeamCity по этой задаче, можем посмотреть
измененные в них файлы и их статус.
27. YouTrack: затраченное время
По задаче можно списать затраченное
время
Что мы делаем: в комментарии к коммиту
указываем строку #<идентификатор
задачи>:<затраченное время, в формате
*d*h*m>
Пример: #wi_sbis-171:30m новый коммит
Что это дает нам: суммарное затраченное
время по задаче. Оно позволит нам понять
насколько сильно мы ошиблись (или нет) в
29. YouTrack: перевод в другое
состояние
Указав в комментарии к коммиту строку вида
“<номер задачи> <название состояния>” вы
переведете задачу на доске в другое
состояние.
Пример: (#wi_sbis-171) Сделано
задание № 68744 от 06.11.13
Не открываются уже созданные отчеты на
деве....
sbisdoc://1+ОшРазраб+06.11.13
+68744+2DBDF88C-35F7-4D89-A64B-
30. YouTrack: Agile
Agile доска у нас одна на проект. На каждый
месяц мы заводим отдельный спринт. Это
позволяет нам сохранить очередь и
разграничить месяцы.
Доска отображается на состояние текущего
спринта. Прошедшие спринты мы помещаем
в архив. В терминах YouTrack спринт это
версия исправления. Поэтому задача
включается в спринт выбором значения
этого поля.
32. YouTrack: Agile
Для задач мы ввели дополнительные поля
месяц и год. Год по умолчанию встает
текущий. Месяц задается на задаче, которая
должна быть выполнена в этом месяце. Это
облегчит поиск задач на месяц.
35. YouTrack: Agile
На доске текущий спринт отображается с
указанием в процентах и отображением по
цветам прогресса его выполнения.
36. YouTrack: Agile
У задач по умолчанию достаточно много
полей. Все они легко конфигурируются в
настройках проекта. Также можно задать
исполнителей проекта, набор значений для
состояний и многое другое.
В настройках самого YouTrack можно
управлять группами пользователей и
ролями. Например, можно завести роли
заказчика или тестировщика.
38. YouTrack*: хорошее правило
В нашем проекте мы используем в
частности поле “Подсистема”. Оно может
принимать помимо других значение
“Проблема удобства использования”. В
начале каждой недели каждый член
команды должен выбрать себе задачу из
этой подсистемы и сделать ее.
39. YouTrack: приоритет задачи
Что мы делаем: указываем у каждой задачи
приоритет.
Что нам это дает: на каждый спринт мы
выбираем наиболее приоритетные задачи,
приоритеты необходимо согласовать с
заказчиком. Приоритеты могут поменяться
только перед началом спринта у задач,
которые еще не находятся в обработке.
40. YouTrack: оценка задачи
Что мы делаем: на задаче мы указываем
предполагаемое время выполнения задачи.
Что это дает нам: помогает правильно
спланировать наше время. В частности,
правильно составлять планы. Сравнив
оценку и затраченное время на задачу мы
понимаем на сколько ошиблись в оценке.
41. YouTrack: Agile board
Задачи на доске выводятся по столбцам.
Столбцы могут определяться одним из
полей: тип, приоритет, состояние. У нас это
состояние. Управление столбцами возможно
из конфигурации доски.
Также столбцы могут иметь цветовое
кодирование. Оно помогает визуализации
процесса. Особенно удобно при
демонстрации доски на ежедневных
митингах.
46. YouTrack: свимлэйны
Свимлэйн - способ объединения задач.
Может быть либо по задаче, либо по
любому аттрибуту. В нашей команде мы
используем группировку по задаче. Можно,
например, выбраться группировку по
аттрибуту “Исполнитель”. При этом для
аттрибута задаются возможные значения
для текущей доски.
49. YouTrack: свимлэйны
В случае конфигурирования свимлэйнов по
задаче, группировка происходит по задаче,
которая являеется user story (читай “пункт
плана”). Она должна содержать в себе
связанные задачи. Это те задачи, на
которые она разделена.
Такими свимлэйнами помимо нас,
пользуется команда JetBrains,
разрабатывающая YouTrack.
52. YouTrack: поле оценки
Одна из довольно важных настроек скрам
доски - это поле оценки. Она может
принимать три значения: нет оценки,
затраченное время, оценка. Этот параметр
оказывает влияние на Sprint burndown chart
и Cummulative Diagramm. Если установлен
по полю оценки, поможет установить
насколько правильно по времени выбраны
задачи - успеем ли все в спринт. По
затраченному времени - позволит понять
сколько времени потрачено на задачи.
54. YouTrack: Burndown Chart
YouTrack строит за вас диаграммы по
сринту. На диаграммах отражено текущее
состоние работ, их прогресс. В нашей
команде каждый ежедневный митинг
начинается с просмотра диаграммы
сгорания задач.
56. YouTrack: Cummulative Diagramm
Отражает сколько задач в каком состоянии
находится в каждый день спринта.
Позволяет оценить скорость выполнения
задач, а также производительность
команды. (В основном для идеального
случая: 1 задача в день.)
Такая диаграмма позволяет выявлять узкие
места в процессе работы и принимать
быстрые решения для исправления
ситуации.
57. YouTrack: Cummulative Diagramm
Например, видно что в процессе были
добавлены задачи, а это плохо. На такое
нужно реагировать и разбираться почему
эти задачи не были включены изначально и
не были учтены. Как правило эти задачи и
составляют затруднения.
59. YouTrack: табличный отчет
Трекер позволяет построить различные
табличные отчеты по проделанной работе
как по проекту, так и по каждой доске( что
для нас равносильно месяцу). В частности,
может быть отражено сколько каждый член
команды обработал заданий, кто сколько
голосовал, кто сколько создал задач и
прочее.
61. YouTrack: отчет по времни
Помимо табличного отчета, трекер
позволяет построить отчет по времени. В
нем отражается сколько времени было
затрачено за указанный промежуток
времени на каждую задачу. Поддерживается
группировка по любому из полей задачи.
Отчет может строиться по проекту или по
скрам доске.
63. YouTrack: интеграция с почтой
YouTrack умеет интегрироваться с почтой.
Если заполнить настройки, то по каждому
письму, пришедшему на указанный
электронный ящик будет создана новая
задача в трекере. При этом тема будет
считаться заголовком задачи, а текст письма
- ее описанием.