Які проблеми ми хочемо вирішити, впроваджуючи Scrum?

 SCRUM GUIDE

Врахувавши основні принципи Scrum, нижче запропоновано спосіб його застосування у нашому проекті.

Scrum Events

Тип подіїЦільУчасники

Daily meeting

  • обговорити, що ти зробив/-ла вчора, що плануєш робити сьогодні і ЧИ з'явилися якісь блокери під час виконання завдання

  1. Якщо блокер суто технічного характеру і може бути вирішеним після технічної консультації, то таке завдання - оскільки воно вже взяте в спринт - має бути виконане в межах поточного спринта.
  2. Якщо блокер полягає у відсутності даних/матеріалів/ресурсів для виконання завдання, і він не був виявлений заздалегідь, то завдання із блокером переноситься назад в беклог. До нього створюється саб-таска на вирішення блокера, і її обговорюється на backlog refinement сесії.
  3. Команда має працювати на випередження, тобто обговорювати блокери майбутніх задач на backlog refinement сесіях. Команда має вирішити блокери до того, як бере завдання взяли в спринт. Таким чином, у спринті виконуються вже обговорені зрозумілі завдання, які точно будуть закриті в рамках спринта.
PM, Dev Team

Product vision session

  • на високому рівні виявити актуальні вимоги до продукту
  • розставити пріоритет їх реалізації
PM, PO, Tech Lead

Backlog refinement

  • декомпозувати завдання беклогу, які перед тим були створені власником продукту або проектним менеджером у порядку пріоритетності

Як декомпозувати?

  1. User story / Task не може мати естімейт, більший, ніж 16 год. Якщо завдання більше, то декомпозуємо його на менші.
  2. Sub-tasks — це вільний простір у Jira для розробників. Вони створюють їх, записують, видаляють і доповнюють, коли і як хочуть, динамічно змінюючи їх у будь-який момент. Ніхто поза командою розробників не контролює їх, але кожен може спостерігати, як вони рухаються зліва направо на дошці.
  3. User story має чіткий формат і критерії прийняття, бо в її рамках ми говоримо про потребу користувача. Однак коли йдеться про підхід до реалізації, кожен розробник вільний обирати і створювати свої sub-tasks.
  • додати опис user story і за необхідності acceptance criteria; якщо завдання технічне і не несе прямої бізнес цінності для user story, додається опис кроків реалізації
  • обговорити гіпотетичні блокери та ризики (наприклад, бракує інформації для виконання, є залежність із іншим невиконаним завданням (finish-to-start dependancy), вперше стикаємось із таким функціоналом, вже мали негативний досвід роботи із вказаним функціоналом, і т.п.)
  • оцінити завдання
  • доповнити беклог додатковими необхідними завданнями, які команда виявила під час обговорення
PM, Dev Team

Sprint planning

  • спланувати наступний спринт, беручи завдання, які вже декомпозовані та описані
    • визначити ціль спринта
    • спланувати навантаження на спринт на основі швидкості команди і оцінки завдань
    • призначити виконавця завдання

Суть планування - реалістично оцінити завдання і взяти в роботу тільки те, що команда встигне зробити за спринт, слідуючи Definition of Done.

Definition of Done - набір критеріїв, яким має відповідати завдання, щоб команда могла вважати його виконаним.

Приклад DoD:

  • Code is written
  • Code is documented
  • Code review has been completed
  • Acceptance criteria for each issue met
  • Build has been made and deployed on a dev branch. 
  • Tests written and have been passed. 
  • Product owner accepts the task

Кожен член команди комітиться на свої таски, і перед стартом спринта команда підтверджує, що цей обсяг роботи є реалістичним, і що всі завдання зрозумілі.

PM, Dev Team

Sprint review

  • проаналізувати спринт, а саме:
    • продемонструвати команді виконаний результат (що відповідає Definition of Done) - кожен презентує свою роботу

    • проаналізувати capacity і velocity команди (чи все встигли зробити із запланованого, і на основі цих висновків планувати наступний спринт)
    • провести ретроспективу:
      • що було зроблено добре
      • що було зроблено недобре
      • ідеї для покращення
      • action items
PO,PM, Dev Team

Типи завдань



Epicвикористовується для маркування великих шматків функціоналу, значних оновлень або ключових етапів проекту. Відображається на card layout як у беклозі, так і у спринті.

Bug

використовується для bug reports (потрібно створити шаблон репорту)
User story

завдання, яке описує потребу користувача і як її втілити, і написане доступною мовою зрозумілою мовою. Оскільки наші продукти технічні, і кінцевим користувачем є QA (Testlum) і розробники (JBT, Profile API), наші user stories мають технічний характер і не завжди будуть зрозумілими нетехнічним спеціалістам, однак у суті своїй кожному тіммейту має бути ясно, що ми хочемо досягнути тою чи іншою user story.

