Scrum - чим займаються члени команди під час спринту


33

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

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

Я бачив 2 підходи для вирішення цього питання, але жоден з них не здається правильно вирішити проблему.

1) Нехай члени команди вирішують, що робити, коли вони не виконуються.

Мінуси:

  • Якщо те, що вони роблять, не планується ретельно (тобто капітальний рефакторинг, перехід на нові рамки тестування), їх робота може виявитися марною або затриматися на півдорозі
  • З іншого боку, планування такої роботи може зайняти багато часу, і клієнт може розчаруватися, побачивши, що команда витрачає час на те, що не приносить негайного значення
  • Такі завдання, як правило, неможливо детально оцінити, тому безпринципним працівникам досить просто проводити свій час за переглядом кішок YouTube, не відображаючи їх на дошці сходів або деінде

2) Створіть місце в спринті лише для розвитку, і почніть тестування після закінчення спринту (коли розробники почнуть працювати над функціями з наступного спринту)

Мінуси:

  • Розробляючи функції для поточного спринту, розробники відволікаються, виправляючи помилки від попереднього, і вони не можуть виконати обсяг роботи, який, за оцінками, був виконаний під час поточного спринту
  • Потрібні дві дошки scrum: одна для поточних функцій спринту та одна для попередніх помилок спринту

Отже, моє запитання: як правильно розподілити роботу під час спринту між розробниками та тестерами, щоб ніхто не перевантажувався роботою або в будь-який момент не закінчувався без завдань? Чи є шляхи вдосконалення описаних вище підходів? Або є кращі підходи?


9
Ви ніби потрапляєте до міфу
Натан Купер

1
@holdenmcgrohen Як робляться оцінки - планування покеру чи щось інше?
Роббі Ді

3
Тестери повинні писати тестові справи в перший день. Все, що їм потрібно для цього, - це історії. Якщо розробники мають значну кількість часу в режимі спринту, це означає, що ви не приймаєте достатньо історій. Плюс до цього, мабуть, якщо ваші тестери хороші, вони тримають ваших розробників зайнятими повідомленнями про помилки наприкінці спринту. Крім того, в ідеалі у вас є кілька перших історій у відставанні, тож найгірший випадок, розробники можуть працювати над однією з найкращих пар у відставанні.
Gort the Robot

1
@holdenmcgrohen, ми також стикаємося з подібною проблемою в нашому проекті. Ми почали додавати Stretch історії (не повинно бути " must have ") як частину спринту і вибирається лише тоді, коли розробники поза завданнями. Тепер цей підхід допомагає нам утримувати тестера зайнятим у перші дні наступного спринту.
user6005214

1
Пам'ятайте, що у більшості спринтів ви вибираєте підгрупу завдань із відсталого . Якщо ви виконаєте все, що ви взяли на себе, ви отримаєте перехід до наступного спринту, починаючи працювати над більшою кількістю предметів із відставання - так само, як якщо б ви перебігли, ви витягуєте менше предметів із відставання в наступному спринті, чи не так? може закінчити ті, які не були закінчені. Домп-догма; зрозумійте, що мета інструменту - служити вам, а не вам служити інструменту.
кешлам

Відповіді:


49

На початку спринту ще немає чого перевірити

Дійсно? У вас немає вимог до перевірки? Немає обговорень із клієнтом? Немає каркасів для оцінювання? Ніяких тестових планів не варто думати?

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

Я ніколи не був на тому місці в проекті. Немає більше роботи? Завжди є щось. Чи всі ваші тести повністю автоматизовані? Як виглядає ваш КІ? Чи можна змінити рівень доступу до бази даних простішим? І я ніколи не працював над чим-небудь із порожнім списком помилок та відставанням. Що раніше використовували ваші розробники на етапі тестування водоспаду?

