Як Scrum можна адаптувати до академічного середовища?


15

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

До недавнього часу обидва курси використовували виключно модель водоспаду, і таким чином студенти витрачали більшість свого часу на написання тривалих доповідей. Після великого тиску з боку мене професор вирішив включити Scrum до навчальної програми з програмного забезпечення в минулому семестрі.

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

На жаль, ми зустріли декілька несумісностей між Scrum та студентами:

  • Щоденні зустрічі Scrum майже неможливі для студентів. Навіть під час самого заняття студентам незручно проводити засідання Scrum, оскільки професор зазвичай читає лекції.
  • Оцінювання балів / годин складно, оскільки студенти недосвідчені і тому не можуть точно передбачити, скільки часу займе щось.
  • Scrum найкраще працює із штатними розробниками, які працюють разом, але студенти - це не те. Щонайбільше студенти присвячують 15-20 годин на тиждень курсу, а організація робочих зустрічей може бути надзвичайно важкою. Команди можуть мати до 10 учнів (і завжди є один або два нероб).
  • Професори жадають документації! Я не чув жодного звіту Scrum - лише відставання та графіки перевантажень (що, я не впевнений, буде достатньо, щоб заспокоїти науковців).
  • Студенти часто припускають, що спритний означає «Стривайте прямо та починайте кодувати, не озираючись назад». Це призводить до деяких найжахливіших кодів, які можна уявити. Тому я шукаю спосіб забезпечити належну конструкцію, не вимагаючи документа на 50 сторінок або купи діаграм UML.

Зважаючи на ці проблеми, як ви думаєте, як ми з професором можемо адаптувати Scrum до функціонування в академічному середовищі (і чи варто нам взагалі турбуватися із Scrum?) Крім того, чи все ще є значення в навчанні моделі водоспаду?

Заздалегідь дякую за будь-які відгуки!


2
Звучить так, ніби ви намагаєтеся практикувати SCRUM, а не навчати основ того, як це має працювати
CodeART

Відповіді:


3

Я б вагався так швидко відкинути Водоспад через борт.

Хоча це і є хибною моделлю для фактично побудови програмних систем, але це не погана модель навчання для того, щоб викладати належні практики для кожного етапу життєвого циклу. Незалежно від моделі процесу, яку ви застосовуєте до проекту, ви все ще виконуєте вимоги проектування, архітектури системи та проектування, впровадження, тестування, випуск та обслуговування (включаючи рефакторинг та вдосконалення). Різниця полягає в тому, як ці фази організовані та проведені, але всі заходи все ще відбуваються.

Я б заперечував, що ваш перехід від Водоспаду до Scrum посеред проекту - не найкраща ідея. Запорукою успіху Scrum є тривалий проект. Перші три-п’ять спринтів - це команда, яка швидко влаштовується, вивчає процес і проходить розвиток команди. Хоча ви робите за допомогою рухів, це насправді не Scrum на той момент. Крім того, намагатися створити виключно на основі Scrum навчальну програму, мабуть, погана ідея, оскільки Scrum як не срібна куля - краще навчити кращих практик, а не єдиної методики. У робочій силі не всі проекти збираються використовувати Scrum. Насправді, в деяких середовищах Scrum завдасть шкоди успіху проекту.

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

Невипуск у вашому списку невідповідностей полягає в тому, що оцінити складно. Так. Але єдиний спосіб покращити оцінку - це оцінити та порівняти фактичні дані з оцінкою. Студенти повинні оцінювати розмір, час та зусилля, використовуючи різні засоби (пункти розповідей, вихідні рядки коду, години, сторінки, людино-години), щоб вони були готові до цього після закінчення навчання та вступу до робочої сили.

Потреба в документації - це те, що можна вирішити як з точки зору професора, так і з точки зору студентів. Лежачі підходи говорять нам про те, що документація, яка не додає цінності ні для команди, ні для замовника, є марною (з точки зору часу та витрат). Однак необхідна деяка документація для досягнення певних цілей як студентів, так і професора (замовника / клієнта) для різних цілей. Загалом це звучить як можливість навчити пошиванню процесів та кількісному управлінню проектами (що має роль навіть у спритних методах).

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

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


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

Вступна інженерія програмного забезпечення пройшла через проект у моделі водоспаду, лекції на кожному етапі відповідали різним способам ведення діяльності на цій фазі. Команди прогресували через етапи з однаковою швидкістю. Маючи чітко окреслені межі, вони добре вписуються в модель навчання для групи людей, що не мають мінімального досвіду роботи над командами зі створення програмного забезпечення. Протягом курсу посилалися на інші методики - різні гнучкі методи (Scrum, XP), Rational Unified Process, Spiral Model - щодо їх переваг та недоліків.

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

Також три курси, присвячені процесу програмного забезпечення. Управління процесами програмного забезпечення та управління проектами, що зосереджується на кращих практиках управління програмним проектом стосовно кількох методологій. Другий курс процесу викладає вимірювання, показники та вдосконалення процесів (підкреслюючи CMMI, Six Sigma та Lean). Нарешті, існує технологічний курс, який навчає гнучкої розробки програмного забезпечення (Scrum, Extreme Programming, Crystal, DSDM), використовуючи проект, здійснений за методологією Scrum.

Проект Capstone був проектом на два квартали, який виконувався для компанії-спонсора і повністю керується командою студентського проекту, з керівництвом як від спонсорів, так і з боку професорсько-викладацького складу. Кожен аспект того, як проводити проект, залежить від студентів у межах обмежень, встановлених спонсорами. Єдиними термінами, призначеними університетом, були проміжна презентація на півдорозі (10 тижнів) до проекту, остаточна презентація наприкінці та презентація чотирьох плакатів незадовго до кінця. Все інше було вирішено погодитись із спонсором та командою.


