关于敏捷的一些事儿

昨日,与一同事,就敏捷和需求文档之类的问题,有一点小小的争论。本人口拙,未能完整表述我的观点,回来整理一下思绪,写下来吧。

首先要说的是,敏捷与需求文档的关系。

敏捷并非排斥需求,它只是给用户一个舒适地表述需求的环境。事实上,敏捷相对于古老的RUP模式,更是把需求和测试抬到了一个前所未有的高度。

传统的软件工程模式,想让程序员介入,就要求先有明确清晰的需求规格书,经过多轮的评审确认,还要用户签字画押。

且不说『签字画押』给人带来的严重心理不适,就说这冷冰冰的需求规格书,就如冰封千年的雪山,横亘在用户与程序员之间,上帝(用户)与我们(程序员)的距离变得如此遥远,抱怨、指责、怀疑,不安,一切人类不好的情绪都会由此而引发……

而且,什么样的需求描述是清晰明确的?每个人都有不同的理解。

上帝:  我要个喝水的杯子。
程序猿:高度为多少CM的杯子?口径多少?什么材质?奥氏体304?只是用于喝水吗?水温多少?是否需要支持盛放盐酸?或者可乐?
上帝:  &%¥#……
程序猿:天啊?My God。你连自己要个什么样的杯子都说不清吗?

敏捷过程要求用户与程序员在同一个团队,共同工作(上帝与我们同在!从来没有谁能让我们如此接近上帝!!),上帝随时提出需求,我们随时给出响应

上帝:我要杯子 ,于是就有了杯子;
上帝:杯子小了点,于是杯子变大了;
上帝:我要盖子,于是有了盖子;
上帝:杯子太素了,于是杯子壁上有了图案;
上帝:我要水,于是杯子里就有了水。

敏捷用UserStory来代替需求规格书,用即时反馈来代替评审,用讨论来代替签字画押。

敏捷是真正意义上以用户为中心的开发模式。

其次,我想再说的是敏捷与设计的关系。

传统的过程,我们在跋山涉水历经九九八十一难之后,终于完成需求规格书的确认,还有,概要设计书、详细设计书两座大山横在面前。

可是,你知道吗?上帝已经等得有点不耐烦了。

敏捷也不排斥设计,但敏捷强调的战略设计,整体的架构,而不是战术战法。

战场情况瞬息万变,战术上的事情,交给现场指挥员临机应变就好了。

《45个好习惯》中说『程序员不是打字员』,我是非常赞同。我从来不认可『软件蓝领』这样的职业,软件行业,没有白领蓝领之分,只有师傅徒弟。观点见我以前的博文:http://blog.csdn.net/sharetop/article/details/2145572

敏捷过程强调快速开发快速迭代,并非抛弃了设计,而是将一个原本独立的设计阶段,揉碎了,填充到开发的全过程中,让设计滋润着代码,让代码变得更有生机,设计也更接地气。

让设计浸润着代码,对每一个程序员都有更高的要求,所以,敏捷的流行催生了『全栈工程师』的概念。

再分享《45个好习惯》中的观点:好的设计,是正确的,而不是精确的。

回想我以前的痛苦的RUP经历,用ROSE做详细设计,定义每一个类,每一个方法以及所有的参数……如此繁琐细致的工作,需求一点点的变化,都可能会将所有的工作努力化为乌有。

最后,要说的一句话是:敏捷也并不适用于所有场景,比如你要做一个操作系统。

时间: 2024-11-10 14:52:31

关于敏捷的一些事儿的相关文章

生活里一则有关敏捷的小事儿

房子下来后,最着急装修的事儿,原因有二.一,钱没着落:二,没时间事无巨细的过问,怕最后出来的效果不是自己想要的. 关于一,略过不记. 说说二. 当初负责装修的L,向我们提供了很多风格图片,最终选了一种,大致交代下屋子里哪个位置摆放什么东西,东西做成什么样的.就这样,离场,他们开工了. 每到一个阶段,他们都会拍照反馈进度和效果.并询问有没有什么想法或者意见.中途,由于几个重要的东西材料需要选择,所以,我们过去了几趟,其他时间,就是微信联系.我们做的都是选择题,做一些选择,偶尔搭配不合适的,他们给出

