【敏捷软件开发 原则、模式与实践】第一到五章读书笔记
当有了一定的工作经验,然后去读【敏捷软件开发 原则、模式与实践】会感触很多。当读完了本书的第一到五章,我发现敏捷开发的思想虽然一二十年前就出现了,但是直到现在依然没有普及,很多公司的开发模式是与敏捷开发的思想相悖的。
书中用了下面四句话总结了敏捷开发的核心思想:
- 个体和交互胜过过程和工具
- 可以工作的软件胜过面面俱到的文档
- 客户合作胜过谈判
- 响应变化胜过遵循计划
结合我自己的工作经历,我认为敏捷开发的思想主要解决了以下这些问题:
- 最大限度的避免了甲方和乙方的故事
甲方和乙方不再只是单纯的做着各自的工作,而是两方的团队成员坐在一起共同完成一个需求。甲方给乙方讲解需求的意图,乙方给甲方分析需求的可行性乙方在理解甲方的需求后快速地去实现一个功能,甲方会对乙方的实现进行测试并判断是否他们想要的功能。
- 软件是可扩展的
敏捷开发采用的是测试驱动开发的模式,其本质是:先根据需求设计接口验证功能的可行性,当测试通过后针对接口编程。这使得软件从一开始就是按照严格的面向对象的思想进行设计和实现的。
- 团队的传承
在一般的公司,新人了解公司的项目多数是通过繁琐的文档或者干脆没有文档,然后硬着头皮一个个功能的去 debug。其实一个公司的项目不在于它有多么牛逼的功能,而是其整体的架构设计思想和编码风格。敏捷开发提倡结对编程,每一个新人都会有老员工和他一起编程,老员工会在编码过程中将项目的结构设计思想和编码风格传授给新员工,这样能够让新员工快速地理解并融入团队。
不仅新员工会和老员工进行结对编程,擅长不同领域的员工之间也会进行结对编程,这样能够促使员工在工作中去弥补他不擅长的技能并提高认知。团队会经常轮流结对编程的成员,整个团队的成员都会有亲密合作的机会,这会潜移默化的提高团队的凝聚力和感情。
- 提高团队的整体实力
敏捷开发提倡测试驱动开发:需要对面向对象有比较深的理解;
敏捷开发提倡产品的快速迭代:团队成员需要有产品思维和交流技巧,在开发中需要与客户进行交流,同时需要较强的编码能力才能快速实现功能;
敏捷开发对代码的质量要求非常高:在项目中不允许有任何冗余的代码,这需要团队成员有较强的重构能力;
随着项目的持续迭代和业务增长:一些现有的技术实现可能已经无法满足需求了,这就需要团队成员随时保持对新技术的敏感,同时掌握快速地掌握,这对团队的学习能力有一定的要求;
总结:
人是项目开发中的核心,大量有效的沟通能减少很多不必要的误解、增进信任和理解。