Які проблеми ми хочемо вирішити, впроваджуючи Scrum?
- Наші завдання зазвичай громіздкі, і часто ми не знаємо, як за них взятися.
- Відсутність декомпозиції великого завдання на менші = відсутність плану виконання. Відсутність плану виконання = нереалістична оцінка, невизначені блокери, неспрогнозовані гіпотетичні ризики.
- Через нереалістичні оцінки ми ніяк не можемо виміряти швидкість команди, тому не можемо вдало спрогнозувати, яке навантаження взяти, щоб вчасно і якісно поставити ПЗ.
- Неправильна декомпозиція (на таски більше 16год) змушує нас переносити батьківські таски із саб-тасками із спринта в спринт (бо саб-таски не можуть бути перенесені окремо від батьківської). Створюється враження, що прогрес дуже малий, і що команда постійно не встигає і не доводить роботу до кінця.
- Ми не даємо описів до завдань, і потім важко зрозуміти, до чого воно відносилось.
...
Врахувавши основні принципи Scrum, нижче запропоновано спосіб його застосування у нашому проекті.
Scrum Events
Тип події | Ціль | Учасники |
Daily meeting | - обговорити, що ти зробив/-ла вчора, що плануєш робити сьогодні і ЧИ з'явилися якісь блокери під час виконання завдання
Tip |
---|
- Якщо блокер суто технічного характеру і може бути вирішеним після технічної консультації, то таке завдання - оскільки воно вже взяте в спринт - має бути виконане в межах поточного спринта.
- Якщо блокер полягає у відсутності даних/матеріалів/ресурсів для виконання завдання, і він не був виявлений заздалегідь, то завдання із блокером переноситься назад в беклог. До нього створюється саб-таска на вирішення блокера, і її обговорюється на backlog refinement сесії.
- Команда має працювати на випередження, тобто обговорювати блокери майбутніх задач на backlog refinement сесіях. Команда має вирішити блокери до того, як бере завдання взяли в спринт. Таким чином, у спринті виконуються вже обговорені зрозумілі завдання, які точно будуть закриті в рамках спринта.
|
| PM, Dev Team |
Product vision session | - на високому рівні виявити актуальні вимоги до продукту
- розставити пріоритет їх реалізації
| PM, PO, Tech Lead |
Backlog refinement | - декомпозувати завдання беклогу, які перед тим були створені власником продукту або проектним менеджером у порядку пріоритетності
Tip |
---|
Як декомпозувати? - User story / Task не може мати естімейт, більший, ніж 16 год. Якщо завдання більше, то декомпозуємо його на менші.
- Sub-tasks — це вільний простір у Jira для розробників. Вони створюють їх, записують, видаляють і доповнюють, коли і як хочуть, динамічно змінюючи їх у будь-який момент. Ніхто поза командою розробників не контролює їх, але кожен може спостерігати, як вони рухаються зліва направо на дошці.
- User story має чіткий формат і критерії прийняття, бо в її рамках ми говоримо про потребу користувача. Однак коли йдеться про підхід до реалізації, кожен розробник вільний обирати і створювати свої sub-tasks.
|
- додати опис user story і за необхідності acceptance criteria; якщо завдання технічне і не несе прямої бізнес цінності для user story, додається опис кроків реалізації
- обговорити гіпотетичні блокери та ризики (наприклад, бракує інформації для виконання, є залежність із іншим невиконаним завданням (finish-to-start dependancy), вперше стикаємось із таким функціоналом, вже мали негативний досвід роботи із вказаним функціоналом, і т.п.)
- оцінити завдання
- доповнити беклог додатковими необхідними завданнями, які команда виявила під час обговорення
| PM, Dev Team |
Sprint planning | - спланувати наступний спринт, беручи завдання, які вже декомпозовані та описані
- визначити ціль спринта
- спланувати навантаження на спринт на основі швидкості команди і оцінки завдань
- призначити виконавця завдання
Суть планування - реалістично оцінити завдання і взяти в роботу тільки те, що команда встигне зробити за спринт, слідуючи Definition of Done. Tip |
---|
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 | - проаналізувати спринт, а саме:
| PO,PM, Dev Team |
Типи завдань
|
|
---|
Epic | використовується для маркування великих шматків функціоналу, значних оновлень або ключових етапів проекту. Відображається на card layout як у беклозі, так і у спринті. |
Bug | використовується для bug reports (потрібно створити шаблон репорту) |
User story | завдання, яке описує потребу користувача і як її втілити, і написане доступною мовою зрозумілою мовою. Оскільки наші продукти технічні, і кінцевим користувачем є QA (Testlum) і розробники (JBT, Profile API), наші user stories мають технічний характер і не завжди будуть зрозумілими нетехнічним спеціалістам, однак у суті своїй кожному тіммейту має бути ясно, що ми хочемо досягнути тою чи іншою user story. Як писати user story? Обовʼязкова цінність для продукту: щоб виявити бізнес цінність у технічних user story, можна поставити собі наступні запитання: - Як виконання цього технічного завдання сприяє досягненню наших загальних бізнес-цілей?
- Які можливі негативні наслідки для бізнесу, якщо це технічне завдання не буде виконано?
- Як невиконання цього завдання може вплинути на продуктивність або ефективність команди або процесів?
- Які ризики або вразливі місця для безпеки, конфіденційності чи цілісності даних можуть виникнути, якщо не вирішити це завдання?
- Чи невирішення цього завдання не завадить масштабуванню чи майбутньому зростанню бізнесу?
- Які залежності можуть виникнути для інших проектів, якщо це технічне завдання залишиться невирішеним?
Обов'язкові ознаки 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.
Формат 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. 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
До User story рекомендовано додавати acceptance criteria (в ідеалі, додає QA, бо саме він/вона приймає завдання) - Наприклад:
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.- 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.
- 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.
- 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.
- As a QA professional, I want the tool to provide autocomplete and suggestions while writing test scenarios, helping me avoid errors and ensuring consistency.
- 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.
- 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 | використовується для виключно тих завдань, які спрямовані на підтримку актуального коду і його якості. Такі завдання лежать в інтересах як бізнесу, так і розробників. Вони зазвичай є необхідними для нормального функціонування продукту, але у них важко виділити пряму бізнес ціль. У таких завданнях є комерційна вигода, бо з якісним кодом у нас буде нагода в рази швидше потім робити новий функціонал. |
Підходи до оцінки
- Оцінка в годинах
- PERT або триточкова: Optimistic (O), Most Likely (M), and Pessimistic (P). Формула: (O + 4M +P) / 6.
- Story points
Tip |
---|
Що таке story points, і чому їх використовувати? - Story points оцінюють зусилля, а не час. Оскільки story point - це відносна оцінка: завдання, яке треба оцінити, співставляють по складності із схожим завданням у минулому, і це дає розуміння його складності (ми завжди співвідносимо те, що нам потрібно оцінити, до речей, які ми вже знаємо і оцінювали).
- Рекомендовано використовувати послідовність Фібоначчі як одиниці вимірювання (1, 2, 3, 5, 8, 13, 21 і так далі). Багато команд використовують розміри футболок (S, M, L, XL), або якісь інші одиниці.
- На основі кількох спринтів ми легко можемо виміряти швидкість команди (сума усіх завдань). Це дозволить робити кращі оцінки і прогнози на наступні спринти.
- Наприклад: на sprint review взяти останні 5 user story, які мають однакову оцінку у story points - і порівняти, чи дійсно ці завдання вимагали однакових зусиль. Якщо ні, то обговорити, чи враховуємо ми всі нюанси при оцінці.
- Деякі команди намагаються зіставити story points з годинами – наприклад, 2 story points відповідають завданню, яке займе 2-4 години, а 3 story points можна зіставити із завданнями тривалістю від 4 до 8 годин і так далі.
- Окрема user story чи task не повинно тривати більше 16 годин роботи або більше ніж 21 story points.
|

Action items
- виписати ідеї які відносяться до технічного боргу і у яких важко визначити бізнес цінність (це і буде технічними тасками)
...