敏捷开发中提高软件生产率的方法
作者:陈勇
出处:blog.csdn.net/cheny_com
很多人都知道甚至感觉到敏捷开发的生产率比传统开发高,但到底敏捷开发是怎样提升生产率的呢?以及当前自己正在实施的敏捷开发还有多大的生产率潜力?
当然“受激励的个体”会产生生产率,但只是这样解释恐怕难以服众,更难说服老板。让我们换一个角度吧。
下面几个问题揭示了一些隐性的生产率潜力:
- 10万/100万/1000万代码行的项目有20%/48%/65%被取消(Jones, 1998)
- 成功交付的产品中,约2/3延期交付(The Standish Group, 1992~2004)
- 所有软件平均60%左右的功能从未或很少被使用(个人是PPT和Excel高手,但是发现: PowerPoint: 53/116用过,Excel: 51/132用过)
- 约?%的文档内容在后来的维护、升级中从来没有被阅读过
- 约?%的代码在后来被抛弃或重新编写
所以,若你能做到下面的工作,则能为企业提供难以想象的生产力提升:
1. 100%:若能避免100万行代码的项目不被取消,则生产率接近提升100%(因为原来有接近50%的可能性被取消)
2. 50%:若能避免无用功能减少一半,则生产率大约可以提升50%(若能彻底消除则接近100%)
3. 50%~1000%:若能避免代码被大量乃至完全重写,则生产率大约可以提升50%~500%(个人曾遇到13人编写9年的软件被1人编写1.5年重建)
4. 约10%:若只写有用的文档,则生产率可以提升10%以上
因此只是在站着开会、共同估算、每月反思、按优先级排序等等层面来推广敏捷是不行的,应该时刻注意上述效果是否达到。比如:
1. 我的项目整体的工期/成本策略是什么?我应该在哪些节点交付哪些功能来证明什么?
2. 哪些功能是客户最常使用的?(不要过度相信“现场客户”那个人,更应该多接触那个群体)
3. 竞争对手都做过些什么?哪些功能其客户评价高?哪些功能其实华而不实(而我们却以为是对方强项)?
4. 这个项目或产品的生命有多久?需要我们注意可维护行吗?要写点文档说明哪些无法从代码中看到的东西?(“给政府做个网站”和“新型4G通讯基站软件”的生命周期可相差10倍)
5. ……
掌握好这些事情之后,会发现人的积极性不但因受激励而提高了,产品的生命力也似乎提高了,很少走弯路。而最终表现结果就是生产率提高了。
点击下载免费的敏捷开发教材:《火星人敏捷开发手册》
转载于:https://www.cnblogs.com/JPAORM/archive/2011/03/07/2510536.html
敏捷开发中提高软件生产率的方法相关推荐
- 敏捷开发中如何使用看板方法创造价值
看板方法起源于丰田精益,最核心的理念就是减少浪费.而精益生产分析技能在敏捷中的体现,就是"价值流程图"工具,可以帮助我们识别 7 大浪费,减少浪费就是在增加价值.7 大浪费如下,可 ...
- 敏捷开发中的Code Review
敏捷开发中的Code Review 一些敏捷团队在实施敏捷开发中忙于编码.忙于Unit Test.忙于沟通.忙于Build等,虽然也有编码审核阶段,但大都浮于表面,流于形式,效果不佳.本文结合实践,介 ...
- [转]敏捷开发中编写高质量Java代码
本文转自:http://dev.yesky.com/103/11164603.shtml 敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的 ...
- 敏捷开发中的可用性测试
陈 序明, 资深研发工程师及售前工程师, IBM 王 建芳, 资深软件测试工程师, IBM 李 雨恭, 软件工程师, IBM 简介: 近年来有两个词语在软件行业迅速"走红",一个是 ...
- 敏捷开发中迭代是谁创建_使用基于迭代的敏捷创建里程碑
敏捷开发中迭代是谁创建 我一直在指导几个有问题的团队:他们喜欢迭代工作. 而且,它们具有不在里程碑边界上的里程碑. 他们该怎么办? (我建议使用流程,您应该已经听到了他们的回应.嗯,也许不是.) 这就 ...
- 敏捷开发中编写高质量Java代码
原文出处:http://java.csdn.net/a/20100308/259219.html 敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整 ...
- 独立测试团队在敏捷开发中的几个特别实践
[原文发表在https://hespr.blogspot.jp/2009/03/blog-post.html 写在2009年3月 最近发现被人盗版了多处, 重新发布在CSDN] 最近读了<我和敏 ...
- [转]敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别
敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP- 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自 ...
- 本周4天4场直播,解决你对Oracle的种种疑惑,还有第2期大咖讲坛讨论敏捷开发中的性能质量管控...
1. Oracle 10046 Trace的取得和解析方法 -04.13 本课程以专业 Oracle 数据库技术支持工程师的角度讲解 10046 Trace 的取得和解析方法. 分享大纲: 10046 ...
最新文章
- gulp插件之browser-sync安装报错
- 互联网协议 — HTTP/3 超文本传输协议第 3 版
- camera客观测试_光学图像测试之屏幕色彩管理测试
- JavaScript一些常用 API整理汇总
- 利用RxJava加载图片
- python读行-Python如何一次读取N行
- apex图表使用饼图居中_饼图若只有一个值的时候,normal.label.position='center'时,label居中指的是DOM居中而不是图表居中...
- 在Cygwin上安装编辑器vim 【ZT】
- Python: 如何安装 torch 对应的 torchvision 版本?
- 测试是个艺术活儿:测试需求分工原则
- Golang 入门 : Go语言介绍
- 单目标跟踪SiamMask:特定目标车辆追踪 part1
- android bochs,BOCHS手机版APP
- 英特尔第十代处理器为什么不支持win7_Intel最新CPU和主板不能装Win7?解决办法来了...
- Android Studio 文件名颜色代表含义
- 台式计算机读不到u盘怎么回事,电脑读不出u盘怎么办
- FPGA 11 基础 8421BCD码
- 【Python2】使用python中的turtle模块学习海龟绘图(有趣的python初体验)(最全最详细的turtle介绍使用)
- 想找一个靠谱的副业?先学会怎么找副业
- 致远SPM解决方案之进度管理
热门文章
- 一周小结(2016-05-16~2016-05-21)
- Unity3d:Unknown type 'System.Collections.Generic.CollectionDebuggerView'1
- cocos2dx android运行Luac编译后的lua代码
- 【Java 系列笔记】语法基础 + Spring + Spring MVC + SpringBoot + 数据结构
- Windows域控设置 AD域策略屏蔽端口 禁用端口【全域策略生效】
- SqlServer 日期时间格式 字符串相互转换 及相关函数
- intelliJ IDEA快捷键整理自用版
- 年末盘点,2021年最值得推荐的10个提高开发效率工具,程序员必备
- 不装了,摊牌了,月薪10571元的我是新生代农民工中的一员
- B+树 范围查询_为什么 MySQL 使用 B+ 树,而不是 B 树或者 Hash?