【发布时间】:2010-09-20 08:44:37
【问题描述】:
是否有一种万无一失的方法来消除项目中涉及的所有风险?它是否会因您从事的项目类型(即:网站、客户端/服务器...)而有所不同?
【问题讨论】:
标签: risk-analysis
是否有一种万无一失的方法来消除项目中涉及的所有风险?它是否会因您从事的项目类型(即:网站、客户端/服务器...)而有所不同?
【问题讨论】:
标签: risk-analysis
绝对没有万无一失的方法。关于这个主题已经写了整本书。说到书,我推荐这本:
Steve McConnell 的软件项目生存指南(我知道,糟糕的图片)
【讨论】:
“[风险] 是否会因 [您] 从事的项目类型而有所不同?”
是的,当然。软件项目有几种普遍的风险(缺乏管理承诺、沟通不畅等),但风险“概况”因环境而异。例如,视频游戏项目的风险与企业供应链管理项目的风险大不相同。
对于企业发展,风险因管理支持和复杂程度、团队结构、项目规模、面向客户与内部、平台选择和集成程度而异,仅举几个主要领域。
风险不同的事实是“领域经验不足”是普遍风险的原因之一。
各种情况下的风险概况是学术论文的热门主题(进行调查,计算一些数字,获得出版信用......)。它们通常不会引人入胜,但在制定项目计划时非常值得回顾。
DeMarco 和 Lister 的《Waltzing with Bears》是一本很棒的关于风险管理的短书。
【讨论】:
没有万无一失的方法 - 最危险的风险是您无法预见的风险。
不幸的是,开发人员往往是乐观主义者,这使情况更加复杂。如果您向程序员询问“最可能的估计”,您往往会得到与您要求“最佳情况估计”相同的答案。根据我的经验,你能做的最好的事情就是找到优秀的人,并始终假设他们的估计值很低,即使在你要求他们不要乐观之后,即使在你告诉他们包括一些无法预料的弯路之后也是如此。
最重要的是,永远不要,永远,永远告诉你的程序员估计太高了,他需要降低它。如果你想从你的帽子里拿出一个估计,那就这样做,但要诚实地承认你是从你的帽子里拿出来的。当你强迫他降低它时假装“这是程序员的估计”是冒险和不诚实的。
我强烈推荐 Fred Brooks 的The Mythical Man-Month,以了解软件开发过程中的危险性。
【讨论】:
风险管理是一个巨大的话题,在 stackoverflow 上的答案中可能无法做到公正。你最好的选择是去买一本关于软件项目管理的好书(软件项目生存指南的推荐是一本很好的书),然后从那里开始。
【讨论】:
不要忘记任何发展的结局:
发布到生产中
有人可能会争辩说,任何与软件开发有关的风险都应根据该目标进行评估(成功地将软件发布到生产环境中,换句话说,“向客户提供服务”)。
这还不够,因为监控和维护该软件本身就是有风险的操作,但这是一个很好的指南。
例如,NASA(对于“发布”至关重要!)有一个Software Quality Models 定义。 IBM 在这个主题上有一个很棒的series of articles。
所有其他答案和书籍推荐都是正确的。
我只是想将项目的全部内容(“发布”)放在任何答案的中心,以便更好地建立自己对该项目“风险”的定义。
【讨论】:
经验。开发和发布软件的实践将使您能够以结构化分析无法做到的方式预测和降低风险。
【讨论】:
我非常喜欢这篇文章:Risk Analysis in Software Design(PDF),看看它,对风险分析有一个很好的概述,但我认为没有万无一失的方法,这真的取决于你的环境。 ..
【讨论】:
几个主要风险包括:程序员是否知道需要构建什么以及如何构建,他们是否可以一起工作?一些开发方法(包括敏捷和极端)通过尽快构建真正的东西,然后通过一次追求一个高优先级业务目标来发展一个工作系统来正面应对这些风险。
【讨论】: