敏捷开发中提高软件生产率的方法

提高软件开发效率的方法 一个开发任务下达以后,我们希望尽快的实现的,对软件开发工程师的要求是:多快好省 多--单位时间产量高 快--同样的产量所需的时间少 好--质量高 省--省钱,省时,省资源 这四个目标中最主要的又是“快”,也就是效率高,当然这四个指标之间也是有相互联系的。 提高效率的第一个办法就是加人和加班,这也是目前大多数企业采用的方法,特别的简单粗暴。首先看看加人,加人对项目开发效率的影响在起初人少...... 阅读详情

作者:陈勇

出处:blog.youkuaiyun.com/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. ……

掌握好这些事情之后,会发现人的积极性不但因受激励而提高了,产品的生命力也似乎提高了,很少走弯路。而最终表现结果就是生产率提高了。

 

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》

 

软件工程结课论文 敏捷开发在软件工程中的应用 大学编程作业(TUST 天津科技大学 2022年) 本文由软件危机的产生开始,简要介绍了传统软件工程开发和敏捷开发的基本内容,根据现有软件工程模型的实际运用对比,列举出适合敏捷开发过程的应用场景,并对常用敏捷开发过程进行分析,为实现软件产品的轻量化开发管理交付提供了方法依据。这篇文章是我大三写的,现在回顾已经非常粗糙,分享出来一方面希望可以帮助初学者,另一方面希望能让同学们可以从目前大学中普遍毫无价值的形式主义作业中解脱出来,更加高效地学习优质计算机知识和主流编程技术,一起发扬开源精神,感受互联网技术的美好愿景。 阅读详情

相关推荐

瑞萨芯片串口配置,基于RL78芯片的串口使用配置

在这里隆重给大家介绍瑞萨编辑器CS+ for CA 的自动生成代码功能,只需要配置几个参数,就可以得到你想要的串口配置了,我现在已经忘记怎么手动配置寄存器了,哈哈。选择设置,此时将端口设置成功接下来设置时钟,根据自己的芯片所需设置相应的时钟,自己芯片是什么时钟查看数据手册和原理图可以找到。瑞萨芯片的串口配置其实和ST芯片的串口配置差不多,只是ST芯片的中文数据手册比较多,就更好配置了,找到所需要的串口配置IO口,此时将UART0 配置为引脚P61和P62,瑞萨芯片的串口配置竟然要配置串口。

qq_45315904的博客 4303

软件工程 第二章 可行性研究

软件工程 第二章 可行性研究

qq_51247800的博客 1557

RK3568 解决MIPI屏幕开机只显示uboot logo的问题

之前写过一篇文章介绍了RK3568驱动MIPI屏幕的方法,这次产品迭代,硬件改版,选型的新的屏幕了。所以再次开启调试屏幕的过程。本以为会和上次一样会轻车熟路,事情总是事与愿违,同样的路,遇到新的坑。

fhqlongteng的博客 5426

程序员每天到底可以写几行代码?

对于特定的人,在大致时间段里他所能写的、确定质量的代码基本上应该是个确定值。 这点似乎显而易见,但事实上大多时候却总是被忽视。 如果项目负责人总是认可上面的基本点,那么任何项目的日程就应该以此为前提,而不是以此为变量。 假设说一个项目被估计为1万行(SLOC),团队平均每人每天可以写100行代码,如果团队中有5个人,那么就应该至少为编码保留20整天。   说到这里,为避免误解,要区分一下...

weixin_33882443的博客 801

BepInEx插件开发实战:用Visual Studio快速创建你的第一个Unity Mod(2024新版)

本文是2024年新版BepInEx插件开发实战指南,详细讲解如何使用Visual Studio快速创建你的第一个Unity Mod。内容涵盖专业开发环境搭建、插件生命周期解析、利用HarmonyX进行游戏代码注入、实现实时调试与热重载技巧,以及项目配置与打包发布全流程,助你从Mod使用者转变为创造者。

weixin_29002595的博客 340

电子数据取证实战:从“平航杯”竞赛看计算机检材分析的关键技术与案例解析

本文通过'平航杯'电子数据取证竞赛案例,深入解析计算机检材分析的关键技术,包括USB设备追踪、浏览器历史分析、AI换脸取证、虚拟货币交易追踪等实战技巧。重点探讨了数字痕迹的发现与关联,以及电子取证工具链的应用,为从业人员提供实用的技术参考和案例分析。

www00的博客 537

如何提升软件质量及开发效率

保证软件质量,是一个贯穿整个软件生存周期的重要问题,而不仅仅只是测试,软件测试只是能发现问题,就像温度计只能判断你是否感冒,从源头降低问题出现的概率才是重点。

mahuifa的博客 9439

Unity中使用TCP和UDP传输摄像头视频的实践

本文探讨了在Unity中通过TCP和UDP协议传输摄像头视频的实现方法。TCP通过自定义消息帧保证数据完整性但效率较低,UDP传输速度快但可能丢帧。文章提供了Python和Unity的代码示例,分析了两种协议的适用场景:TCP适合要求数据完整性的应用,UDP则适合追求实时性的场景。最终选择取决于具体需求,并需要注意线程安全与同步机制。

m0_74337424的博客 145

敏捷开发学习笔记

