Я б не наважувався так швидко відкинути Водоспад через
дошку.
Хоча це і є недосконалою моделлю для побудови програмних систем,
це не погана модель навчання, яка б давала вказівки щодо передового
досвіду для кожного етапу життєвого циклу. Незалежно від моделі
процесу, яку ви застосовуєте до проекту, ви все ще виконуєте
інженерні вимоги, архітектуру системи та проектування,
впровадження, тестування, випуск та обслуговування (включаючи
рефакторинг та вдосконалення). Відмінність полягає в тому, як ці
фази організовуються і проводяться, але все це все ще
відбувається.
Я стверджую, що перехід від Водоспаду до Scrum у середині
проекту не є найкращою ідеєю. Ключем до успіху Scrum є давній
проект. Перші три-п'ять спринту - команда, яка влаштується на
швидкість, вивчає процес і проходить через розвиток команди. Хоча
ви робите через рухи, це не дійсно Scrum у цій точці. Крім того,
спроба створити навчальну програму, що базується виключно на Scrum,
є, мабуть, поганою ідеєю, оскільки Scrum не є срібною кулею - краще
навчати кращих практик, ніж єдину методику. У робочій силі не всі
проекти збираються використовувати Scrum. Насправді, в деяких
середовищах Scrum завдасть шкоди успіху проекту.
Ви вже знайшли проблеми з Scrum в академічній обстановці, і
деякі з них важко адекватно вирішувати.
Неспроможність у вашому списку несумісностей полягає в тому, що
оцінка складна. Так. Але єдиний спосіб поліпшити оцінку - це
оцінити та порівняти фактичні дані з оцінками. Студенти повинні
оцінювати розмір, час і зусилля, використовуючи різні засоби (точки
оповідання, вихідні рядки коду, години, сторінки, людино-годинник)
на ранній стадії, щоб вони були більш готові до цього після
закінчення навчання і виходу на роботу.
Потреба в документації - це те, що можна вирішити як з точки
зору професора, так і з точки зору студентів. Підходи Lean говорять
нам, що документація, яка не додає вартості ні команді, ні клієнту,
є марнотратною (з точки зору часу та вартості). Однак, для
досягнення певних цілей як для студентів, так і для професора
(клієнта/клієнта) для різних цілей потрібна документація. В цілому,
це звучить як можливість навчити адаптацію процесу та кількісне
управління проектами (що має роль навіть у гнучких методах).
Що стосується зустрічей Scrum і планування, то є дві ідеї, які
приходять на мій погляд. По-перше, це означає, що Scrum може бути
не найкращим процесом для використання в академічних умовах. Не
існує єдиної "найкращої моделі процесу" для проектів програмного
забезпечення, з такими факторами, як графік, штат, видимість і
досвід команди розробників (серед інших).
Загалом, я пропоную підкреслити передові практики, пошиття
процесів та вдосконалення процесу над єдиними методиками. Це
дозволить вам бути найбільш ефективними для всіх, хто приймає
курси, і піддавати їх різноманітним методологіям процесу та
розуміти, які найкращі практики застосовуються для даного набору
умов.
Оскільки ви працюєте над створенням університетського
навчального плану, я дам високий рівень огляду того, як навчальна програма
інженерії програмного забезпечення на університеті, на якому я
навчався , підходять разом.
Це була вступна інженерія програмного забезпечення, що пройшла
проект у моделі водоспаду, причому лекції на кожній фазі
відповідали різним способам проведення діяльності цієї фази.
Команди проходили по фазах з однаковою швидкістю. Наявність цих
чітко визначених меж добре вписується в модель викладання для групи
людей, які не мають мінімального досвіду роботи з командами для
створення програмного забезпечення. Протягом усього курсу були
зроблені посилання на інші методики - різні гнучкі методи (Scrum,
XP), Rational Unified Process, Spiral Model - щодо їх переваг і
недоліків.
З точки зору діяльності, були спеціальні курси для обговорення
інженерних потреб, архітектури та дизайну (два курси - один з
основних завдань з використанням об'єктно-орієнтованих методів,
один з яких зосереджується на архітектурі системи), ряд курсів,
спрямованих на розробку та впровадження різних класи систем
(реальні та вбудовані системи, корпоративні системи, паралельні
системи, розподілені системи тощо) і тестування програмного
забезпечення.
Існують також три курси, присвячені процесу програмного
забезпечення. Процес управління проектами та управління проектами,
який зосереджує увагу на кращих практиках управління проектом
програмного забезпечення стосовно декількох методологій. Другий
курс процесу викладає вимірювання, показники та вдосконалення
процесу (підкреслюючи CMMI, Six Sigma та Lean). Нарешті, є процес,
який навчає гнучкому розробці програмного забезпечення (Scrum,
Extreme Programming, Crystal, DSDM), використовуючи проект, що
виконується з використанням методології Scrum.
Цей проект був два квартали, який був виконаний для
компанії-спонсора і виконувався повністю командою студентських
проектів, з керівництвом як спонсорів, так і консультанта
факультету. Кожен аспект того, як проводити проект, залежить від
студентів, в межах будь-яких обмежень, викладених спонсорами.
Єдиними термінами, що мандатувалися університетом, були проміжні
презентації на півдорозі (10 тижнів) у проекті, заключна
презентація наприкінці, а також презентація чотирьох плакатів
незадовго до кінця. Все інше було до спонсора і команди, щоб
погодитися.