`
yanlijun250
  • 浏览: 750361 次
文章分类
社区版块
存档分类
最新评论

杂谈Barry Boehm的软件工程七原则与敏捷实践

 
阅读更多

大概在5年以前曾经从网上搜到了Barry Boehm提出的软件工程的七原则(Seven Basic Principles of Software Engineering),这是Barry Boehm1983年发表的文章,在网上搜到的是别人对这七个原则的转译与介绍,看后觉得怪怪的,总是觉得有些地方不能准确把握这七个原则的含义。于是去google搜其原文,未果,最近终于搜到了原文,因此更能准确把握Barry Boehm老先生的原意。

有人将题目翻译为软件工程的七个基本原理,其实,principles在此处还是翻译为原则更为准确。

依据原文我的对于各原则的理解如下:

原则一:使用分阶段的生命周期计划管理(manage using a phased life-cycle plan

1)一定要有项目计划;

2)项目要划分生命周期阶段,每个阶段都要有计划;

3)计划要分层或分阶段逐步细化;

4)要使用项目计划管理项目,不能弃之不用。

原则二:执行持续确认(perform continuous validation

1)尽早发现错误。大部分缺陷是编码之前注入的,缺陷越早修复成本越低。

2)尽早发现错误的措施:

深入评审;

设计阶段编写用户手册、使用手册、数据准备手册;

原型;

模拟;

自动化的检测工具;

设计审查与走查;

等等。

原则三:坚持规范的产品控制(maintain disciplined product control

执行配置管理,确保工作产品之间的一致性。

原则四:使用现代化的编程实践(use modern programming practices

采用现代化的开发方法、开发实践提升软件的效率与质量。

原则五:坚持结果的清晰的责任(maintain clear accountability for results

对于项目的阶段产出、各个小组之间的承诺、每个人的产出与承诺要明确、要可验证。

原则六:使用少而精的人员(use better and fewer people)

1)人与人之间的效率差别达10倍甚至25倍以上,因此要使用精英团队。

2)采用多种方式提升沟通的质量与效率:

不要通过加人的方式解决进度问题

项目的初期不要太多的人员

为高性能提供高的回报

淘汰低性能者

使用自动化的辅助工具

原则七:坚持过程改进的承诺(maintain a commitment to improve the process)

识别、分析技术与过程的改进,建立持续改进的机制。

如果仔细去分析敏捷的软件开发方法,则可以发现,恰恰敏捷的实践很好的满足了上述的七个原则:

Barry Boehm七原则

敏捷实践

原则一:使用分阶段的生命周期计划管理

采用迭代的生命周期模型
增量式交付
制定交付计划与迭代计划

原则二:执行持续确认

现场客户随时执行功能测试
测试驱动开发
持续集成
sprint review

原则三:坚持规范的产品控制

现场客户或product owner负责维护需求
持续集成

原则四:使用现代化的编程实践

系统隐喻
重构

原则五:坚持结果的清晰责任

时间箱管理
开发人员认领任务
用户故事的验收准则
每日站立会议
测试驱动开发
持续集成
现场客户功能测试
sprint review

原则六:使用少而精的人员

每个项目小组不超过10
采用一专多能,交叉职责的人员
自我管理的团队
每周工作40小时

原则七:坚持过程改进的承诺

sprint retrospective

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics