Claro que Scrum é útil. É uma metodologia que faz duas coisas para você:
- Permite que seu projeto se adapte às mudanças e
- Permite acompanhar o progresso e ter uma ideia de quando será concluído
Portanto, há algum valor em usá-lo.
Acho que algumas de suas condições prévias não estão corretas e é aí que você está se perdendo.
Não vejo como cada história pode ser negociável - todas elas são necessárias para um compilador funcional
Isso não é verdade. Você pode suportar um subconjunto do idioma e ainda ter um compilador que funcione sob determinadas condições. Certamente menos valioso que um compilador completo, mas ainda valioso.
Além disso, você entende mal o que significa "Negociável": não significa necessariamente "Opcional" e não há exigência de que as histórias sejam opcionais no INVEST. Uma história é um objetivo valioso e a negociação é sobre como alcançá-lo. Certamente haverá mais do que maneira de implementar o back-end de cada recurso de idioma. É aí que você precisa de negociação.
As histórias são todas de igual prioridade e não importa em que ordem eu as entrego.
Isso não está correto, como você diz abaixo que algumas histórias não são "obrigatórias", então certamente algumas são menos valiosas. Mas mesmo na categoria "must have": alguns recursos de linguagem são muito mais fundamentais que outros, e de maneira mensurável.
Uma maneira de medir isso é "quantas linhas de código podemos compilar em uma base de código existente" ou "quantos testes passam" se você tiver um conjunto de testes predefinido.
Existem também outras opções. Se você estava compilando um C-como a linguagem, a rigor só precisa de um if
e goto
loop para ter um (mal) linguagem funcional e você pode implementar while
, for
e repeat
como macros. Supondo que seja fácil escrever um uso de um pré-compilador, você pode ter uma solução barata (ei, estamos negociando? :-)
Em relação à adaptabilidade, o suporte a um idioma é um conjunto de requisitos bastante estático, mas os idiomas também mudam e também o conhecimento de suas necessidades . Você precisa implementar tudo? Existem coisas que você não precisa especificamente para seus objetivos? Um dos inquilinos básicos do ágil é o conhecimento de ter conhecimento incompleto. Você pode aproveitá-lo?
Concluindo, para responder sua pergunta mais diretamente: você precisa de processos ágeis quando seus requisitos são imutáveis? Definitivamente não! Eles são utilizáveis? Provavelmente sim! Eles valem o seu tempo? Provavelmente não - mas seus requisitos são imutáveis? Nas minhas experiências anteriores, "requisitos imutáveis" => "proprietário preguiçoso do produto" - não é uma regra, mas vale a pena lembrar.