在浏览SO的答案时,我发现了一些更常见的软件开发管理误解之一:“[软件开发]计划是对您需要进行的所有活动的合理详细描述”
因此问题是:什么是好的软件开发计划?它可以归结为工作分解结构;对于软件开发计划来说,WBS是最重要的事情吗?
答案 0 :(得分:42)
软件开发计划是一个计划,用于开发您打算开发和交付的软件。
虽然我知道你们年轻的鞭挞人都认为军队是一群白痴,但事实上他们在这方面有很多经验,而且他们与很多商业公司不同,他们会考虑一下必须要做的事情。 。这包括一些非常痛苦的课程,需要考虑的事情,由于项目失败,因为那些事情没有被考虑。
我将在2010年4月10日对此进行更新。我之前列出的DOD-STD-2167A信号源已经变暗,因此有必要指向MIL-STD-498。不幸的是,MIL-STD-498于1998年被取消,国防部现在希望承包商使用IEEE / EIA-12207。然而,IEEE标准并不像啤酒那样免费。
有关软件开发计划大纲,请参阅DI-IPSC-81427A。
当你阅读需要解决的事情清单时,你可能会得到一些印象,其中一些段落,如海军法规,用血液写成。这种印象有一个原因:他们是。项目失败是因为他们没有及时解决这些问题。
另请参阅http://sepo.spawar.navy.mil/SW_Standards.html:您可以下载带有标准和所有数据项描述(各个文档的规范)的.zip。
(是的,我知道美国国防部已经放弃了DOD-STD-2167A,转而支持IEEE商业标准。但是,IEEE会对你的左肾进行手臂,腿和移植权利标准.DOD标准在啤酒中是免费的。)
修改强> 修复了第一个链接
答案 1 :(得分:19)
“[软件开发]计划是对您需要进行的所有活动的合理详细描述”。
通常不存在。
如果您确实已了解完全的所有要求,并且您已完全理解完全所有技术问题,那么您可以编写此类文档。
但是,如果您正在做一些 new - 用户尚未安装的东西 - 或者您正在使用任何新技术,那么您甚至无法提供“合理”详细信息描述你需要进行的活动。
您可以提供概述,其中将概述您需要执行的操作。但是,当您探索需求时,用户将发现事物,学习并改变他们的想法。修改计划。当您探索该技术时,开发人员将发现事物,学习并修改计划。
这不是那么难 - 人们总是这么做。
该计划的受众是管理层。经理们希望对所有活动进行“合理”详细的描述。随着用户和开发人员了解需求和技术,细节会发生变化。这使得“合理”测试非常非常难以满足。当细节不断变化时,什么程度的细节是“合理的”?
计划的变更可以(并且确实)每天到达。大多数经理不希望每天对计划进行更改。所以太多的细节变得“不合理”。为了创建一个不经常变化的计划,该计划实际上需要是活动的摘要。 “软件开发计划”唯一可行的版本是在向用户发布的功能方面定义的一系列目标 - 而不是活动方面。
简而言之,人们总是严重。在30多年的软件开发中(大部分是作为军事分包商),有一种关于计划的幻想,这种幻想根本不是由事实所产生的。项目取消了“合理详细”的计划,过于详细的计划,根本没有计划。
实际上,计划通常是取消的主要原因。为什么?通过“相当详细”的活动清单,任何学习都意味着计划错误。由于计划偏离实际执行,因此必定是错误的。抛硬币。如果您认为执行错误,请取消项目不遵循计划。如果您认为该计划有误,请修改计划以匹配现实世界。计划越详细,它看起来越“正确”,越有可能认为执行是错误的。
底线。
软件开发计划可以是一个幻想文档,作为“瀑布式”开发方法的一部分编写,其中所有类型的事物都是预先过度指定的,并且随着团队的进展而变化(从学习开始)将受到惩罚。
OR
软件开发计划是Agile burndown chart,只显示要完成的冲刺。 “合理”的细节水平实际上相当低 - 这只是一个总结。并且它在每次sprint回顾期间都会发生变化。
答案 2 :(得分:7)
Artifact: Software Development Plan
软件开发计划是一个 全面的,复合的神器 收集所需的所有信息 管理项目。它附上一个 在此期间开发的工件数量 初始阶段并得到维护 整个项目。
软件开发计划包含
答案 3 :(得分:5)
软件开发计划是一种特定类型的项目计划。虽然WBS很重要,但它只是表面上看。
全面的项目计划应该有:
有关这些计划的更多信息,请参阅
The project Management Body of Knowledge.
有关更具体的指导,请参阅Code Complete 2。
答案 4 :(得分:0)
我认为在软件开发项目中应该分为两部分
在项目管理中,可以涵盖所有额外的事情,如公司目标,项目规划,项目监控,估算,时间表预订,缺陷跟踪等。
在项目开发中,项目生命周期将像完整瀑布一样维持