我相信可以减少不良要求。但是我也相信,当您尽最大努力解释它们为什么不好并且仍然想要它们时,您就表示同意并做好工作。
例如,有些人想要的需求与应用程序已经完成的工作互斥。如果我这样做,那么将100%保证会破裂。因此,我将需求发回给他们,告诉他们这将破坏我们已经制定的另一条业务规则,他们是否也想更改此规则?通常,提出特定要求的小组无法访问应用程序其余部分可能做什么的全局视图。在大多数情况下,当我向其中的一位发回邮件时,客户已经意识到初始规则更为关键,因此决定他们不希望这样做是不值得的。当他们决定进行更改时,他们在与提出最初要求的人员进行了协商之后才进行更改。
有时,仅问一些澄清问题就会使他们看到问题并不像他们想象的那么简单。有时您想问他们为什么想要一些东西并真正满足推动变革的需求。了解了这一点之后,通常会更容易找到适合您作为开发人员并满足其需求的替代解决方案。如果您能以比原始建议更好地满足他们的需求的方式提出该解决方案,那么您就大大提高了接受更改的机会。
有时,当一项更改会在设计的基本层次上造成严重破坏时,只需给他们提供更改所需的新小时数估计就足以将其关闭。如果您将其与风险评估相结合,指出可能将哪些重要功能引入新的错误中,并告诉他们这将需要3个人花费6周的专心工作,突然间,它不再那么重要了。
但是有时您告诉他们这不是一个好主意,为什么呢,他们仍然说:“太糟糕了,我们需要它。” 您赢了一些而输了一些,有时业务需求确实发生了变化,应用程序必须适应这一点。最终确定该决定后,您就不再需要质疑您在做什么,也没有时间继续做下去了。如果您已记录了反对意见,那么当预算超出预算并引起新的更令人兴奋的错误时,您个人仍然应该处于一个不错的位置。当您建立起对此类事情的正确记录时,他们甚至可能更愿意在下一次听您讲话。
赢得许多讨论的关键(没人会赢得所有讨论)首先要建立一个跟踪记录,以了解您在说什么。接下来,发送一份书面文件,陈述您所关注的问题(许多管理人员面临风险,他们很可能不希望某人后来拥有证明其错误的文件,因此他们会更加注意您的书面内容),最后确保他们了解进行更改的所有成本(不仅是数小时,还包括安全风险,引入新的错误,缺少截止日期等)。变革不是免费的,他们需要了解这一点。下一个关键是像成年人一样,而不是像个抱怨的孩子那样做(“但是我不想使用...,因为我不喜欢它”)。提出一个不这样做的商业案例,您将在回退糟糕的需求方面走得更远。