Я знаю, що деякі люди дуже релігійні щодо того, що є, а що не "СКРУМ". Мені це було менше цікаво. Але я думаю, у вас тут два питання:

  1. Традиційний «QA-відділ», який тестує код після того, як його «закінчили» розробники, а не працювали з клієнтами та розробниками, щоб переконатися, що ви будуєте правильну річ, а також будуєте її правильно. Погляньте на спритні квадрати тестування Лізи Кріспін. Найкращі тестери беруть участь у кожному етапі життєвого циклу розробки програмного забезпечення, а найкращі розробники пишуть власні тести.

  2. Намагаючись занадто близько дотримуватися розкладу SCRUM, що складається з спринтів на 1 тиждень / 2 тижні, не маючи пріоритетного та розмірного відставання, який розбивається на завдання, які досить легко виконати за короткий час протягом одного спринту. Якби у вас це було, то завжди було б більше працювати. Можливо, остання функція, над якою ви працюєте в цьому спринті, не потрапляє до випуску цього спринту, але завжди може перейти до наступного.

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

Ще один додатковий момент, який підкреслив @Cort Ammon у коментарях. Швидкий маніфест говорить про співпрацю з клієнтами щодо укладання договорів. Ви кажете, що:

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

Це може бути важко пояснити, і я розумію, що замовники можуть бути дуже важкими часом, але це був би великий червоний прапор для мене. Вони довіряють вам своїм вихідним кодом / відносинами з клієнтами / бізнесом / що б ви не розробляли для них. Якщо вони не можуть довіряти вам діяти професійно в своїх інтересах, то або у вас є проблеми, або вони.

Я написав пост, в якому йдеться про те, що розробники програмного забезпечення не вважаються професіоналами. Професійний лікар, юрист, інженер-будівельник, зіткнувшись із клієнтом, який змінив вимоги щодо них частково, не просто знизить якість та стогін. Вони б сказали своїм клієнтам, що це буде проблема. Якщо клієнт підштовхнув, то професіонал не просто сліпо це зробить до небезпечно нижчого стандарту, оскільки він би несе відповідальність. Ми не приймаємо професійні вступні іспити, тому не несемо відповідальності. Це не означає, що ми не повинні намагатися бути кращими.

Підводячи підсумок, я б не переймався над тим, щоб намагатися зробити людей ефективнішими на початку та в кінці спринту, а скоріше сприймати це як симптом ширшої проблеми в команді. Ви чули про програмування eXtreme (XP) . Я б сказав, що тут застосовуються принципи роботи із XP, це спілкування та повага:

  • Поважайте свою команду робити те, що вони вважають найкращим. Я б заперечував, що якщо багато перегляду відео з котами, то або у вас погані розробники, або ви погано ставитесь до них.
  • Зв'язок. Якщо ваші розробники розмовляють між собою, з тестерами, з керівництвом, із замовником, то, ймовірно, кожен повинен мати гарне відчуття того, що буде далі, а якщо цього не робити, вони можуть просто запитати.

Так, так і так. Знайдіть відповідь у всіх напрямках.
Девід Арно

Гарна відповідь - останній абзац потребує роботи. Підніміть і поясніть тут пункти, а не вказуйте на якийсь фаміл.
Роббі Ді

1
Що раніше використовували ваші розробники на етапі тестування водоспаду? - Я не мав на увазі порівнювати scrum з watefall, а скоріше з підходами, схожими на kanban, де завжди є список завдань, які вже оцінені та визначені пріоритетом. Затримка scrum містить функції, які не були належним чином перевірені командою, тому якщо один розробник (який наразі не має функцій, над якими працює) вирішить розпочати реалізацію одного з них у середині спринту, це може призвести до несподіваних наслідків .
holdenmcgrohen

@holdenmcgrohen досить справедливо. Моя оцінка завжди жахлива, що я намагаюся врахувати, тому мені завжди подобається, щоб щось було далі. Я думаю, що щоденні зміни та з'єднання можуть допомогти тут, якщо ваші розробники не залишатимуться на самоті занадто довго, вони не можуть забитися занадто далеко.
Encaitar

@Encaitar Чудові речі +1
Роббі Ді

20

Перший момент - Scrum - це оптимізація команди , а не кожної людини. Якщо команда продуктивна та ефективна, це не має великого значення, чи хтось не працює на початку чи в кінці завдання.

Однак над кожною командою, в якій я був, завжди багато роботи. Дозвольте мені вирішити кілька ваших конкретних проблем:

На початку спринту ще немає чого перевірити,

