J'ai vu beaucoup de messages récemment disant que l'une des principales raisons pour lesquelles Agile est utilisé est que les clients changent souvent les exigences.
Cependant, supposons que les clients ne changent pas souvent les exigences . En fait, les clients ont des exigences fermes mais peuvent être un peu vagues (mais rien de déraisonnablement vague), mais j'utilise quand même Agile.
La raison pour laquelle j'emploie Agile est que le logiciel est suffisamment complexe pour qu'il y ait des détails, des problèmes que je ne reconnaîtrais pas avant de les affronter. Je pourrais faire une approche de planification lourde à grande échelle comme une cascade, mais cela prendrait quelques mois pour finaliser toutes les signatures de conception de haut niveau et de codage de bas niveau. Il existe cependant une conception architecturale très spécifique et fixe pour le système.
Ma question est: Serait-ce considéré comme mauvais, codage cowboy, anti-pattern, etc.? Doit-on utiliser la cascade et planifier autant que possible dans les moindres détails avant de commencer à coder lorsque les exigences sont stables au lieu de cette mentalité «faisons-le» dans Agile?
EDIT: Le point principal ici est le suivant: nous NE POUVONS PAS blâmer les clients pour l'évolution des exigences. Supposons que les clients nous ont signalé un problème très concret, donnez-nous une liste de souhaits dans des détails très raisonnables et laissez-nous tranquilles (c.-à-d. Que les clients ont leurs propres choses productives à faire, ne les boguez plus. fin lorsque vous avez un prototype fonctionnel minimum). Serait-il mal d'utiliser Agile dans ce scénario?