Rya*_*son 29 requirements-management
您如何进行需求收集阶段?有没有人有一套很好的指导方针或提示可供遵循?问利益相关者有哪些好问题?
我目前正在开发一个新项目,还有很多未知数.我正在提出一系列问题要求利益相关者.但是,我无法帮助,但感到我错过了一些东西或忘记提出一个关键问题.
Dil*_*e-O 20
看下面的强制性漫画......
总的来说,我尝试了解我的客户/客户尝试使用他们想要构建的应用程序模拟的业务模型.我们正在建造一个美化的表格处理器吗?我们是否在单个应用程序中从多个源检索数据以节省时间?我们正在进行某种整合吗?
一旦建立了一般业务模型,我就会转到应用程序的"必须"和"必须",以指示我可以检索哪些数据,谁可以执行哪些功能等等.
通常,如果您可以让客户解释他们的模型或工作流程,您可以从那里移动并找到其他关键问题.
我总是以某种形式提出的一个问题是:"做X时,你必须做的最棘手/最烦人的事情是什么.通常,答案会显示出你必须实施的最疯狂的业务/数据规则.
希望这可以帮助!

Chr*_*rch 20
你几乎肯定会错过一些东西.可能很多事情.别担心,没关系.即使你记得所有事情并涵盖了所有基础,利益相关者也无法在没有任何参考点的情况下为您提供非常好的,明确的要求.做这种事情的最好方法是现在就从他们那里得到你能得到的东西,然后拿出来并给他们一些反应.它可以是纸质原型,模型,软件版本0.1,等等.然后他们可以开始告诉你他们真正想要的是什么.
Qui*_*ome 12
史蒂夫·叶格(Steve Yegge)说话很有趣,但是在弄清楚其他人的要求是什么的时候还有钱,所以我会用一点点盐来拿他的文章.
由于沟通的方式,需求收集非常艰难.它是一个四步过程,每一步都是有损的.
人类通过他们可爱的瑕疵以令人担忧的频率惨遭失败.
敏捷在促进迭代开发方面做得很好.将早期版本发布到客户端对于确定哪些功能最重要(0.1 - 0.5 ish中包含哪些功能)很重要,有助于使您在应用程序的工作方式上保持正确的轨道并快速识别隐藏的功能你会想念的.
两个主要问题场景是比例的两端:
Yegge很好地指出,域专家对于产生良好的要求至关重要,因为他们了解业务并且已经在其中工作.他们可以帮助确定客户的核心愿望,并帮助解释他们的员工如何使用该系统以及对员工重要的事情.替代方案和补充包括尝试自己完成工作以进入思维模式或偶尔在现场安排客户工作人员,尽管后者不太可能发生.
特色坑是另一面,大多数都是失败的政府IT项目.太多,太快,没有足够的思考或应用现实主义(但你认为他们只有大约四年的时间让自己感觉很重要?).这里的目标是找出客户真正想要的东西.只要您努力使核心组件正确,高效且无错误的客户端通常可以容忍丢失的功能,只要它们最终到达,这些功能会在以后的货件中到达.这是迭代开发真正有用的地方.
请记住将客户关于程序将会是什么以及他们希望程序实现的想法分开.一些客户可以通过以应用程序功能的形式传达他们的需求来制造混淆,这些功能可能很难想到,或者通过他们认为需要的更简单的功能而变得多余.虽然我并不主张称客户为白痴或不听他们,但我觉得值得永远问他们为什么要特定功能才能达到其潜在目的.
请记住,在任何一种情况下,根除最快捷的途径来满足客户的核心需求并将您置于一个既能从关系中获利的场景也势在必行.
小智 8
哇,从哪里开始?
首先,有一些知识需要对某些项目进行分析,但这实际上取决于你为谁做的建设.换句话说,如果您正在为财富100强企业修改企业应用程序,构建iPhone应用程序或向个人网页添加功能,那么它将产生重大影响.
其次,有不同的要求.
第三,最有效地收集需求的方法,然后获得对它们的反馈(你会做什么,对吧?)就是使用模型.用户案例和用户案例是用户需要执行的操作的模型.流程模型是需要发生的事情的另一个版本.系统图只是程序不同部分如何交互的另一个模型.良好的数据建模将定义业务概念,并向您显示程序中发生的输入,输出和更改.模型(并且比我列出的更多)确实是您列出的关注点的关键.一些好的模型将捕捉需求,并从模型中确定您的需求.
第四,获得反馈.我知道我已经提到了这一点,但是你不会在第一时间把事情做好,所以要回答客户的需求.
尽管我很欣赏要求以及驱动它们的模型,但用户通常不了解所有要求的后果.持续的沟通以及审查和反馈的机会将使用户更好地了解您所提供的内容.此外,他们将根据他们所看到的内容完善他们的理解.除非您为政府工作,否则迭代和/或原型是有帮助的.
首先在开始编码之前收集要求.根据您的项目生命周期,您可以在收集设计时开始设计,但如果没有它们,您就不应该开始编码.
要求是一套精心编写的文档,可以保护客户和您自己.永远别忘了.如果没有要求,那么它没有付款(因此它需要一个正式的变更请求),如果它存在则必须实施并且必须正常工作.
要求必须是可测试的.如果无法测试要求,则不是必需的.这意味着,"系统"
要求必须具体.这意味着声明"系统用户界面应易于使用"并不是一个正确的要求.
为了实际"收集"您需要的要求,首先要确保您了解业务模型.客户会用自己的语言告诉你他们想要什么,理解它并在正确的环境中解释它是你的工作.
在制定要求时与客户会面.用您自己的语言向客户描述它们,并确保您和客户在要求中具有相同的概念.
要求需要简洁,可测试的示例,但要跟踪会议,图表,疑问中出现的所有其他事情,并尝试保留每次会议的记录.
如果您可以使用增量生命周期,那么您将能够改善一些不良收集的需求.