Je crois qu'il faut repousser les mauvaises exigences. Mais je crois aussi que lorsque vous avez donné votre meilleur coup pour expliquer pourquoi ils sont mauvais et qu'ils en veulent toujours, alors vous êtes d'accord et faites votre travail.
Par exemple, j'ai eu des gens qui veulent des exigences qui s'excluent mutuellement de quelque chose que l'application fait déjà. Si je fais cela, alors cela sera garanti à 100%. Donc, je renvoie l'exigence et leur dis que cela va enfreindre cette autre règle commerciale que nous avons déjà en place et veulent-ils également changer cette règle? Souvent, le petit groupe qui présente une exigence particulière n'a pas accès à une vue d'ensemble de ce que le reste de l'application peut faire. La plupart du temps, lorsque j'en ai renvoyé un, le client s'est rendu compte que la règle initiale était plus critique et a décidé que le changement qu'il souhaitait n'en valait pas la peine. Quand ils ont décidé de faire le changement, ils l'ont fait après avoir consulté les personnes qui ont poussé l'exigence initiale.
Parfois, le simple fait de poser des questions de clarification leur fera voir que le problème n'est pas aussi simple qu'ils le pensaient. Parfois, vous voulez demander pourquoi ils veulent quelque chose et répondre au véritable besoin qui est à l'origine du changement. Une fois que vous comprenez cela, il est souvent plus facile de voir une solution alternative qui fonctionne pour vous en tant que développeur et répond à leurs besoins. Si vous pouvez présenter cette solution en termes de façon dont elle répondra mieux à leurs besoins que la suggestion d'origine, vous avez considérablement amélioré vos chances de voir votre changement accepté.
Parfois, lorsqu'un changement va créer des ravages à un niveau de base dans votre conception, il suffit de leur donner la nouvelle estimation des heures que le changement prendra pour le désactiver. Si vous combinez cela avec une évaluation des risques qui indique dans quelle fonctionnalité critique vous pourriez introduire de nouveaux bogues en leur disant que cela prendra 6 semaines d'efforts dédiés de 3 personnes, tout à coup ce n'est plus si important.
Mais parfois, vous leur dites que ce n'est pas une bonne idée et pourquoi et ils disent toujours: "Dommage que nous en ayons besoin." Vous en gagnez et vous en perdez et parfois les besoins de l'entreprise ont vraiment changé et l'application doit s'adapter à cela. Une fois la décision finalisée, ce n'est plus le moment de remettre en question ce que vous faites et le temps de continuer à le faire. Si vous avez documenté vos objections, alors vous devriez toujours être bien placé quand il dépasse le budget et provoque de nouveaux bugs plus excitants. Et ils pourraient même être plus disposés à vous écouter la prochaine fois lorsque vous aurez accumulé des antécédents sur ce genre de choses.
La clé pour gagner un grand nombre de ces discussions (personne ne les gagne toutes) est d'abord de se constituer un historique pour savoir de quoi vous parlez. Envoyez ensuite un document écrit qui énonce vos préoccupations (de nombreux gestionnaires sont défavorables au risque, ils sont plus susceptibles de ne pas vouloir que quelqu'un ait un document qui leur prouve le contraire plus tard, donc ils accordent plus d'attention à ce que vous mettez par écrit) et enfin pour s'assurer qu'ils comprennent tous les coûts (pas seulement les heures, mais les risques de sécurité, l'introduction de nouveaux bogues, les délais manquants, etc.) pour effectuer le changement. Le changement n'est pas gratuit et ils doivent le comprendre. La clé suivante est de le faire comme un adulte et non comme un enfant pleurnichard ("mais je ne veux pas l'utiliser ... parce que je n'aime pas ça"). Faites une analyse de rentabilisation pour ne pas le faire et vous obtiendrez beaucoup plus loin en repoussant une mauvaise exigence.