Конечно Scrum полезен. Это методология, которая делает две вещи для вас:
- Это позволяет вашему проекту адаптироваться к изменениям и
- Это позволяет вам отслеживать прогресс, и получить представление о том, когда он будет завершен
Таким образом, есть некоторая ценность в использовании этого.
Я думаю, что некоторые из ваших предварительных условий не верны, и именно здесь вы заблудились.
Я не вижу, как каждая история может быть предметом переговоров - все они необходимы для работающего компилятора
Это неправда. Вы можете поддерживать подмножество языка и при этом иметь компилятор, который работает при определенных условиях. Конечно, менее ценный, чем полный компилятор, но все же ценный.
Кроме того, вы неправильно понимаете, что означает «Договорная»: это не обязательно означает «Необязательный» и не требуется, чтобы истории были необязательными в INVEST. История является ценной целью, и ведутся переговоры о том, как достичь этой цели. Конечно, будет не просто способ реализации серверной части каждой языковой функции. Там, где вам нужны переговоры.
Все истории имеют одинаковый приоритет, и не важно, в каком порядке я их доставляю.
Это не правильно, как вы говорите ниже, что некоторые истории не «должны иметь», поэтому, безусловно, некоторые из них менее ценны. Но даже в категории «должен иметь»: некоторые языковые особенности намного более фундаментальны, чем другие, и в значительной степени таковы.
Один из способов измерить это - «сколько еще строк кода мы можем скомпилировать в существующей кодовой базе» или «сколько еще тестов пройдено», если у вас есть предопределенный набор тестов.
Есть и другие варианты. Если вы компиляции C-подобный язык, строго говоря , вам нужно только if
и goto
цикл иметь (едва) функциональный язык , и вы можете реализовать while
, for
и repeat
как макросы. Предполагая, что написать прекомпилятор достаточно просто, у вас может быть дешевое решение для временной задержки (эй, мы ведем переговоры? :-)
Что касается адаптивности, поддержка языка является довольно статичным набором требований, но языки также меняются, а также изменяются ваши знания о ваших потребностях . Вам нужно все реализовать? Есть ли вещи, которые вам не нужны специально для ваших целей? Одним из основных клиентов Agile является знание неполного знания, можете ли вы использовать его?
В заключение, чтобы ответить на ваш вопрос более прямо: нужны ли вам гибкие процессы, когда ваши требования неизменны? Точно нет! Они пригодны для использования? Возможно - да! Они стоят вашего времени? Вероятно, нет - но ваши требования неизменны? В моем прошлом опыте «неизменяемые требования» => «ленивый владелец продукта» - не правило, но стоит помнить.