Please enable JavaScript.
Coggle requires JavaScript to display documents.
Agile, Scrum :flag-ua:, Agile - це методологія гнучкої розробки, яка…
-
Agile - це методологія гнучкої розробки, яка дозволяє клієнтам швидше отримувати якісне програмне забезпечення.
Іншими словами це сукупність підходів і моделей поведінки, орієнтованих на використання ітеративної розробки, time boxes (часових рамок), динамічне формулювання вимог і забезпечення реалізації ПЗ в результаті взаємодії всередині високо самоорганізованої робочої групи із фахівців різних профілів.
Принципи
Найвищим пріоритетом є задоволення потреб замовника, шляхом завчасного та регулярного постачання програмного забезпечення. Замовники і виконавці зацікавлені в успіху однаково, з тієї точки зору, вони пливуть одному човні
Схвальне ставлення до змін, навіть на заключних стадіях розробки. Agile-процеси надають можливість використовувати зміни задля забезпечення конкурентоспроможності замовника
Працюючий продукт слід випускати якомога частіше, з періодичністю від пари тижнів до пари місяців
-
Над проектом мають працювати вмотивовані професіонали. Щоб робота була виконана, створіть їм умови, надайте підтримку і повністю на них покладіться
Особиста комунікація — найефективніший та найпрактичніший метод як донести інформацію до команди, так і поширити її всередині. Учасники на кожному з етапів мають володіти повною інформацією, що слід робити
-
Agile допомагає налагодити сталий темп процесу розробки.
Інвестори, розробники й користувачі повинні мати можливість нескінченно підтримувати постійний ритм.
Багато команд на початку демонструють бурний прогрес, котрий не виходить зберегти до кінця проекту.
-
-
Найкращі вимоги, архітектурні та технічні рішення виникають у командах, що здатні самоорганізовуватись
Команда на регулярних зустрічах має намагатися знайти способи підвищення власної ефективності та відповідно коригувати свою роботу
-
Agile testing
методи
Acceptance Test Driven Development (ATDD)
спочатку розробляємо приймальний тест, потім розробляємо такий функціонал, який може його пройти. Цей метод базується на тісній співпраці тестувальника, розробника і користувача (або BA). Разом вони мають узгодити між собою вимоги до продукту і описати сценарії, за якими він буде працювати. Тільки після цього розробники можуть переходити до роботи, коли ми точно знаємо як має бути реалізована певна функція.
Behaviour Driven Development (BDD)
ATDD допомагає у розробці певного модулю, але вона не враховує взаємодію цих умовних частин продукту. Для цього була розроблена BDD методологія, основна відміна якої полягає у тому, що та ж сама команда з розробників, тестувальників і користувачів створюють складні сценарії, намагаючись передбачити поведінку користувача. Ці сценарії виконують роль основних вимог до розробки продукту.
Exploratory testing
Передбачає суміщення етапу тест-дизайну з самим проходженням і дозволяє QA бути хаотичним і більш наближеним за своєю поведінкою до реального користувача. Цей спосіб допомагає освіжити погляд на продукт і зекономити час на документації, адже за умов дотримання саме такого підходу, тестувальник не фіксує що і як він проходив, лише знайдені дефекти.
Сесійне тестування
Це, перш за все, спосіб управління і систематизації дослідницього тестування. Хаотичність має свої переваги, але в рамках проєкту все ж таки має бути приборкана. В рамках цього підходу процес тестування розбивається на сессії, кожна з яких має свою мету, обмежена в часі і передбачає проведення аналізу отриманих результатів.
принципи
Забезпечувати постійний зворотний зв'язок
Потрібно не просто постійно тестувати, а також нести відповідальність за розповсюдження результатів цих тестів і сприяти наданню зворотного зв’язку від клієнтів розробникам, щоб створити більш надійний продукт
Доставляти цінність клієнту
Хоча це другий принцип, це головний принцип. Кінцевою метою кожної дії Agile-тестера є створення найкращого продукту для клієнта
Комунікувати фейс-ту-фейс
Роль Agile-тестера полягає в тому, щоб зменшити плутанину та помилки шляхом безпосереднього спілкування з розробниками, а також дозволити клієнтам спілкуватися безпосередньо з розробниками
Мати мужність
Розробники можуть захищатися щодо своєї роботи. Щоб досягти своєї мети – надавати цінність клієнту, гнучкі тестери повинні боротися за зміни та виправлення, які необхідно внести
Не ускладнювати
Agile-тестери керуються афоризмом про те, що простота є найвищою витонченістю. Для тестування це означає виконання лише тих тестів, які необхідні, і всіх тестів, які необхідні. Для продукту це означає надання найпростішого продукту, який забезпечує найбільшу цінність
-
Реагування на зміни
Agile-тестери адаптуються, підтримуючи відгуки користувачів, а також зміни в продукті та на ринку
Самоорганізуватися
Замість того, щоб чекати на призначеному місці на конвеєрі, Agile-тестери починають діяти на кожному етапі процесу. Вони активно шукають проблеми та об’єднують людей для їх вирішення
Зосереджуватись на людях
Agile-тестери співпрацюють, віддаючи перевагу взаємодії з людьми перед технологіями. Їхня зосередженість на людях дозволяє їм створювати продукт, який надає перевагу зручності та корисності.
Насолоджуватись
Ніхто не досягає такої мети, як коли отримує задоволення від того, що робить. Agile-тестери, які отримують задоволення від роботи, здатні забезпечити клієнту найбільшу цінність.
методології розробки:
- Scrum
- Kanban
- TDD (Test Driven Development)
- FDD (Feature Driven Development)
- Lean
- Extreme Programming
коли використовують?
- клієнт не має чітких вимог
- клієнт очікує швидких релізів
- клієнт не надає всі вимоги одночасно не зна чого хоче і готовий до експериментів, перевірки своїх ідей
коли можна використовувати?
- функціональність продукту реально розбити на частини
- є зв’язок з клієнтом
- вимоги гнучкі
- час обмежений
- у розпорядженні є достатньо кваліфікована команда
-
Scrum
Scrum-фреймворк
-
-
-
учасники
"свині"
Scrum команда
-
-
Product owner
керування беклогом проекта, опис беклога
-
Abnormal Termination
- команда розуміє що не виконає цілі спринта вчасно
- PO розуміє що немає потреби закінчувати спринт