我一直被告知,在软件开发开始时,最重要的事情之一就是需求收集。我还被告知,需求总是(大多数时候)在项目的开始和结束之间发生巨大的变化,要么是因为客户不太确定他想要什么(S),要么是因为(S)他改变了对某些功能的想法,或者是出于其他原因。
所以我有个问题:
如果我们知道在不久的将来,这些需求将会失效,我们为什么要花那么多时间收集详细的需求呢?
发布于 2017-11-08 23:44:44
因为并不是所有的需求都会改变,也不是所有的需求都会以相同的方式变化。你不会花一段时间在管理仓库的软件上,而只是突然决定重新设计软件来安排牙医的预约。
有些需求确实会产生很大的影响,比如更改运行在什么操作系统上,有时需求会改变,只需用文本框重写标签即可。然而,文本标签的重新措辞的可能性要大得多,而操作系统则不然。因此,让软件的许多方面得到思考和记录是有价值的。
当你为不同的人和领域构建大量的软件时,你会开始感觉到什么在空中,什么不是,你也会感觉到如何设计软件,使之在正确的地方变得灵活。
发布于 2017-11-09 02:45:37
如果我们知道在不久的将来,这些需求将会失效,我们为什么要花那么多时间收集详细的需求呢?
现在是停止收集需求的时候了,编写和演示代码成为沟通您对需求的理解的最有效的方式。如果你继续聚集超过这个点,你正在放慢速度。但是,如果到目前为止还没有收集到需求,那么也会放慢速度。
如果您做得对,则在收集和演示时,需求都会发生变化。为什么?因为这种变化是有效沟通的结果。
你应该学习(你的产品所有者也应该学习)。这意味着,当你是最愚蠢的时候,项目中的重点是在开始阶段。所以你不想让开始一成不变。停止收集需求,当它停止导致有意义的更改时。
有点像微波爆米花。当时间过得太长时,停下来。
发布于 2017-11-08 23:45:05
这其中的一个方面;如果您没有要求,为什么要编写任何代码呢?代码并不是为了取悦自己而存在。无论你写作的原因是什么,它都隐藏着一个要求,而且你越早明白什么是真正重要的,那么你就可以做出决定,让你成功。
你需要知道“做了”是什么样子,否则你只是随便乱晃,希望能意外地编写有用的软件。
https://softwareengineering.stackexchange.com/questions/360478
复制相似问题