@15152278073
2018-09-13T06:40:26.000000Z
字数 2117
阅读 1819
敏捷开发(Agile Development)是什么?
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
SCRUM是一种迭代的增量化过程,用于产品开发或工作管理。它是一种可以集合各种开发实践的经验化过程框架。SCRUM中发布产品的重要性高于一切。
英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。而Scrum就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作
Sprint:是短距离赛跑的意思,这里面指的是一次迭代,而一次迭代的周期是1个月时间(即4个星期),也就是我们要把一次迭代的开发内容以最快的速度完成它,这个过程我们称它为 Sprint
scrum的工作流程
XP注重的核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做 出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。
最佳实践:
计划游戏 小型发布 简单设计 测试先行/测试驱动开发(Tdd /方法论)
重构 结对编程 持续集成 ···
一套针对中大软件开发项目的开发模式。此外,FDD是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、 易于被开发团队接受,适用于需求经常变动的项目。
FDD中的角色
1. Domain expert(s) :领域专家
2. Chief Architect(s) :首席架构师
3. Chief Programmer(s) :主程序员
PM , CA ,开发经理 , 主程, 小组成员 , 领域专家
Scrum没有对软件的整个实施过程开出工程实践的处方。要求开发者自觉保证,但XP对整个流程方法定义非常严格,规定需要采用TDD, 自动测试, 结对编程,简单设计,重构等约束团队的行为。用 Scrum 的管理模式,使用XP的工程实践。
原则:
a. 本地构建,然后再提交至版本控制器。
b. 需要专门的集成服务器执行。
c. 争取100%通过。
d. 每次集成都是可运行的软件。
需要应对的挑战:
a. 软件自动化,环境搭建,脚本编写。
b. 自动构建检查 ,git绑定,是否满足自动构建的要求。
c. 持续自动的构建测试 ,单元测试,回归测试。
d. 后续自动化,打包、部署、文档,错误信息发达及处理等。
步骤:
a. 选择user story card
b. 写测试案例
c. 实现测试。采测试框架和自动化测试工具。
d. 通过测试。实现过程:tdd, 特性和功能层面:atdd
a. 实际操作很难。
b. 不满足条件。
优化:
一个代表即为需求列表,包含产品的所有需要特征。
包含需求标题,内容描述,优先级。PM细化需求清单的内容。
代办需要不断维护,允许发生变更。
需求列表粒度过粗则要细化需求。
办法:
维护产品列表;需求早期为粗粒度需求,迭代开始前细化为基于优先度的细粒度需求。基于细粒度详细讨论,给出工程上的设计方案。
产品需求亦可作为需求规格。周期性收集整理业务需求为用户故事(参见5),与团队成员细化用户故事。迭代结束后,与用户确认,并对产品列表进行维护。
作为<某个角色>,希望<实现某项功能>,以便<带来何种价值>
举个例子:作为用户,希望每次退出前得到系统提示,以便所有填写的内容保存为草稿。
用户故事可以配合验收测试,测试人员同时负责编写测试点。
验收测试例子:
我作为已注册厂房在线用户,想要登录app,以便查看厂房信息。
测试1:输入注册的手机号与手机后四位,应该能登录app。
测试2:输入未注册的手机号与手机后四位,无法能登录app,并提示账号或密码不正确。
测试3:输入12位的不正确手机号与手机后四位,登录按钮不可用,同时提示手机号码长度不正确。
···
tdd实现猜数字
好处
a. 尽早发现缺陷,提升效率。
b. 提高代码质量,提高测试率。
c. 学习中提高能力,培养好的习惯。
tdd虽好,现实骨感。
原因:
a. 开发效率不高,出活慢,直接出产品让用户测试,大不了快速迭代
b. 适合有明确目标且目标不会轻易变更。你懂得
c. 程序员要求比较高 。程序员自己想 TDD 很爽,如果被 TDD 就很不爽。
参考 5
需要丰富设计经验的架构师。
a. 整体设计
b. 对象设计
c. 数据库设计
d. 测试设计
避免早期的过度设计,吹毛求疵 浪费时间和精力。
略。
禅道相关:
禅道与scrum概念对应:
在禅道项目管理软件中,核心的角色有产品经理、项目经理、研发团队和测试团队四种角色。如果您现在的团队是采用敏捷开发的话,那么可以对应到product owner, scrum master和team(dev and tester)。这几种角色之间紧紧围绕产品的需求展开协作,取得成果。禅道核心的管理流程全图如下所示: