读《软件开发本质论》
书籍信息
中文书名: 软件开发本质论
英文书名: The Nature of Software Development
作者: [美]Ron Jeffries
译者: 王凌云
阅读感悟
- 我们最终想要的是价值,提供价值的是功能特性。功能特性发布的越早,我们就能越早提供价值。
- 基于价值的的管理比基于时间或工件等不提供价值的事物更胜一筹。
- 根据功能特性做计划很简单,只要在必要的时候才进行估算。根据以往完成的工作量来安排下一阶段的工作,效果会更好。
采用逐渐增加功能特性的增量式开发方法,要求我们每隔几周就能开发出小而完整的产品。所开发的必须总是能够正常运行,而且其设计也是良好的。
开发工作必须要交付真正可用的功能特性。
专注于价值。
目的、自主与专精是提高员工满意度和工作效率的三大驱动力。
- 目的来源于具体的业务。开发团队需要专门配备一位业务人员(产品负责人或客户),由他来指导团队确定哪些功能特性需要首先完成,哪些可以推迟。业务人员负责将疑虑或问题告诉团队,而不是解决方法,团队一起努力解决。
- 自主能够给整个团队带来责任感。
- 专精源自迭代过程。每经过一次迭代,都会完善
完成
一词的定义。所谓的完成
其实就是一种标准。在追求完成
的每一次迭代都是朝着专精迈进的过程。
切分较大规模软件的标准:团队成员认为自己能够把握整个模块并且能够在一周之内完成开发。具体的切分方法:
- 第一步,列出三到五个最重要的,产品最应该具有的大模块。用一句话来描述每个部分,然后将其分别写在卡片上。
- 第二步,将第一步中的每张卡片上大模块,细化成三到五个更小的卡片。确保每个拆分出来的条目都具有商业价值,也就是必须是功能特性,而不是技术或部件。
- 重复第二步,直到团队成员认为能够一周之内完成。
迭代会引来重构。重构遵循露营地规则。
露营地规则:在离开露营地时,要让它比你来的时候更好。
也就是说每次迭代加入新功能特性的时候,我们应该清理应该清理的代码,外加一点相关代码。而不是完全停止功能特性的开发来清理代码。
根据功能特性来组织团队,而不是技能。
详细的计划是无用的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeFer!
评论