3

Коли я займався магістерською програмою з інженерії програмного забезпечення, був курс під назвою Software Process, який стосувався XP, Scrum та інших спритних підходів. По суті, весь клас сформував гіпотетичну компанію програмного забезпечення та отримав доручення розробити частину досить досконалого програмного забезпечення протягом часу, коли пройшов курс. Лекції розповідали про речі, такі як практики XP, проведення стійких зустрічей тощо.

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

Потрібно пам’ятати: переконайтеся, що ви добре граєте з клієнтом і змініть деякі ключові вимоги на півдорозі. Або "забути" згадати їх спочатку.


1

В цей момент курс перейшов на Scrum, з двома 3-тижневими спринтами. Зараз ми намагаємося розібратися, як взагалі усунути водоспад і створити виключно Scrum-програму.

Чи є мета сприяти розвитку, або навчитися Scrum, або - як я здогадуюсь - обом? Я б розглядав короткі спринти, щоб прискорити процес навчання.

• Щоденні зустрічі Scrum майже неможливі для студентів. Навіть під час самого заняття студентам незручно проводити засідання Scrum, оскільки професор зазвичай читає лекції.

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

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

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

• Scrum найкраще працює з штатними розробниками, які працюють разом, але студенти - це не те. Найбільше студенти присвячують 15-20 годин на тиждень курсу, а організація робочих зустрічей може бути надзвичайно важкою. Команди можуть мати до 10 учнів (і завжди є один або два нероб).

Може, спробувати з меншими командами? 10 знаходиться у верхній шкалі для команди Scrum. Я думаю, що ви можете домогтися успіху і з нерозподіленими розподіленими командами, але, звичайно, це складніше! Нехай це сам урок.

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

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

• Студенти часто припускають, що рухливий означає "Перейти прямо та почати кодування, не озираючись назад". Це призводить до деяких найжахливіших кодів, які можна уявити. Тому я шукаю спосіб забезпечити належну конструкцію, не вимагаючи документа на 50 сторінок або купи діаграм UML.

Не тільки студенти :-) Більшість команд Scrum використовують практики XP, такі як TDD (Test Driven Development) та рефакторинг: Я пропоную вам включити це до навчальних програм.

Крім того, чи все ще є значення в навчанні моделі водоспаду?

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


0

Це звучить трохи схоже на тему, яку я взяв одного разу.

Деякі думки:

  • Чи справді у вас відбудеться зустріч з обговореннями всієї команди? Чи працюватимуть підтеми?
  • Якщо "без огляду назад" означає відсутність рефакторингу, то оцініть докази рефакторингу?
  • Оцініть роздуми та документацію - змусьте учнів вести блог своєї діяльності. (Це насправді досить корисна навичка на робочому місці - набагато більше, ніж більшість офіційної документації)
  • Якщо оцінки погані, сподіваємось, вони навчаються - чи можуть вони відслідковувати зміни між оцінками та реальністю, розмірковувати про відмінності та демонструвати, що вони чомусь навчились?
  • Чи є менш формальні способи документування дизайну, які були б доречними?
  • Буде Skype чи Gchat чи чогось достатнього для зустрічей у scrum?

0

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

Як ми це робили, коли я навчався в коледжі, мав провести спеціальний курс для спритних методологій. Курс включав проект розробки, який повинен запускатися відповідно до SCRUM або XP. Фактичне програмне забезпечення, яке потрібно було поставити, було тривіальним, оскільки основна увага в курсі була не програмуванням чи дизайном, а процесом. Міркування тут те саме, що вам не слід змішувати "жорсткі основні" теми розробки програмного забезпечення з предметами методології, оскільки одні мають тенденцію затьмарити іншу, і студенти здебільшого не готові чи кваліфіковані, щоб впоратися з обома на цьому етапі.

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

Цей курс також включав TDD (Test Driven Development), і це спрацювало дуже добре.

Крім того, чи все ще є значення в навчанні моделі водоспаду?

Це, безумовно, є. Багато компаній використовують версії цієї моделі для своїх проектів (PPS, RUP, PROPS тощо). Багато хто вважає (правильно, на мою думку), що "чистий" SCRUM краще підходить для постійного обслуговування, ніж для проектів. SCRUM (і Agile взагалі) вимагає певної гнучкості в обсязі та можливості узгодження вимог та доставки по дорозі. Не всі проекти працюють так, вони є двійковими: доставити X в момент Y, все інше - це провал.


0

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

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

Розглянемо натомість використання менш гнучких ітеративних процесів, таких як UP (RUP).

Щоб показати значення порівняно з процесом водоспаду, змініть вимоги між ітераціями. Це покаже різницю між УП та водоспадом та натякне на значення використання спритних процесів.

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

Оскільки семестри відносно короткі, дві невеликі ітерації були б реалістичними.

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

Під час курсу лекції викладають теорію кількох процесів, наприклад, водоспад, UP, XP, SCRUM та Kanban (разом з іншими темами, наприклад, вимогами до написання, UML, тестуванням тощо).

Студенти, які закінчили вищевказаний курс, розглядають окремий семінар SCRUM як факультативний курс, який займає денний період протягом два дні протягом літнього семестру.


-1

Scrum працює, якщо у вас є проект на тривалий термін / семестр і клас розділений на 6 - 10 груп людей. Тоді ви могли б присвятити останні 10 хвилин уроку часу зустрічі scrum.

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