Questions tagged «requirements»

对软件项目的需求进行启发,分析,规范,验证和确认。

14
解决方案应该是尽可能通用的还是尽可能具体的?
假设我有一个具有“类型”属性的实体。可能有20多种可能的类型。 现在,我被要求实现一些允许从A-> B更改类型的方法,这是唯一的用例。 那么,我应该实现一些允许对类型进行任意更改的方法吗,只要它们是有效的类型?或者我应该只允许它根据要求从A-> B更改而拒绝其他任何类型的更改,例如B-> A或A-> C? 我从双方都可以看到优缺点,在将来出现类似要求的情况下,通用解决方案意味着工作量会减少,但这也意味着出错的可能性更大(尽管我们100%控制着调用方点)。 一种特定的解决方案不太容易出错,但是如果出现类似的要求,将来需要做更多的工作。 我一直在听到,优秀的开发人员应该尝试预期变化并设计系统,以便将来轻松扩展,这听起来像是通用解决方案? 编辑: 在我不太具体的示例中添加更多详细信息:在这种情况下,“通用”解决方案比“特定”解决方案需要的工作更少,因为特定解决方案需要对旧类型和新类型进行验证,而通用解决方案只需要验证新类型。


15
开发人员应如何拒绝不可能的要求?[关闭]
这是我面临的问题: 来自项目经理的报价: 嘿Spark,我正在为您分配开发可用于许多不同iOS应用程序的框架的任务。要求如下: 它应该能够检测用于操纵UI的拇指或手指的粗细。 有了这些信息,UI的所有元素都应该自动排列和调整大小。 对于较大的拇指,应将元素排列在靠近屏幕中心的位置。 对于较小的拇指,应将元素布置在屏幕的角落附近。 对于较大的拇指,所有字体都应较小。(在这种情况下,我们假设是成年人。) 对于较小的拇指,所有字体都应较大。(在这种情况下,我们假设年龄较小。) 摘要: 该框架对于以编程方式创建用户友好的用户界面是必需的。框架的开发方式应使我们可以根据需要用于许多项目,因此它也必须对开发人员非常友好。 我是承担此任务的开发人员,所以我的问题如下: 我怎么能解释这些要求有点荒谬? 我该如何解释,集中精力开发实际项目会更好? 我怎么能解释,即使这是可能的,我也不建议开发这样的东西? 我如何礼貌,温和,礼貌地对这个项目说不? 我如何解释,即使对于具有3年经验的开发人员,这也可能无法实现?

12
如何用敏捷方法开发出色的软件?
客户满意度的卡诺模型定义了不同类别的产品功能。其中有 必须具备的质量:如果未实施这些质量,则客户将不会接受该产品。 吸引人的品质(愉悦):客户通常一开始并不期望的功能,但被发现时会引起兴奋和愉悦。 有吸引力的品质显然具有很大的商业价值。当使用不到5.000欧元的菲亚特汽车可以满足所有必不可少的条件时,他们会让人们以500.000的价格购买法拉利。 但是,我知道所有敏捷过程都强烈赞成必须满足的要求。这些总是获得最高优先级。似乎甚至没有在敏捷中获得吸引人的品质的地方。 我相信敏捷流程在软件开发中非常有用。但是,如何将它们应用于创建令人愉悦的高质量软件产品,而不仅仅是满足勉强满足最低要求的最低要求? 附录:正如前两个答案所指出的那样,将必须满足的要求给予最高优先级确实是有意义的。但是我们(和客户)是否真的总是事先知道什么是必须满足的要求。我有几次这样的经验,即一开始就被高度重视的要求后来变得不那么重要了,即使不是毫无用处的。因此,我认为不应盲目地将注意力集中在必须满足的要求上。

8
功能或非功能需求?
我想知道功能或非功能需求。我发现这些术语有许多不同的定义,我无法将某些要求分配给适当的类别。 我想知道与某些操作无关或具有一些其他条件的需求,例如: 在所选设备的列表上,可以重复该设备。 数据库必须包含至少100个项目 某些值的货币必须为美元。 设备的名称和功耗值必须以瓦为单位。 这些需求是功能性的还是非功能性的?


11
哄骗商务人士?
哪种方法似乎最能哄骗非技术业务人员的需求? 我正在与一个团队一起努力为项目制定规格。每次我们见面时,都达到下次会议的期望,我们要求业务人员重新提出他们的要求。他们通常会这样回答:“好吧,您认为你们可以提出一个原型,以便我们下周看到我们喜欢的东西吗……您知道,因为它是一个原型,所以没有任何数据或任何东西,只有功能。”这是一个耗时6个月的项目,因此这显然是不可行的(我们将不得不开发整个产品!),而且,如果没有某种规范,我们甚至不知道要原型制作什么。坦率地说,我认为像大多数人一样,他们对自己想要的东西有所了解,只是他们没有以收集真正需求所必需的集中方式进行思考。除了简单地告诉他们,“给我们您想要的东西,或者我们不能/不会做任何工作”(我们希望他们对结果满意),有没有办法帮助他们决定他们想要什么?例如,我们可以告诉他们: “绘制一些屏幕(在Powerpoint中,在餐巾纸上,等等),显示想要的用户界面以及所有要查看的数据,并在页边空白处描述功能。由此,我们将完善它,并根据这组行为要求构建后端。” 要么 “不必担心它现在的外观(数字1会挂断)。只要给我们列出您想要的有关程序跟踪的每件事的所有数据的列表。因此,对于“客户”,您可以列出:名称,地址,电话号码,订单等。它不一定是完美的数据库结构,但是我们可以从中得出一些信息,并了解您的需求” 这些替代方法中的任何一种都可以使业务人员专注于他们想要的东西是否有意义?您在行动中是否有其他选择?

5
如何处理共享功能的故事
我有两个故事(我知道他们缺少福利部分) 作为信用管理用户,我可以查看Office的当前和以前的工资差异。 作为信用管理用户,我可以收到一封电子邮件,其中包含Office当前和以前的工资差异的PDF。 两者是相关的,因为它们将具有相同的查询/过滤条件。唯一的区别是,在“查看”故事中,结果显示给用户,在“电子邮件”故事中,结果被写入PDF,然后通过电子邮件发送给用户。 我正在努力将这两个故事的共同方面分开,或者我什至应该这样做。 例如,它们都将具有相同的查询,它们对结果的处理方式是不同的。 我是否应该将查询分为另一个纯技术的故事? PDF的创建和电子邮件的发送应该脱机完成,这是否应该成为技术故事? 我可以看到将这两个故事分解为2个功能故事和2个技术故事。 作为系统,我可以计算Office当前和以前的薪资差异。 作为信用管理用户,我可以查看Office当前和以前的薪资差异。 作为系统,我可以创建一个Office当前和以前薪资差异的PDF文档。 作为信用管理用户,我可以要求接收一封电子邮件,其中包含有关Office当前和以前薪资差异的PDF。 我一直回想的问题是,这四个故事不是独立的,也不是“切蛋糕”。 所以我不太确定如何处理这两个问题。

8
“ x和y之间”应该交换吗?
在我的应用程序中,有一些预定义的表达式模板可用于过滤数据。其中之一是“ between x and y”。一位质量检查工程师声称其定义存在缺陷,因为“ between 100 and 200”与“ ”给出的结果不同between 200 and 100。该表达式在内部转换为“ value >= x and value <= y”,因此,当第二个边界低于第一个边界时,显然没有结果。我检查了SQL是否存在相同的行为-“ between x and y”假定y> = x或没有结果。这意味着,至少在SQL中,运算符不是可交换的。 那么,质量保证“ between x and y”应可交换吗?

6
建议IT需求是开发人员的工作吗?
我是唯一一个即将结束的Web应用程序开发人员。现在,我们正在研究使其在大约几个月的时间内上线。 这是非IT公司的Web应用程序。尽管他们有自己的内部IT团队,但是他们已经问过我对实时服务器的硬件要求是什么。RAM,32位或64位。 内部IT团队不应该这样做吗?或者由于我是唯一从事该项目的人员,所以我有责任让他们知道可能影响项目性能的任何特定硬件要求吗? 我问这个问题的原因是,我以前没有做过。过去,我一直被赋予一台服务器,并要求在其上部署应用程序。我从不担心服务器配置等。

7
非技术人员如何学习为小型项目编写规范?
非技术人员如何学习编写小型项目的规范? 我的一个朋友正在尝试将统计项目的某些开发外包。 特别是,他在excel中做了很多工作,并且希望将脚本的创建工作外包出去,以手工完成现在的工作。 但是,我的朋友是非技术性的。他不擅长编写技术规范。 当他确实编写规范时,将按照您描述在excel中做某事的方式编写(转到此单元格,然后将值复制到该单元格)。它也太冗长,并且多次进行示例。我不确定他是否恰当地描述了极端情况。 他外包的第一个项目失败了。我认为他过多地描述了一些细节,但未充分说明极端情况。他和/或他雇用的编码人员没有仔细考虑并提出适当的问题。我不确定。我与他进行即时通讯,花了半个小时才找到一个描述,该描述本该花了五分钟或更短的时间来描述。最后,我为他编写了脚本,但没有检查为什么他的编码器处理失败。 他已向我寻求帮助。但是,我拒绝参与,因为按照他的规范并将其转换为明确的要求比执行明确的规范要多十倍的工作量。 他学习的正确方法是什么?他有可用的资源吗?他有什么方法可以和编码员一起从小型低压实践项目中学习? 他的大部分脚本都是面向统计和数据处理的。例如,使用此列并对其求平均值。在这种情况下删除这些行。因此,挑战与指定网络应用程序不同。

