专栏首页光变成功项目管理的七条原则和三十个秘诀

成功项目管理的七条原则和三十个秘诀

美国著名软件工程专家勃姆(B.W.Boehm)在总结软件工程准则和信条的基础上,于1983年提出软件…

美国著名软件工程专家勃姆(B.W.Boehm)在总结软件工程准则和信条的基础上,于1983年提出软件工程的7条基本原则,也是软件项目管理应该遵循原则。 勃姆认为,这7条原则是确保软件产品质量和开发效率的原理的最小集合,相互独立但结合得相当完备。

用分阶段的生命周期计划严格管理。

统计表明,不成功的软件项目中约有一半左右源自计划不周。本原则意味着,应该把软件生命周期划分成若干阶段,相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。 勃姆认为,在软件的整个生命周期中应该制定并严格执行6类计划,即项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。 不同层次的管理人员必须严格按照计划各尽其职地管理软件开发与维护工作,绝不能受顾客或上级人员的影响而擅自背离预定计划。

坚持进行阶段评审。

软件的质量保证工作不能等到编码阶段结束之后再加以实施,其理由为:

  • 第一,大部分错误始于编码之前;
  • 第二,错误的发现与修改时间越晚,需要付出的代价就越高。因此,本原则意味着,在软件开发的每个阶段应该进行严格的评审,以便尽早发现软件开发过程中的错误。

实行严格的产品控制。

软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价;但是软件开发过程中改变需求又在所难免, 基于外部环境的变化而出现改变用户需求的情况是一种客观需要,而且迅速应对客户的需求变更是顾客本位的内涵之一。 在这种情况下,只能依靠科学的产品控制技术来顺应这种要求。当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制, 其中主要是实行基准配置管理。所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 基准配置管理也称为变更控制:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。 避免开发人员对软件随意进行修改。

采用现代程序设计技术。

从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术。从60年代末提出的结构程序设计技术到最近的面向对象技术, 人们不断创造先进的程序设计技术。实践表明,采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。

结果应能清楚地审查。

与其他有形产品不同,软件是看不见摸不着的逻辑产品。软件开发人员的工作进展情况可见性差,难以准确度量, 从而使得软件产品的开发过程比一般产品的开发过程更难以评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限, 规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。

开发小组的人员应该少而精。

该原则意味着,软件开发项目的组成人员的素质应该好,而人数则不宜过多。开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。 素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件。 此外,随着开发小组人员数目的增加,因为交流问题而造成的沟通成本也急剧增加。因此,构建和维持少而精的开发团队甚至标杆团队是软件工程的一条基本原理。

承认不断改进软件工程实践的必要性。

遵循上述6条基本原则,就能够按照当代软件工程基本原理实现软件的工程化生产,但是,仅遵循上述6条原则并不能保证软件开发与维护的过程能赶上时代前进的步伐, 能跟上技术的不断进步。因此,勃姆提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原则。按照这条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。

威格的成功软件项目管理秘诀

过程影响(ProcessImpact)公司的首席咨询顾问卡尔。威格(KarlE.Wiegers)在其《成功项目管理秘诀》(SecretsofSuccessfulProjectManagement)一文中总结了成功项目管理的20条秘诀:

构筑基础

  1. 定义项目成功标准;
  2. 识别项目的驱动、约束和自由度;
  3. 定义产品发布标准; 4.协商承诺。

规划工作

5.制作计划书; 6.将任务分解成较小的里程碑; 7.为共通的大任务开发计划工作表; 8.计划在质量控制活动后实施修改; 9.为过程改进安排时间; 10.管理项目的风险。

估算项目

11.根据工作量而不是日历估算; 12.不要为项目人员安排超过其80%的时间; 13.将培训时间纳入计划中; 14.记录估算以及如何达致估算; 15.利用估算工具; 16.尊重学习曲线; 17.考虑意外事件的缓冲。

追踪进展

18.记录实绩与估算; 19.只有当任务百分之百完成时,才认为该任务结束; 20.公开而诚实地跟踪项目状态。

麦克康奈尔的成功软件项目十大要决

史蒂夫。麦克康奈尔(SteveMcConnell)在《成功软件项目的十大要决》(10KeystoSuccessfulSoftwareProjects)中阐述了成功软件项目的十大要决:

  1. 清晰的愿景;
  2. 稳定的、完整的、书面的需求;
  3. 详细的用户界面原型;
  4. 有效的项目管理;
  5. 精确的估算;
  6. 两阶段预算;
  7. 注重质量;
  8. 听取技术专家的意见;
  9. 积极的风险管理;
  10. 记住:软件来源于人。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java使用slf4j输出日志

    白凡
  • Java中关于i=i++的问题解些

    JVM在方法体中的操作指令,一部分是直接作用stack栈,也有一些部分是直接操作Local Variable(本地变量区/局部变量区)。

    白凡
  • Gradle Unable to blame file

    白凡
  • 开发团队的效率

    我之前写过一篇叫《加班与效率》的文章,从概念上说了一些我对“效率”的认识,但是那篇文章趋于概念化,对于一些没有经历过这样的环境的同学来说,可能会觉得太抽象了。很...

    laixiangran
  • 微服务开发中5个惨痛教训

    基于微服务的开发正在改变我们整个行业,超过70%的人正在尝试开发基于微服务的软件。微服务简化了业务、流程、技术和人员的集成,将大爆炸的整体问题分解为一个可以独立...

    程序你好
  • CSS 特征布局实例 - 导航栏、新闻列表、淘宝布局

    重点:这里不能使用float:left的方式,因为这种方式不方便于居中。如果使用偏移的方式居中,当页数增加的时候,可能就不居中了。

    Devops海洋的渔夫
  • 第62天:手风琴效果

    半指温柔乐
  • ELK + Filebeat + Kafka 分布式日志管理平台搭建

    GitHub地址:https://github.com/abel-max/Java-Study-Note/tree/master

    用户5546570
  • Linux学习 - 管道、标准输入输出

    Linux下的标准输入、输出、重定向、管道 在Linux系统中,有4个特殊的符号,<, ‘>’, ‘|’, ‘-‘,在我们处理输入和输出时存在重要但具有迷惑性的...

    生信宝典
  • 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第七节)

    剽悍一小兔

扫码关注云+社区

领取腾讯云代金券