Багато книг і статей Scrum говорять про те, що невдалий спринт (коли команді не вдалося виконати деякі функції зі списку "Спринту") не є чимось таким поганим, він буває час від часу, і він може бути корисним, якщо команда вчиться на своїх помилках і покращує щось у наступних спринтах. І команду не слід карати за те, що вони не виконали роботу, яку вони взяли на себе.
Те, як ви «караєте» подібну поведінку, обмежуючи кількість роботи, яку ті, хто не закінчив, можуть взяти на себе наступний спринт. Шанси попрацювати на класних матеріалах зникають. Нагорода за добру роботу - це більше роботи.
Це виглядає чудово з точки зору розробника, проте, скажімо, у нас є компанія-виробник програмного забезпечення "Scrum-Addicts LLC", яка розробляє щось для серйозних клієнтів ("Money-Bags Corporation"):
Менеджери Scrum-Addicts пропонують скласти частину програмного забезпечення для Money-Bags. Вони домовляються про перелік функцій, і Money-Bags просить вказати дату доставки. Менеджери Scrum-Addicts проконсультуються зі своєю командою scrum, і команда каже, що це займе 3 тижні -довгий спринт, щоб виконати всі функції менеджер Scrum-Addicts додає 1 тиждень, щоб бути безпечним, обіцяє поставити програмне забезпечення протягом 1 місяця та підписувати контракт з Money-Bags. Після 4 спринтів (термін доставки) Scrum команда може доставити лише 80% особливостей (через недосвідченість нової системи, необхідність виправляти критичні помилки в попередніх функціях у виробничому середовищі тощо). Як вважає Scrum, на даний момент продукт потенційно можна поставити, але Money-Bags потребує 100% особливостей, зазначених у договорі. Тож вони розривають договір і нічого не платять.
Scrum-Addicts знаходиться на межі банкрутства, оскільки грошей у Money-Bags не отримали, а інвестори були розчаровані результатами та не бажають більше допомагати компанії.
Якщо в понеділок я обдячу вас 100 доларами, що у четвер піде дощ, а до п’ятниці не випаде дощ, ви вірно взяли б мої гроші. Якщо замість шансу пограти, те, що ви хочете, - це прогноз погоди, тоді нам потрібен контракт, який дозволить мені дати вам оновлений прогноз у вівторок.
Очевидно, жодна програмна компанія не хоче бути у взутті Scrum-Addicts. Що я не розумію щодо Agile та Scrum - це те, як вони пропонують командам боротися з плануванням та термінами, щоб уникнути описаної вище ситуації.
Подумайте, Чому МБ хоче взяти свій бал і піти додому. МВС не вимагав, щоб робота була виконана через місяць з самого початку. SA пообіцяв 100% критичних особливостей за один місяць і не виконав. SA встановив термін не МБ. SA навіть довільно додала тиждень до дедлайну. То чому це термін?
Іноді, коли змагаються за роботу, програмні компанії піддаються спокусі показати і обіцяти місяць. Професіонали ретельно встановлюють, чи потрібен навіть місячний місяць. Яка більш критична потреба у MoneyBags? 100% функцій чи функціонуючого продукту через місяць? Чи вони навіть знають, що є справді критичним? Чи є якась майбутня подія, яка встановить важкий термін?
Якби я Scrum-Addicts домовлявся про цей контракт, я хотів би дізнатися набагато більше про потреби бізнесу в Money-Bags та структурувати контракт, щоб надати стільки гнучкості, наскільки це зручно у Money-Bags. Я б навчив їх, як працює спритний процес, щоб вони знали, чого чекати від нас.
Таким чином, замість того, щоб очікувати, що все буде раптом ідеально працює протягом місяця, вони очікували, що вони оцінять перший результат через 1 - 2 тижні.
Отже, підводячи підсумок, у мене є 2 питання:
Хто винен? Менеджери, тому що це їхня робота належним чином планувати
команду, тому що вони взяли на себе зобов’язання зробити більше роботи, ніж могли
Хтось інший
Будь-хто міг би зупинити цю травестію, перш ніж ми пройшли місяць вниз.
Я міг би піти в тому, що звинувачую гроші у виплаті грошей у наймі команді, яка, очевидно, шахрайсько представляла процес водоспаду як спритний. Сам договір дає зрозуміти, що це не спритно. Планування, яке потрібно зробити через місяць, не робить його гнучким.
Якщо ви наполягаєте на тому, що він спритний, він спритний лише одним спринтом, який триває місяць. Що, так, я б не рекомендував, тому що це знову те саме, що і водоспад.
Що робити?
Як щодо спритного? Поставити щось кожен спринт? Отримати зворотній зв'язок до встановленого терміну? Тижні довгі спринти? Як щодо переговорів про драконівський договір в той самий момент, коли ви підозрюєте, що цей термін загрожує небезпеці, а не ховатися і молитися? Як мінімум, ви можете перестати витрачати час на приречений проект і знайти більш розумного клієнта.
Керівники повинні перенести термін в 2 рази (або 3 рази) пізніше, ніж початковий кошторис команди.
Помножувачі термінів настільки ж корисні, як і встановлення годинника на 15 хвилин раніше, щоб ви ніколи не спізнювалися. Ти можеш дурити себе лише задовго до того, як зрозумієш, що ти маєш.
Ранні оцінки невірні. Спробуйте зафіксувати, як неправильно. 5 тижнів, приділіть або займіть кілька тижнів - це простий вираз, який дозволяє висловити, наскільки невпевнено насправді дата завершення. Замість того, щоб намагатися точно вгадати, ви здогадуєтесь, наскільки дикі ваші здогадки. Зробіть якусь реальну роботу та отримайте реальні дані. Потім ви можете почати робити оцінки з більш вузьким діапазоном. Один-два тижні - це достатньо часу для цього.
Членів команди слід заохочувати виконувати всю роботу, яку вони виконували, незважаючи ні на що (видаючи штрафи за невдалі спринти)
Членів групи слід заохочувати. Помилка, вчинення чи інше. Замість того, щоб будувати будь-які штучні наслідки, такі як покарання чи навіть бонуси (морква та палиця), дослідження показали, що люди, які займаються творчою роботою, такою як програмування, найкраще відповідають, якщо надаються три речі: Автономія, Майстерність та Мета.
Даніель Пінк про це говорить TED . Розмова про мотивацію не спритну, але я легко бачив, як відобразити ці моменти до спритного:
Автономія - Я хочу керувати власним життям - Дозвольте мені вибрати роботу з відсталого.
Майстерність - я хочу покращити щось важливе - відгуки клієнтів.
Мета - Я хочу бути частиною чогось більшого, ніж я - Колектив спільної роботи.
Команда повинна скинути Scrum, оскільки він не відповідає політиці компанії щодо термінів, Scrum може досягти терміну точніше, ніж водоспад. Враховуючи термін, Scrum може його виконати. Він може зустріти його лише з 47 функцій залежно від часу, особливостей та навичок, але він може відповідати йому.
Складний проект може бути складений настільки надзвичайно, що щовечора, коли команда їде додому, вона готова відправити. Це здається нерозумним, якщо ви не вважаєте доставку такою, як просити клієнта перевірити та надати зворотній зв'язок. Чим швидше це станеться, тим швидше ви зможете внести корективи. Це досягає кожного можливого строку. Просто не кожна функція. Але це спрямовує вас на важливі функції.
Усі ми повинні кинути розробку програмного забезпечення та приєднатися до монастиря
Правильно, як зачинити мене в кімнаті подалі від реального життя, це змусить мене написати менший код.
Я відредагував цю відповідь до розміру. Якщо вам цікаво, прочитайте історію редагування.