此文章为个人培训理解总结,如有错误望及时指出,谢谢
一、敏捷开发是什么
敏捷开发是一种管理模式或者说是管理者对员工的开发模式制定一种开发规则,从而使用敏捷的方式将产品开发出来。
不是所有项目都适合敏捷开发,敏捷开发适合需求会不断产生变化的项目
敏捷开发分为多种
团队性敏捷
项目性敏捷
fas(集团性敏捷)
敏捷开发与传统开发的区别
传统:指令试管理【leader向团队人员分配任务】
敏捷:团队自我管理【leader发布所有任务,团队人员根据自己的兴趣选择任务,提高主动性】
scrum(迭代计划会议)/xp【Extreme Programming(极限编程)】
二、敏捷的价值观
个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
三、怎样实现敏捷
难点:敏捷开发的难点在于敏捷开发的转型过程
1.有效沟通【包含与客户的沟通和团队成员的沟通(目的:明确真实的业务,避免开发与需求发生偏差)】
团队自我管理【leader发布所有任务,团队人员根据自己的兴趣选择任务,提高主动性】
怎样实团队自我管理
使团队所有人价值观一致【我的理解利益一致】
是否要制定计划,应该怎样制定计划
项目中一个详细的计划,在开发中会经常会出现改变。
因此没有必要耗费大量时间做,一份会不断改变的计划。【客户永远不知道自己想要什么,客户只会在开发过程中,才会知道自己想要什么(用户的需求是靠不断挖掘和引导的,不要替客户做决定)】
那么还需要计划吗?当然需要,需要制定一个有效的计划,周期迭代性的计划
敏捷开发核心:迭代开发
敏捷迭代周期为两周
分析两周内的计划需求,一个周期完后,再更改过研究下一个周期【在周期内不要进行对业务的改变(最好和客户协议此规定)】
敏捷是‘小模块’的,要有规定时间约束,不要出现普遍性延期的现象【用时间压力,抵抗人性】
不要过度设计
减少圈复杂度,嵌套太多(嵌套层不要超过三个)
引入新技术时结队编程效率最高
单元测试用例:能被测试的就说明代码结构没有问题,可以扩展,可以重构,是相对解偶的
单元测试用例(jtest)