1、敏捷开发的概念
从1990年代开始逐渐引起广泛关注,是一种以人为核心、迭代、循序渐进的开发方法。强调以人为本,专注于交付对客户有价值的软件。是一个用于开发和维持复杂产品的框架。
2、敏捷开发的流程
(图为禅道敏捷开发流程管理)
2.1 产品负责人将整个产品设计成产品代办列表。就是一个个需求列表。(可以理解为需求或者要做的事情)
2.2 召开产品迭代计划会议,确定哪些需求是需要在第一个迭代中完成的,评估迭代的时间(建议是2-4周),得到相应的迭代周期任务列表。ps:提前发布功能需求列表,会议提倡所有团队人员参与
2.3 把迭代的功能需求写在纸条上贴在任务墙,让大家认领分配。(任务墙就是把未完成、正在做、已完成的工作状态贴到一个墙上,这样大家都可以看得到任务的状态 )–>举行每日站立会议,让大家在每日会议上总结昨天做的事情、遇到什么困难,今天开展什么任务。(每日站立会议,是在每天早上定时和大家在任务墙前站立讨论,时间控制在15分钟内)–>绘制燃尽图,保证任务的概况能够清晰看到。(燃尽图把当前的任务总数和日期一起绘制,每天记录一下,可以看到每天还剩多少个任务,直到任务数为0 ,这个迭代就完成了)ps:在开发人员开始开发一个任务时,需要找来对应的测试人员讲解该任务功能,以便测试人员有一致的理解,并且一开始就进行测试用例、自动化系统测试脚本的开发(若需要自动化测试的话)。
(上图为小编粗图)
2.4 评审会议(演示会议)是在迭代完成时举行,要向客户演示自己完成的软件产品,并获得客户的反馈 。
ps:很多用户对软件开发是没有概念的,他只知道自己有某种需求。所以就要通过不断的让用户看到产品的模型,这个过程用户才会逐步的对产品产生概念。
2.5 最后是总结会议,以轮流发言方式进行,每个人都要发言,总结好的实践和教训,并落实到后续的开发中。不要流于形式。
3、敏捷开发适用原则
1、个人与互动:重于流程与工具
->强调人与人的沟通,所以尽可能要集中化办公。异地开发模式容易让人疲惫。
->个人技能要提高。尤其对于架构师要求要高。
->管理者要多参与项目有关的事情。
->减少对开发人员的干扰。
2、可用的软件:重于详尽的文件
->强调文档的作用。必要的文件必须的。且文档要具有传承性。
3、与客户合作:重于合约协商
->做好客户引导。客户都是想在尽可能短的时间内,交付尽可能多的功能。做好版本控制。
4、回应变化:重于遵循计划
->无理变化,举棋不定的结果,并不是说都需要及时响应,会导致很多浪费。