8
政府项目对敏捷方法的挑战
前面的敏捷讨论在这里有很好的答案,指出了对于在软件开发中成功实施敏捷方法学至关重要的因素。大多数要点是典型的组织和管理挑战,但我要担心的一点是,在整个过程中必须让客户参与。 客户是您无法实际控制的一件事,也许您的商业模式使您适应政府签约的工作,例如,严格的合同迫使公司必须: 完全按照要求提供X功能 功能请求将被扔在墙上,不要打扰我们,我们不想听到它。 客户心中没有优先功能的概念,它们都很重要,或者我们不会要求它们。 无论超支或截止日期如何,该项目的成本都不会超过Y,且不得低于Y。 完全交付所有工作的绝对,严格,最终和不可协商的截止日期。 我们以前从未与这样的客户合作过,但是该项目的资金实在太可惜了。我们需要这项工作。 我来到这里工作是在HARD上更改流程,以朝着敏捷开发方向发展,在这里,我不知道如何协调该项目适合我们新流程的位置。我从来没有像现在这样拥有过开放式的手动管理能力,这使我相信可以领导开发团队并沿着这条道路前进,而现在我们在这里,我不能诚实地告诉自己,这个项目将真正在敏捷的方式。我觉得管理层相信我可以带领这条路走下去,并且让他们失望,因为我们现在所处的这种情况非常明确地要求瀑布。恐怕如果我现在回溯,我可能会失去他们的信任。 其他答案,例如这里所说的,对于这种客户来说,敏捷是不可能的,您同意吗?你们有没有遇到过类似的情况并使它工作?您实施了哪些策略来使敏捷成功实现?

10
创建需求文档的正确方法是什么?
现在,我的主管正在使用错误跟踪软件为我创建需求文档/规范。对我来说,这似乎是一个可怕的主意,所有要求都在这些小票上,我必须单击该愚蠢的网络表单才能了解这些要求。什么是针对需求/软件规格的理智的软件解决方案? 明确地说,我正在构建具有许多功能的大型软件组件,并且这些功能已在此BugTracking软件中阐明。

5
最终用户如何应对这种不幸的非假设情况?
我在一家中型公司工作,但IT力量很小。 去年(2011年),我编写了一个受大量最终用户欢迎的应用程序。去年年底,我们赶到了最后期限,但最终并未将某些功能(从现在开始我称为funcA)添加到应用程序中。因此,此应用程序自2011年底以来一直在现场/生产中运行,我可能会添加,没有任何问题。 昨天,一群最终用户开始抱怨应用程序中从未使用过的funcA不再起作用。我们在这家公司的工作重点是,如果某个应用程序被破坏,则必须在确定优先级的项目之前先对其进行修复。 我已经比较了代码和查询,自2011年以来没有区别,这就是proofA。然后,我能够让一位最终用户承认它从未使用过proofB,但是从那以后,那个最终用户又回过头来说它以前已经在工作……我相信最终用户的群体已经吸收了她。我还查看了该项目的注释,该注释包含有关该项目的要求和每日更新,其中特别指出“ proofC由于时间限制而未实现”。 我已经与其中许多人进行了交谈,我看到它们可能会在哪里混淆,因为它们与编程背景相距甚远,但是我也知道它们足够聪明,可以在小组中采取行动,从而绕过项目优先顺序以获取他们想要使他们的工作更轻松的功能。 最糟糕的部分是,即使没有代码或查询的更改,现在团队思考开始起作用,而我的老板和IT主管实际上开始相信他们。就检查逻辑状态而言,它非常干and,直到1 = 1时,funcA将不起作用。 因此,这是对方案的描述的结尾,但是由于此原因,我试图在性能指标上不加赘述,这实际上将使我不得不解决不存在的生产问题,而该问题很可能会接管1个月。

3
编写要求时应使用和必须使用的最佳实践
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 6年前。 我之前发送了一封电子邮件,提醒我们的开发人员,在派生的需求中使用“应”一词不应追随您的功能需求。在编写功能需求时,单词“必须”用于描述派生的需求必须执行的功能。 派生=系统应为功能正常=系统必须执行要求 它是由我们的一位前辈寄回的,这是错误的,应该在所有要求中使用。 我在这里错了吗?应该在所有要求中使用Shall。我还找不到任何东西可以支持它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.