敏捷软件工程,杂谈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

Tags:  boehm boehmgc boehm滴定法 boehm滴定 敏捷软件工程

延伸阅读

最新评论

发表评论