210 likes | 466 Views
Agile starts here…. 敏捷实践 : 代码道场 Agile Practice: Coding Dojo. CBUCRM- 售中开发 李阳 & 余红明 2011-11-18. 大纲. 1. 概念介绍: 15'-20' 2. 游戏 规则说明: 5' 3. 实践 3 个 US(User Story ,用户故事 ) 45’ 4. 回顾会 、 讨论 40' 5.xp 、 scrum 头脑风暴 5' 6. 现状讨论 看时间. 用户故事 (User Story) 的组成. 正面 —— 需求描述 角色:谁要使用这个功能。 活动:需要完成什么样的功能。
E N D
Agile starts here… 敏捷实践:代码道场 Agile Practice: Coding Dojo CBUCRM-售中开发 李阳&余红明 2011-11-18
大纲 • 1.概念介绍:15'-20' • 2.游戏规则说明:5' • 3.实践3个US(User Story,用户故事) 45’ • 4.回顾会、讨论 40' • 5.xp、scrum头脑风暴 5' • 6. 现状讨论 看时间
用户故事(User Story)的组成 • 正面——需求描述 • 角色:谁要使用这个功能。 • 活动:需要完成什么样的功能。 • 商业价值:为什么需要这个功能,这个功能带来什么样的价值。 • 反面——验收条款 • 通过验收测试确认用户故事被正确完成。
故事写法 • 句式 • As a <Role>, I want to <Activity>, so that <Business Value>. • 例如 • 作为一个“网站管理员”,我想要“统计每天有多少人访问了我的网站”,以便于“我的赞助商了解我的网站会给他们带来什么收益。” • 注意 • 不能够使用技术语言来描述,要使用用户可以理解的业务语言来描述。
Mingle中的user story cards * Mingle是一个支持敏捷开发方法的项目管理工具,由ThoughtWorks公司开发
问题介绍 • 枫林晚书店POS系统案例 • 购书付款收银 • 会员 • 会员积分 • 会员等级 • 折扣计价收银
游戏规则说明 • 结对 • 简单设计 • 用最简单的方式实现给定的功能 • TDD • 记住,先写测试代码 • 重构 • 变量命名、重复代码等 • 每个故事15分钟
游戏进行中….故事1 • 需求描述 • 作为一个收银员,希望系统能根据客户选的书和付款给出需找给客户多少零钱,方便结算。 • 验收条款 • 客户选了两本书,java 80块,c++ 80块,付款200,应找零40
游戏进行中….故事2 • 需求描述 • 作为客户,希望有个购物车,方便选书 • 验收条款 • 客户先选了3本书, 2本java 40.5块/本,1本c++ 80块/本。后来觉得2本java太多,又去掉了1本。付款150,应找零29.5
游戏进行中….故事3 • 需求描述 • 客户希望能在第一次购买付款后,使用同一个购物车进行下一次购买 • 验收条款 • 客户买了两本书,java 80块,c++ 80块,付款200,应找零40 。付款后,客户使用同一购物车又买了1本java ,50.5块,付款100,应找零49.5
游戏进行中….故事4 • 需求描述 • 希望付款时能支持按折扣计算找零,为日后引入会员机制做准备 • 验收条款 • 客户买了两本书,java 80块,c++ 80块,折扣0.8 付款200,应找零72 • 客户买了两本书,java 80块,c++ 80块,折扣0.75 付款200,应找零80
游戏进行中….故事5 • 需求描述 • 会员积分功能:支持积分功能,积分量随着消费额等额取整增加 • 验收条款 • 消费100.5元,获得100积分 • 消费1000元,获得1000积分 • 消费2000元,获得2000积分
游戏进行中….故事6 • 需求描述 • 会员等级功能:能随客户的积分增加自动升级等级(钻石、黄金、白金、普通),不同等级享受不同折扣优惠。客户初始等级为普通 • 验收条款 • 积分小于1000为普通会员 无折扣 • 积分满1000升级为白金会员 享受9.5折优惠 • 积分满3000升级为黄金等级享受8折优惠 • 积分满5000升级为钻石等级享受6折优惠
回顾会(Retrospective) “驻足思考,让灵魂跟上脚步”
XP、Scrum讨论 各抒己见
《Clean Code》 “武术家从不认同所谓最好的武术,也不认同所谓绝招。 武术大师们常常创建自己的流派,聚徒而授。 因此我们才看到格雷西家族在巴西开创并传授的格雷西柔术(Gracie JiuJistu), 奥山龙峰(OkuyamaRyuho)在东京开创并传授的八光流柔术(HakkoryuJiuJistu),李小龙(Bruce Lee)在美国开创并传授的截拳道(JeetKune Do)。 弟子们沉浸于创始人的授业。他们全心师从某位师傅,排斥其他师傅。 弟子有所成就后,可以转投另一位师傅,扩展自己的知识与技能。 有些弟子最终百炼成钢,创出新招数,开宗立派。 任何门派都并非绝对正确。 不过,身处某一门派时,我们总以其所传之技为善。 归根结底,练习八光流柔术或截拳道,自有其善法, 但这并不能否定其他门派所授之法。” Robert C. Martin
参考 • XP(Extreme Programming) • http://xprogramming.com/index.php • KISS(Keep it simple, Stupid!) • http://en.wikipedia.org/wiki/KISS_principle • YAGNI(You Aren't Going to Need It) • http://www.artima.com/weblogs/viewpost.jsp?thread=36529 • Minimalism(LIM:Less is more) • http://en.wikipedia.org/wiki/Minimalism • User story • http://en.wikipedia.org/wiki/User_story • INVEST • http://en.wikipedia.org/wiki/INVEST_(mnemonic) • 3C(Card, Conversation, and Confirmation) • http://xprogramming.com/articles/expcardconversationconfirmation/ • Coding Dojo(代码道场) • http://www.danielteng.com/2011/03/15/coding-doj/ • Retrospective • http://en.wikipedia.org/wiki/Retrospective