瀑布式开发、迭代开发、敏捷开发、XP与SCRUM的区别

瀑布式开发.迭代开发,区别[都属于,生命周期模型]         两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说. 传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好.特别是前期阶段,设计的越完美,提交后的成本损失就越少.我现在从事的外包项目就是这样的流程. 迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目

你真的知道敏捷和迭代吗?

在这敏捷开发横行的时代中,人人都在谈敏捷,人人都在谈迭代,似乎大家好像都尝到了敏捷带来的甜头,记得有一次跟朋友吃饭,说他们现在的项目用敏捷开发,每个迭代都能看到不断完善的产品,非常有成就感,客户的满意度也提升了不少:另一个朋友说,我们用迭代开发,也是这样,而且客户想加什么需求就加什么,直接按照优先级排到迭代周期就行,也不用为改需求而烦躁.当时我就想,敏捷开发不就是分迭代周期的吗,他俩好像说的是一回事吧.回去过了好长一段时间,突然想起这件事了,在网上一查,还真不是一回事- 迭代开发流程: 什么叫迭

DBA避坑宝典:Oracle运维中的那些事儿

对于Oracle运维中的那些事儿,我的最终目的:不是比谁更惨,而是能够从中吸取经验和教训. 从我的理解来看,我会从下面的几个方面来进行说明DBA运维中的一些事儿. 每个部分都是非常关键的,缺一不可,而且每一部分都有很多的东西可以细化,我会逐一展开来说. (一)环境篇 首先来说说环境篇. DBA的角色及分工 对于DBA的分工,以前的公司对于DBA角色划分粒度还是很细的. 大体是按照核心和客户化定制层来划分的,核心层主要负责产品化,客户化层面主要负责定制.属于不同的产品线但又彼此紧密关联. Phys

依赖注入那些事儿

from:http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html 目录 目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依赖注入那些事儿 3.1 依赖注入的类别 3.1.1 Setter注入 3.1.2 Construtor注入 3.1.3 依赖获取 3.2 反射与依赖注入 3.3 多

敏捷软件测试--初见

敏捷 反应快速灵敏. 在敏捷软件开发领域,更注重的以人为核心,迭代,循序渐进的开发方法.相比传统的开发方法,这种方法能更快速的开发,上线,反馈,调整.迭代.以敏捷的姿态去发展产品. 敏捷与传统开发的区别                                                                                   有个非常有意思的游戏能够帮助大家理解敏捷和传统开发的差异.游戏有两个角色,一个是“老板”,另一个是“员工”,在 2 分钟内,“员工”

全球敏捷运维峰会Gdevops 2017成都站10位嘉宾主题提前看!

? 2017年全球敏捷运维峰会(Gdevops, Global Devops Summit)将于2017年在成都.上海.北京.广州四城全面启动,本次峰会由上海市经济和信息化委员会指导,上海市云计算产业促进中心.DBAplus社群主办,数十家媒体单位共同支持,活动家提供全球敏捷运维峰会在线报名服务. 成都站即将于13日启航,搭车地址:https://www.huodongjia.com/event-1169782615.html 峰会亮点 Feature 全球敏捷运维峰会 行业盛会 汇聚精英 先进

那些我们常用的scrum工具、敏捷开发工具

1,Leangoo Leangoo非常适用于Scrum和敏捷开发,我们可以用它轻松的创建Sprint Backlog,添加用户故事卡或任务卡,为用户故事添加估算的故事点,或通过拖拽来移动卡片到不同的状态列表.您还可以通过把团队成员拖动到一个任务卡上来快速为其安排任务. 作为一款免费.简洁.可视化的敏捷团队协作工具,它的简洁的体验给人留下了很不错的印象!推荐想要轻量级.简洁敏捷工具的团队使用. 官网:www.leangoo.com 2,Jira JIRA是Atlassian公司出品的项目与事务跟踪

关于‘文件存储格式’和‘文件内容格式’需要掰一掰的那点儿事儿

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 先来说个例子,来引用题中的问题,后面会尽可能列出大把的实际存在的关于这俩家伙的事儿,以供参考. 当我们录了一段语音并存成 .wav 文件后,就可以