有些事关于敏捷

昨。和一位同事,像敏捷的问题和需求文件,有一点争议。我结结巴巴,未能充分表达我的观点。回到他的想法整理,写下来。

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

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

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

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

并且。什么样的需求描写叙述是清晰明白的?每一个人都有不同的理解。

上帝:  我要个喝水的杯子。
程序员:高度为多少CM的杯子?口径多少?什么材质?奥氏体304?仅仅是用于喝水吗?水温多少?是否须要支持盛放盐酸?或者可乐?
上帝:  &%¥#……
程序员:天啊?My God。

你连自己要个什么样的杯子都说不清吗?

敏捷过程要求用户与程序猿在同一个团队,共同工作(上帝与我们同在!从来没有谁能让我们如此接近上帝!

),上帝随时提出需求,我们随时给出响应

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

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

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

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

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

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

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

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

《45个好习惯》中说『程序猿不是打字员』,我是很赞同。

我从来不认可『软件蓝领』这种职业,软件行业,没有白领蓝领之分,仅仅有师傅徒弟。观点见我曾经的博文:http://blog.csdn.net/sharetop/article/details/2145572

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

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

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

回忆我曾经的痛苦的RUP经历。用ROSE做具体设计,定义每个类,每个方法以及全部的參数……如此繁琐仔细的工作,需求一点点的变化。都可能会将全部的工作努力化为乌有。

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

版权声明:本文博主原创文章。博客,未经同意不得转载。

时间: 2024-10-10 06:40:39

有些事关于敏捷的相关文章

敏捷流程

流程简介 第一步:找出完成产品需要做的事情--Product Backlog 第二步:决定当前的冲刺需要解决的事情--Sprint Backlog 第三步:冲刺 第四步:得到软件的一个增量版本,发布给用户 敏捷流程的问题和解法 第一步:在计划中体现依赖关系 第二步:技术能力和交流能力 第三步:定义好任务 第四步:得到一个增量的软件发布 敏捷的团队: 自主管理 自我组织 多功能型 敏捷流程的经验教训: 敏捷宣言表明的是一些优先级 Scrum Master不是一个官,而是一个没有执行权力的沟通者 一

一站式大数据敏捷分析平台

OpenFEA是一站式大数据敏捷分析系统,融合了内存计算.集群运算.机器学习.交互分析.可视化分析等技术,涵盖数据收集.数据探索.构建模型.模型发布等功能,分析性能卓越,使用简便,无需复杂编程即可快速实现大数据分析,助力数据分析师激扬数据,塑造业务标杆.          数据收集         OpenFEA能够融合更多类型的数据来进行运算,支持关系型数据源. Hadoop数据源.数据文件.第三方数据源. 支持数据源与接口/格式的双向自定义机制.表示各种复杂结构或LOAD和STORE各类数据

《敏捷开发的45个习惯》

开篇第一句:continuous development,not episodic. 1以迭代的方式工作: 缺定一小块时间的计划,按时完成他们. 2态度决定一切 a指责不能解决bug b欲速不达:普通的码农不理解那块代码,只要能够工作就好,要么直接复制,要么直接调用.优秀的程序员会深挖一层,想明白会产生什么影响. (防微杜渐,别想着快速修补) (不要孤立编代码,实行代码复审) (使用单元测试,每一快都能测试) c对事不对人 (消极扼杀创新  团队仲裁机制) d排除万难(如何维护别人的代码.还是自

敏捷软件开发简述

前言:由于我读了邹欣老师的<构建之法:现代软件工程(第二版)>,因此对敏捷软件开发有了比较大的兴趣.于是我在网上找了一些论文,比如Requirements Engineering and Agile Software Development.A decade of agile methodologies: Towards explaining agile software development.在读了这些论文之后,对敏捷软件开发有了大致的了解.这篇博文主要是简单介绍敏捷软件开发,重点集中在主

敏捷软件开发VS传统软件工程

敏捷软件开发:又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新兴软件开发方法,是一种应对快速变化的需求的一种软件开发能力. 与传统软件工程相比,它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中"人"的作用. 本文将介绍敏捷软件开发的历史背景与发展,

用户故事与敏捷方法①

在读这本书之前,自己觉得有点好奇,用户故事指的是什么呢,读完之后,有了体会:用户故事描述了对用户.系统或者软件购买者有价值的功能.它由3方面组成:1>一份书面的故事描述,用来做计划和作为提示:2>有关故事的对话,用于具体化故事细节:3>测试,用于表达和编档故事细节且可用于确定故事何时完整. 它总共分为了五大部分来介绍: 第一部分是一些简单的概念或者使用故事的细节方面,比如如何编制用户故事,有哪些细节要求:在故事中找出用户角色模拟使用情节:怎样搜集到用户故事,通过各种途径:如何找到用户代理

敏捷开发

学习内容: 敏捷开发 Agile Development 是一种软件开发流程,开发方法,能够知道我们按照规定的环节一步步的去完成项目的开发任务,主要驱动核心是人,采用的是迭代式的开发. 是相对于瀑布开发模式的缺点改进的一种开发模式,就是把一个大项目切分成多个子项目,然后分别开发.测试. 是以用户的需求变化为核心,采用迭代和循序渐进的方式进行软件开发. 四句开发宣言: 个体和互动  胜过     流程和工具 可用的软件    胜过     详尽的文档 客户合作 胜过     合同谈判 响应变化  

利用敏捷开发的原则开发自己的大学生校园博客系统

  敏捷开发原则 我们的做法 1 尽早并持续交付有价值的软件以满足顾客需求 软件暂时未完成,但目前已经交付某些文档,可以通过文档与用户进行交互. 2 欢迎需求的变化,并利用这种变化来提高用户的竞争优势 不时向同学询问或自我思考看自己所要做的能否使大学生满意. 3 经常发布可用的软件,发布间隔可以从几周到几个月,能短则短 由于我们的项目是要求在一个月内进行交付,所以我们并没有进行软件的交付,但是我们每周都会交一些设计文档,对项目及完成进度进行说明. 4 业务人员和开发人员在项目开发过程中应该每天共

&quot;产品测试管理&amp;敏捷项目管理&quot;研讨会在深圳成功举办!

2015年1月9日,由深圳市共创力企业管理咨询发起的"产品测试管理&敏捷项目管理"研讨会在深圳南山科技园创新谷咖啡成功举办!参加此次研讨会的企业有华为.中兴.烽火.腾讯.康佳.OPPO.元征.神视检测等高新企业管理人员,研讨会由研发资深顾问杨学明先生主持.此次会议的议程如下: 2016.1.9 10:10~11:00 由华为员工分享敏捷项目管理实践  2016.1.9 11:00~12:00 由元征科技分享IPD模式下的测试管理  2016.1.9 12:00~13:00 午餐