什么是好的软件开发计划?

时间:2009-08-17 13:02:40

标签: project-management project-planning

在浏览SO的答案时,我发现了一些更常见的软件开发管理误解之一:“[软件开发]计划是对您需要进行的所有活动的合理详细描述”

因此问题是:什么是好的软件开发计划?它可以归结为工作分解结构;对于软件开发计划来说,WBS是最重要的事情吗?

5 个答案:

答案 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

  

软件开发计划是一个   全面的,复合的神器   收集所需的所有信息   管理项目。它附上一个   在此期间开发的工件数量   初始阶段并得到维护   整个项目。

软件开发计划包含

  1. Problem Resolution Plan
  2. Product Acceptance Plan
  3. Measurement Plan
  4. Risk Management Plan
  5. Quality Assurance Plan
  6. Guidelines: Software Development Plan

答案 3 :(得分:5)

软件开发计划是一种特定类型的项目计划。虽然WBS很重要,但它只是表面上看。

全面的项目计划应该有:

  1. 范围计划(包含WBS)
  2. 日程安排计划
  3. 费用计划
  4. 质量计划
  5. 人员配备计划
  6. 沟通计划
  7. 风险计划
  8. 采购计划。
  9. 有关这些计划的更多信息,请参阅

    The project Management Body of Knowledge.

    有关更具体的指导,请参阅Code Complete 2

答案 4 :(得分:0)

我认为在软件开发项目中应该分为两部分

  1. 软件管理
  2. 软件开发
  3. 在项目管理中,可以涵盖所有额外的事情,如公司目标,项目规划,项目监控,估算,时间表预订,缺陷跟踪等。

    在项目开发中,项目生命周期将像完整瀑布一样维持