Як писати user story?

  1. Обовʼязкова цінність для продукту: щоб виявити бізнес цінність у технічних user story, можна поставити собі наступні запитання:

    1. Як виконання цього технічного завдання сприяє досягненню наших загальних бізнес-цілей?
    2. Які можливі негативні наслідки для бізнесу, якщо це технічне завдання не буде виконано?
    3. Як невиконання цього завдання може вплинути на продуктивність або ефективність команди або процесів?
    4. Які ризики або вразливі місця для безпеки, конфіденційності чи цілісності даних можуть виникнути, якщо не вирішити це завдання?
    5. Чи невирішення цього завдання не завадить масштабуванню чи майбутньому зростанню бізнесу?
    6. Які залежності можуть виникнути для інших проектів, якщо це технічне завдання залишиться невирішеним?
  2. Обов'язкові ознаки user story (за моделлю INVEST):

        • Independent: The user story should be independent of all others. Because they are not connected, they can be worked on in any order.
        • Negotiable: A user story should be flexible enough to allow for negotiation between the customer and product owner.
        • Valuable: What value does the user story bring? If you cannot find any value, the story should not be completed.
        • Estimable: You should be able to estimate how long a user story will take so that you can effectively manage your time.
        • Small: The story must be small enough to be completed within a single sprint.
        • Testable: You must be able to test your user story in line with quality assurance standards.
  3. Формат

    1. Three-part user story: As a [end user], I want [feature] so that [benefit]” = role, goal, and reason.
      Example: As a customer, I want to be able to easily track the status of my online order, so that I can stay informed about its progress and anticipate delivery.

    2. Gherkin user story: Scenario -> Given -> When -> Then
      Example: 
      Scenario: Jeff returns a faulty microwave
      Given Jeff has bought a microwave for $100
      And he has a receipt
      When he returns the microwave
      Then Jeff should be refunded $100

  4. До User story рекомендовано додавати acceptance criteria (в ідеалі, додає QA, бо саме він/вона приймає завдання)

    1. Наприклад:
      As a QA professional, I want to easily create and manage test scenarios using an automated testing tool, so that I can efficiently design and execute tests.
      1. As a QA professional, I want to define test scenarios using a user-friendly syntax, so that I can easily create and maintain test cases.
      2. As a QA professional, I want to be able to specify preconditions and setup steps in my test scenarios, ensuring that the test environment is properly configured.
      3. As a QA professional, I want to have access to a wide range of predefined test steps and actions within the automated testing tool, reducing the need for custom implementation.
      4. As a QA professional, I want the tool to provide autocomplete and suggestions while writing test scenarios, helping me avoid errors and ensuring consistency.
      5. As a QA professional, I want the ability to organize and categorize test scenarios into meaningful groups or test suites, facilitating test management and execution.
      6. As a QA professional, I want the automated testing tool to generate readable and comprehensive test reports that highlight test coverage, execution status, and any failures encountered.
Sub-task

використовується як найменша одиниця декомпозиції завдання; створюється розробником, якщо є потреба виділити якийсь крок технічної реалізації.

Task

використовується для виключно тих завдань, які спрямовані на підтримку актуального коду і його якості. Такі завдання лежать в інтересах як бізнесу, так і розробників. Вони зазвичай є необхідними для нормального функціонування продукту, але у них важко виділити пряму бізнес ціль. У таких завданнях є комерційна вигода, бо з якісним кодом у нас буде нагода в рази швидше потім робити новий функціонал. 

Підходи до оцінки

  1. Оцінка в годинах
    1. PERT або триточкова: Optimistic (O), Most Likely (M), and Pessimistic (P). Формула: (O + 4M +P) / 6.
  2. Story points

Що таке story points, і чому їх використовувати?

  1. Story points оцінюють зусилля, а не час. Оскільки story point - це відносна оцінка: завдання, яке треба оцінити, співставляють по складності із схожим завданням у минулому, і це дає розуміння його складності (ми завжди співвідносимо те, що нам потрібно оцінити, до речей, які ми вже знаємо і оцінювали).
  2. Рекомендовано використовувати послідовність Фібоначчі як одиниці вимірювання (1, 2, 3, 5, 8, 13, 21 і так далі). Багато команд використовують розміри футболок (S, M, L, XL), або якісь інші одиниці.
  3. На основі кількох спринтів ми легко можемо виміряти швидкість команди (сума усіх завдань). Це дозволить робити кращі оцінки і прогнози на наступні спринти.
    1. Наприклад: на sprint review взяти останні 5 user story, які мають однакову оцінку у story points - і порівняти, чи дійсно ці завдання вимагали однакових зусиль. Якщо ні, то обговорити, чи враховуємо ми всі нюанси при оцінці.
  4. Деякі команди намагаються зіставити story points з годинами – наприклад, 2 story points відповідають завданню, яке займе 2-4 години, а 3 story points можна зіставити із завданнями тривалістю від 4 до 8 годин і так далі.
    1. Окрема user story чи task не повинно тривати більше 16 годин роботи або більше ніж 21 story points.

Action items