代码可以是完美的,同时也完全没用。正确获取需求与确保正确实施需求同等重要。
如何验证您正在使用的代码中是否解决了用户的要求?
答案 0 :(得分:5)
您尽可能早地向用户展示。
他们所要求的可能不是实际他们想要的东西 - 发现它的最佳方式就是向他们展示你所拥有的东西,甚至在它完成之前。< / p>
编辑:是的,这也是回答StackOverflow问题的方法:)
答案 1 :(得分:1)
您编写的测试声明用户所需的行为存在。并且,正如在另一个答案中提到的那样,您可以及早地获得用户的反馈。
答案 2 :(得分:0)
即使您与用户交谈,并确保一切正确,用户也可能错了。他们不会知道,直到他们使用他们不想要他们要求的软件。最可靠的方法是做一些原型的痛处,让用户在编写代码之前“试一试”。你可以试试像paper prototyping
这样的东西答案 3 :(得分:0)
如何验证您正在使用的代码中是否解决了用户的要求?
对于以此形式提出的问题,答案是“你不能”。
最好的方法是从最初的几天开始与用户合作,向他们展示原型并不断收集他们的反馈。
即便如此,在路的尽头,可能没有任何类似于最初讨论和同意的内容。
答案 4 :(得分:0)
他们仍然不会高兴,但你会尽你所能。
他们签署的文件中没有的任何功能都可以被考虑更改请求,您可以额外收费。让他们签署您展示的所有内容,以限制您的责任
答案 5 :(得分:0)
通过使用通常控制实现和要求之间的对齐的开发方法。 对我来说,最好的方法是让“专家客户”尽可能经常地以交互方式验证和测试...... 如果你不这样做,你就有可能像你说的那样,拥有一个非常漂亮的柔软无用的......
答案 6 :(得分:0)
您编写单元测试,期望得到支持要求的答案。如果要求是对一组数字求和,则写入
testSumInvoice()
{
// create invoice of 3 lines of $1, $2, $3 respectively
Invoice myInvoice = new Invoice().addLine(1).addLine(2).addLine(3);
assertTrue(myInvoice.getSum(), 6);
}
如果单元测试失败,则由于某些其他要求,您的代码错误或可能已更改。现在您知道需要解决的两个案例之间存在冲突。它可以像更新测试代码一样简单,也可以像使用新发现的边缘情况回到客户那样复杂,但不满足要求。
编写单元测试的美妙之处在于它迫使您了解程序应该做什么,这样如果您在编写单元测试时遇到困难,您应该重新审视您的要求。
答案 7 :(得分:0)
如果可能,请让您的用户编写验收测试。这将有助于他们思考应用程序正常工作的意义。将开发分解为相互依赖的小增量。像其他人所说的那样,尽早(通常)将这些暴露给客户,让他们使用它,但也让他们进行验收测试。这些也应与被测代码一起开发。通过测试并不意味着您已完全满足要求(测试本身可能缺乏),但它会让您和客户对您走在正确的轨道上充满信心。
这只是开发代码时大量客户互动得到回报的一个例子。最充分保证您正在开发正确代码的方法是让客户参与开发工作。
答案 8 :(得分:0)
你可以尝试角色;一组使用该系统的示例用户。
量化他们的需求,想要并制定对他们来说重要的场景;以及他们需要完成的软件。
最重要的是 - 确保满足用户(角色的)目标。
这是我写的post,它更详细地解释了它。
答案 9 :(得分:0)
我真的不同意代码可以完美......但这不是真正的问题。您需要在任何设计或编码完成之前从用户那里找到他们想要的东西 - 询问他们'成功是什么样的','您对系统完成时的期望','您希望如何使用它? '...和视频录制响应,思维导图或线框图,然后对其进行审核,以确保您捕获了最重要的方面。您可以使用这些项目来验证迭代交付......期望用户随着时间的推移改变他们的想法/需求,一旦他们“掌握在手中”(IKIWISI - 我在看到它时就知道了)......以同样的方式记录任何变更请求。
答案 10 :(得分:0)
AlbertoPL是对的:“大部分时间甚至用户都不知道他们想要什么!”
如果他们知道,他们会考虑解决方案并指定解决方案的各个方面,而不仅仅是告诉问题。
如果他们告诉你一个问题,他们可能会遇到其他问题而不会意识到这些问题与共同原因或共同解决方案有关。
因此,在实施模型和原型之前,请先观察客户已有的内容或员工手工操作的内容。