原则一:使用分阶段的生命周期计划管理
(1)一定要有项目计划。
(2)项目要划分生命周期阶段,每个阶段都要有计划。
(3)计划要分层或分阶段逐步细化。
(4)要使用项目计划管理项目,不能弃之不用。
原则二:执行持续确认
(1)尽早发现错误。大部分缺陷是编码之前注入的,缺陷越早修复,成本越低。
(2)尽早发现错误的措施,包括:深入评审;设计阶段编写用户手册、使用手册、数据准备手册;原型;模拟;自动化的检测工具;设计审查与走查;等等。
原则三:维护规范的产品控制
执行配置管理,确保工作产品之间的一致性。
原则四:使用现代化的编程实践
采用现代化的开发方法、开发实践提升软件的效率与质量。
原则五:维护关于结果的清晰责任
对于项目的阶段产出、各个小组之间的承诺、每个人的产出与承诺要明确,要可验证。
原则六:使用少而精的人员
(1)人与人之间的效率差别达 10 倍甚至 25 倍以上,因此要使用精英团队。
(2)采用多种方式提升沟通的质量与效率,包括:不要通过加人的方式解决进度问题;项目的初期不要太多的人员;为高性能提供高的回报;淘汰低性能者;使用自动化的辅助工具。
原则七:坚持过程改进的承诺
识别、分析技术与过程的改进,建立持续改进的机制。
如果仔细去分析敏捷的软件开发方法,则可以发现,恰恰敏捷的实践很好地满足了上述七个原则。
Barry Boehm 七原则 | 敏捷实践 |
---|---|
原则一:使用分阶段的生命周期计划管理 | 采用迭代的生命周期模型 增量式交付 制定交付计划与迭代计划 |
原则二:执行持续确认 | 现场客户随时执行功能测试 测试驱动开发 持续集成 Sprint Review |
原则三:维护规范的产品控制 | 现场客户或 Product Owner 负责维护需求 持续集成 |
原则四:使用现代化的编程实践 | 系统隐喻 重构 持续集成 |
原则五:维护关于结果的清晰的责任 | 开发人员认领任务 用户故事的验收准则 每日站立会议 测试驱动开发 持续集成 现场客户功能测试 Sprint Review |
原则六:使用少而精的人员 | 每个项目小组不超过 10 人 采用一专多能,交叉职责的人员 自我管理的团队 每周工作 40 小时 |
原则七:坚持过程改进的承诺 | Sprint Retrospective |