定义:敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。   子项目特征: 各个子项目需求经过测试; 具备集成和可运行的特性; 小项目相互联系。 敏捷更符合软件开发规律 软件更像一个活着的植物,软件开发是自底向上逐步有序的生长过程,类似于植物自然生长 敏捷开发遵循软件客观规律,不断的进行迭代增量开发,最终交付符合客户...

weixin_34409822的博客 127

OpenClaw实战系列02:企业微信接入完全指南

本文详细介绍了如何将OpenClaw与企业微信对接,实现智能机器人功能。主要内容包括:企业微信侧创建智能机器人或自建应用,获取必要凭证和权限;OpenClaw侧安装配置企业微信插件,设置通信通道;完成双向验证并进行功能测试。文章提供了详细的配置步骤、常见问题排查方法和进阶玩法,帮助用户在30分钟内完成对接。关键点包括:确保URL可访问、Token一致、网关正常运行,以及针对不同部署环境(云服务器/内网)的配置差异。

PeterPan的博客 3812

OSError We couldn‘t connect to https://huggingface.co to load file, couldn‘t find it chatglm3-6b解决方案

本文主要介绍了OSError: We couldn’t connect to https://huggingface.co to load this file, couldn’t find it in the cached files and it looks like THUDM/chatglm3-6b is not the path to a directory containing a file named config.json.解决方案,希望能对学习python的同学们有所帮助。

weixin_43178406的博客 5万+

Agile——敏捷开发方法

Agile目前没有明确的定义,其特点是对软件生产率的重视,适用于需求模糊,快速变化下,小型项目的开发。核心理念为适应和以人为本。 Agile方法的指导原则: (1) 在快速不断地交付用户可运行软件的过程中,将使用户满意放在第一位。 (2) 以积极的态度对待需求的变化(不管该变化出现在开发早期还是后期)。Agile过程紧密围绕变化展开并利用变化来实现客户的竞争优势。 (3) 以几周到几个月为周期,尽快、不断地交付可运行的软件供用户使用。 (4) 在项目过程中,业务人员和开发人员最好能一起工作。 (5) 以积

weixin_39872084的博客 1166

实干派!网易易盾增强版滑块验证码,全方位讲解识别思路(含源码)

该验证码是异形滑块验证码中的一种,缺口旋转+偏移的处理需要你有很好的图像处理知识,能很好的处理透明通道,同时,该验证码需要你能很好的处理缺口和背景之间匹配的关系,该验证码的处理难点就是两个缺口之间如何找到正确的,两个检测框都有很强的相似度,且加上背景图的干扰,在图像处理和有优化上难度大大增加。

码王吴彦祖的博客 2016

【敏捷开发】敏捷开发方法综述

敏捷开发 简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发方法目前还没有一个明确的定义其特点是对软件生产率的高度重视主要适用于那些...

weixin_33781606的博客 245

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SP(软件过程)的发展历程2:敏捷过程方法

  敏捷方法横空出世传统计划驱动的开发方法不仅没有获得良好的效果,并且由于强调过分过程控制,所以在开发过程中要产生大量的文档,以跟踪,检查设计各阶段的进度,设计状态,因此给程序员,管理者带来很多额外的工作量,这也是计划驱动方法一直为人诟病的地方,因此被称为重量级方法。这种方法的一个后果就是大量的开发时间被用在开发文档的撰写和维护上,而真正花在代码上的时间就相对少了;另外一个后果就是由于主要

routent的专栏 1810

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

《现实世界的敏捷开发》敏捷开发培训课程扩展阅读

转自 http://blog.youkuaiyun.com/cheny_com/article/details/6532763 以下内容及链接,是两天培训课程《现实世界的敏捷开发》的扩展阅读部分。 所谓扩展阅读,就是对于那些限于课堂时间而无法深入展开的知识点,讲师会编写额外的

理性的幻想 983

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

浅谈Scrum实施及敏捷开发方面的各类问题

Scrum是基于过程控制理论的经验方法,倡导自组织团队;其运行框架核心是迭代增量型并行开发,也是“适应性”的软件开发方法。Scrum提供了高度可视化的用于管理软件开发复杂性管理的敏捷项目管理的实践框架或敏捷过程,可以用于对现存软件工程实践的包装,提高软件生产率,改善沟通和合作的方法,使人们协作并注重业务目标。现在Scrum已被众多的软件企业使用,其中不乏有业界知名企业,如Microsoft 、IB...

weixin_39835036的博客 1562

如何采用敏捷方法?

  Normal 0 false false false MicrosoftInternetExplorer4 <!-- /* Font Definitions */ @font-face {font-family:宋体;

routent的专栏 854

敏捷文章总索引及敏捷开发培训课程扩展阅读

以下内容及链接,是两天培训课程《Scrum敏捷开发》的扩展阅读部分,正好可将所有博文索引起来。所谓扩展阅读,就是对于那些限于课堂时间而无法深入展开的知识点,讲师会编写额外的资料以供参考。课前无需通读扩展阅读,只需要完成对《火星人敏捷开发手册》中目录中标有“课前预习”章节的阅读即可。 课程内容需求管理项目管理敏捷部署  Scrum介绍 —  快览诺基亚标准:Does your Scrum team

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 4983
上一篇: 彼得定律与员工职业生涯规划(该提拔谁,职业规划,知人善用)
下一篇: 绩效管理:软件开发团队的非物质激励机制
火星人陈勇
博客等级 码龄18年 4899粉丝 381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值