敏捷
以前对敏捷这个词并没有多少认识,以为就是“快”。然后最近看了《敏捷软件开发--原则、模式、实践》才算对敏捷有了一点初步的认识:
真正的敏捷指的是快速宾锲可持续的方式前进,不是50米短跑而是马拉松长跑。不以阶段、文档、基础结构来衡量软件的进度,而是以满足顾客的需求的数量来衡量。
敏捷团队
l 经常进行面对面的交谈来进行交流,而不是文档,并且随着环境的变化而不断 对团队的组织方式、规范、关系等进行调整。
l 所有的任务都是分配给团队的,再由团队确定分配任务的方法,不存在单一人 员的任务
l 以最高的质量来完成简单的工作,而不是夸夸奇谈未来性
l 人是最重要的因素,任何负面影响都应该尽可能改变
敏捷的项目
l 尽早、持续的交付有价值的软件来提高质量,交付的时间越短越好
l 不惧怕修改
重要的敏捷方法---XP
l 尽可能使客户成为开发人员,融入团队工作
l 短交付工期,每两周交付一次可以工作的软件
l 结对编程
l 集体所有权:没有程序员对任何特一的模块或者技术负责。每个人都参与各方面的工作
l 持续集成:任何时候可以拆出代码进行修改,最重要的是可以保证所有测试通过
l 可持续的开发速度、开放的工作空间、计划游戏、简单的设计、重构、隐喻
计划游戏
两周左右进行一次迭代,每次迭代开始前都与用户讨论迭代周期内需要实现的客户素材,一旦迭代开始,客户就不能改变迭代期内需要实现的素材。可以添加或者修改其他素材。
过大的用户素材要进行拆分,过小的需要合并。
测试驱动开发(测试先行、频繁运行测试)
1. 确保先前的工作正确,不允许倒退
2. 先编写测试,让我们的程序便于调用
3. 迫使程序可测试的
4. 测试可以作为一种无价值的文档