当你以300km/小时的速度飞奔的时候,敏捷就显得至关重要,因为这是你闪避前方障碍物唯一的保障。
敏捷不只是快,更是规避风险。敏捷开发也是如此。敏捷,拼音是mǐn jié,意思指反应(多指动作或言行)迅速快捷。
如:敏捷地跳上敞篷车,敏捷地翻身上马,敏捷地躲过攻击。
出自《汉书·酷吏传·严延年》:“延年为人短小精悍,敏捷於事。”
现在我们通过虚拟一款“知鸟”的APP来了解敏捷开发——这是一款通过拍照就可以识别鸟类具体信息的艾普。
敏捷开发的第一步,并不是先跑起来,而是确定项目的关键章程。
第一步:关键章程
1.项目的远景——为什么做这个项目?引发项目的最初想法是什么?
2.项目的任务——创建一个尖端的技术平台,将网页、手机应用程序和位置感知功能结合起来,帮助用户识别鸟类。
3.成功的标准——在初始版本的三个月内注册10,000个用户,第一年就注册10万用户。在一年内识别出5000只鸟。第一年有99.999%的正常运行时间,并得到一位鸟类学专家的认可。在第二年创造一个年收入125万的高级版本。
第二步:创建用户故事
虚拟出一位用户,她的性格、喜好、说话方式,甚至她喜欢的电影都可以融入虚拟画像之中。
虚拟用户的说话方式以“我想/需要/可以”为开头。比如虚拟用户会说:“我想看到高级会员的好处列表,这样就可以看看是否值得花费这个成本。”
这里可以用到极限编程的3C方法:卡片(Card)、对话(Conversation)和确认(Confirm)。
卡片的正面写着虚拟用户的“我想/需要/可以”。团队与卡片进行对话,并在卡片背后写下用户需求的验收标准。
第三步:有效的用户故事
如果创建的用户故事并不符合,对敏捷开发来说,这已经飞出了跑道。
有效的用户故事分为6个部分:独立、可协商、有价值、可估计、轻量级、可测试。
独立:
其中一位虚拟用户从拍摄到识别的整个体验流畅(寻找继续优化的方案);
另一位虚拟用户从拍摄开始就遭遇到了诸多问题,比如应用启动过慢、拍摄识别的过程出错等等;
可协商:
开发团队与产品经理进行协商。开发人员应该决定通过用户故事交付其中价值的最佳方式。
有价值:
提取用户故事中最有价值的部分,没有它,就无法进行优先级排序,也就