Хоча це може бути правдою в прямому сенсі, це означає, що ви думаєте, що єдиною роботою тестера є "перевірка". Є багато, що можна зробити, перш ніж вони розпочнуть тестування. Для одного вони можуть зустрітися з власником продукту та розробниками, щоб повністю зрозуміти вимоги. Вони можуть бути зайняті роботою над тестовим планом, збиранням тестових даних тощо. Якщо у них розкіш хорошої основи, вони можуть почати писати автоматизовані тести достроково.

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

Мені ще не доводиться бачити команду розробників, у якої не вийшло виправити. Однак це не те, що вони повинні робити в кінці спринту. До кінця спринту вони повинні допомагати тестерам випробувати продукт. Вони можуть допомогти писати автоматизовані тести, вони можуть перевірити код-тести та прилади / ключові слова / тощо, написані тестерами. Вони можуть працювати з командою з документації, щоб допомогти їм закінчити свою роботу тощо.

Я бачив 2 підходи для вирішення цього питання ... 1) Нехай члени команди вирішують, що робити, коли вони не мають завдань.

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

Зробіть місце в спринті лише для розвитку,

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

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

Мета - це командна мета, але ви пишете так, ніби кожна людина має індивідуальні цілі («закінчіть мої завдання»). Якщо комусь нічого не робити, він може побачити, над чим зараз працює, і запропонувати допомогти. Або вони можуть взяти наступне завдання чи розповідь і почати роботу над ним.


1
+1. Спритний процес вимагає млявості. Для оптимізації системи вам часто доводиться деоптимізувати підпроцеси. У цьому випадку ви це сказали найкраще з "оптимізацією команди". Все інше є симптомом помилки утилізації.
CodeGnome

На початку своєї кар'єри я зіткнувся з деякими компаніями, які очікували, що кандидат працюватиме на всіх PHP, Java, C #, настільних додатках (VB), QA (автоматизований, вручну), Photoshop, CSS тощо. В той час промисловість вважала ці компанії менш професійними через значення спеціалізації. Цікаво, чи може ця модель прийняти (навіть стати необхідністю) під Agile.
kuldeep.kamboj

1

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

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

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

Виправлення помилок - цілком прийнятна діяльність, яку потрібно вкласти у спринт. Це сприяє особливості і тим самим додає цінності. Це не слід розглядати як час, викрадений з наступного спринту - більш правильне закінчення функції.


8
Прочитайте Посібник з Scrum . Можливо, ви знайдете частину, де написано, що добре розділити команду розробників на тестерів та розробників (підказка, ви цього не зробите).
Натан Купер

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

5
Яку частину тренувань Agile ви не пропустили, де зазначено, що ви повинні прийняти стратегію, яка працює для вашої команди ? Команда Роббі Ді прийняла те, що працювало для них в їхніх унікальних обставинах, своїм унікальним проектом та екологічними обмеженнями. У кожній компанії є екологічні бар'єри та "збитки", які необхідно спрямувати. Це здається цілком прийнятним підходом до поставленого питання . Питання полягало не в тому, щоб найкраще організувати тестерів та тестування для вашої спринтерської команди.
maple_shaft

4
Ні. ОП спеціально запитала про Scrum. Ви не можете робити все, що завгодно, і називати це Scrum. Це може бути, а може і не спритно, але те, що частини вашої міжфункціональної "команди" трактуються як зовнішні ресурси або як що-небудь інше, ніж першокласні члени команди розробників, не є Scrum.
CodeGnome

2
@CodeGnome абсолютно правильно, і штрихи на місці я завжди підвезти: Agile є філософією, Scrum є реалізацією цієї філософії. Двоє - це не одне і те ж, і дотримуються окремих правил. (Так, Scrum з'явився першим, але згодом було

-2

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

Спосіб SCRUM б , щоб дозволити вашій команді бути крос функціональні. Ваші тестери в будь-якому разі повинні володіти навичками автоматизації тестів, це короткий крок до кодування деяких менш складних речей.


6
Т-подібні люди - це одне, а тестери писати код (якщо ми не говоримо про автоматизацію тестування) - зовсім інше.
Роббі Ді

2
Це просто передбачає, що у спринті є лише тестери? У Devs також є простої.
maple_shaft

Я припускаю, що Devs може робити тестування без додаткової підготовки. Де я живу, це частина освіти та роботи.
nvoigt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.