Il y a une chose que je me suis toujours demandée en lisant toutes ces choses sur le "développement agile" ici sur SE et sur d'autres sites:
En génie logiciel "traditionnel", vous
- recueillir les besoins de l'utilisateur,
- rédiger une spécification basée sur ces exigences,
- le remettre au client et le facturer pour le travail effectué jusqu'à présent,
- faire une conception technique (grossière), de façon à pouvoir estimer le coût de mise en œuvre,
- donner à l'utilisateur un devis pour la mise en œuvre,
- attendre que le client signe le cahier des charges et accepte l'offre,
- concevoir, mettre en œuvre, tester,
- facture.
Si, au cours du processus, les exigences changent, vous envoyez une offre (avec un prix) pour les changements souhaités (ou faites-le gratuitement si le changement est petit, vous aimez le client et le client ne le fait pas trop souvent) .
Alors, comment cela fonctionne-t-il (financièrement) dans un projet agile, où de fréquents changements d'exigences font partie du processus?
- Écrivez-vous une offre pour chaque changement de conception? (Ce ne serait pas tout à fait un gâchis?)
- Ou négociez-vous un prix fixe et espérez que le client ne change pas trop souvent les exigences? (Cela pourrait être risqué, je connais des clients qui utiliseraient cette opportunité pour demander de nouvelles fonctionnalités pendant des années avant d'accepter la fin du projet.)
- Ou facturez-vous simplement au client le temps total requis? (Cela pourrait être risqué pour le client, qui ne connaît pas le coût à l'avance.)