- 浏览: 328799 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (262)
- Java (20)
- 设计模式 (16)
- Oracle (13)
- Struts (1)
- 问题解决 (9)
- ibatis (2)
- Maven (5)
- Git (2)
- 实现原理 (6)
- 敏捷开发 (22)
- Spring (4)
- 算法 (8)
- MySQL (2)
- Java工具箱 (17)
- jQuery (1)
- 英语学习 (8)
- 杂谈 (15)
- 多线程 (15)
- Java解惑 (7)
- Linux (1)
- 重构36计 (6)
- 网络 (4)
- PHP (1)
- Socket (6)
- 面试 (1)
- JVM (14)
- 历史与故事 (5)
- 报表 (4)
- CMS (3)
- Windows (1)
- nginx (5)
- 架构设计 (7)
- RubyOnRails (2)
- Hadoop (8)
- Go (7)
- JS (1)
- Web (1)
- 项目实例 (5)
- ubuntu (4)
最新评论
-
jacking124:
按照你这个配置以后提示这个异常?Exception occur ...
Go语言学习:开发环境搭建及Hello World -
焦志广:
有请看http://jiaozhiguang-126-com. ...
Hadoop白皮书(1):分布式文件系统HDFS简介 -
w156445045:
Hadoop 有没windows环境下的配置呢,
谢谢。非常感 ...
Hadoop白皮书(1):分布式文件系统HDFS简介 -
xiangxm:
学习了。
Java 解惑知多少六 -
焦志广:
xhh_lite 写道怎么少了一个类?恩?不少啊,少那个类啊; ...
易学设计模式四 命令模式(Commond)
问题
敏捷开发加班吗?
楼下有人问到“敏捷和加班有什么关系”,补充这两句。
有些程序员认为,敏捷开发从制度上要求不加班(可持续的步调),因此会说“老板,现在你不是推敏捷开发吗,那我们就不能加班了,因为敏捷开发不能加班。”结果肯定是:“敏捷要敏捷,加班也要继续加班。”
“存在的就是合理的”,既然加班,至少还是有目的或好处的,要想把加班废除掉,就必须找到比加班更合理的东西,让它取而代之地存在,而不要在制度上抬杠。
“它”是什么呢?
分析
说不加班,那么原来加班产生的生产率,现在怎么弥补?
说加班,那么怎么理解敏捷12原则中“可持续的步调”这句话?
在解决这个问题之前,先看看为什么加班。
“加班是因为生产力不足”
这个是最常见的理解,除了加班,还有一个就是招人,招人+加班,来解决生产力问题。
不过,为什么有些公司,人数众多,天天加班,但面临倒闭呢?
神奇的是,倒闭之前,还会裁员,重新把生产力降低下去;而裁员行为常常被肯定,比如每当上市企业裁员,股价还会普遍上升(当然之前肯定跌过)。
到底生产力降低和股价上升之间的关系是什么呢?为什么两者有很明显的矛盾?
这一切在敏捷开发里边有答案,但是不很直接,因为发明敏捷开发的人,都不关心股价。
“加班是因为要做的东西太多”
诺基亚的盛衰是个鲜明的例子。
诺基亚在20年前最低靡时期的业务,是后来鼎盛时期所有人加班都做不完的,为什么呢?因为那时候诺基亚从事纸浆、化工、家电、家具……等无数行业,每个都舍不得放下。
诺基亚的崛起,是从它开始舍弃上百种业务而专心电信领域后开始的。而诺基亚的衰落,则是从它在电信领域又用有上百种产品后开始的。
简单地“拥有上百个行业或产品”并不会直接导致企业衰落,但是将导致企业臃肿,专业性降低,决策层无法理解不同行业,进而导致决策层效率下降,市场感知力下降,最终导致企业衰落。
最后用两句话简单地再理解一下这个观点:
MS在Windows里边做的功能,Google加班也做不完;Nokia在手机里边做的功能,苹果加班也做不完。
方案
前面的比较容易做,后面的比较彻底。
方案1
对项目经理而言,无论现在是否在加班,以及是否有能力解决“加不加班”的现状,都要去思考一个问题:现在加班开发的事情是重要的吗?它们从哪里来的?
很多时候,我们感觉加班的做的事情以及加班本身都是来自外部的要求,我们无能为力,但实际上我们可能有些事情没做好,比如:
1. 在之前为了迎合领导的要求而抢进度,导致质量低劣,不得不加班……
2. 由于一门心思开发而不关心业务,导致产品经理把业务越来越说明了之后返工很多,导致加班……
3. 由于不关心产品经理是否对需求进行了排序就进行开发,结果发现次要的功能一大堆,重要的功能还没做,导致加班……
……
造成上述问题的主要原因是,在“我们”之外都有一个“他们”,要么是领导,要么是产品经理,或者销售,总之由于“他们没有做好自己的工作”,导致我们加班。
解决这个问题,需要我们相当开放,以尝试帮助他们的心态指出问题。
这很困难,但在之三(见目录)中我们提到,千万别认为别人是不讲理的、不明智的、不接受帮助的,用心迈出第一步是最关键的。
方案2
产品经理要真正理解产品的核心价值。
很多“新产品”在成功后,都会发现原来只是一些很小的功能导致了其成功,QQ,Google,百度,Iphone,都是如此。
如果一个产品经理,坚持“我们的功能全面超过竞争对手”才能成功,那么这个产品经理是没有价值的,因为傻子也能做出这个判断。
好的产品经理,是那些知道,还能说出为什么某些少数功能更重要的产品经理。
之前曾经提到过一个面试市场经理的案例(http://blog.csdn.net/cheny_com/article/details/6773962),那个市场经理的大致观点,也是“只要我们向市场工作投入足够的资金,我们的市场工作才能/就能做好”,同样道理也是不可取的。
上面这两条,是敏捷开发最可能大展身手的地方,以交付核心客户价值为目的,而非交付超过竞争对手的功能,是避免加班的最直接方法。
当产品经理想向老板提议让开发组加班的时候,一定要问自己:“所有这些功能都是必需的吗?”因为对脑力劳动而言,加班只能产生不超过20%的生产率提升,而在产品中找出来20%垃圾功能,是易如反掌的事情。
方案3
对于产品总监,要理解行业的最紧迫问题,寻求用户突破口,规划产品线。
在行业中最重要的是用户,而非个别功能了。
最初做互联网的时候,人们都是做“门户网站”的,因为门户网站包罗万象,谁的门户大,谁的用户似乎就多。
但发展到现在,国际和国内的门户网站都衰落了,那些仍然存在的,主营业务也不再是门户本身。
国外包罗万象的Yahoo和AOL都衰落了,国内网易和搜狐在做游戏(70%以上的收入),新浪在玩房产和微博,腾讯嘛……没有QQ,QQ.com就什么都不是了。
“门户网站”实际上本来是一个包罗万象的产品线,为什么不灵呢?因为无论玩游戏,交朋友,查资料……这些似乎在门户网站都能做的事情,都有更好更直接的地方,最终人们离开了门户,去了哪些地方。
所以,如果一个产品总监崇尚完整的产品线、尽可能多的产品等等,很大程度上表明他无法确定哪个产品才是未来的方向,所以只好无原则地扩张。
广种薄收不好吗?不好。
在围棋里边有一种“负目”的说法,就是如果有一片棋形状不好,敌人就会在攻击中围出自己的空,这种棋在清点目数(就是所占空间)的时候,甚至会被先判断成负数。
多余的产品不但不盈利,还分散了开发力量、资金、资源,增加了管理成本。由于互联网时代有“无重经济”的特性,市面上多数产品只能存活前几种,多余的产品全部都是负资产。
08年前我们走访一家游戏公司的时候,得知他们拥有600人的研发团队(在当年属于大的,超过了金山和搜狐),同时在研发40种游戏,出来的时候和行业销售交流了一下看法,感觉平均一个游戏投入15个人,多数还都是MMORPG,恐怕做不出什么好游戏来,再加班也不可能。而事实也果真如此,2010年这家公司发生了很大的人员流失现象,到现在也没有叫得出名字的好游戏上市。以他们的研发数量和资金数量,重点攻克少数产品还是不难的。
你可能会说:“要找到这样一个能做出判断的人太难了”。但是毕竟一家公司只需要一个两个,与其动用如此庞大的人力财力去广种薄收,不如寻找、培养这样一个人,或一些人。而且实际上,世界上并非存在“能做到”和“不能做到”的两种人,多数企业陷入困境都是属于一种“集体无意识”状态;如果企业有意识这样做了,就会发现原来自己企业里边有很多很有大局观和眼光的人。
方案4
这个是最顶层的布局问题之一,就是缩减行业,建立行业优势。
诺基亚和三星当年都干过,就是集中兵力,占据某些少数行业的优势。这两家企业当年都是多面手,都半死不活,都是在消减行业后一举成为世界级企业的。
实际上世界上无数大型公司,如果让我们列举每个公司都产品,我们会发现能说出2个的公司不多,3~5个的几乎就没有了。也就是说这些公司多数就凭借一两款产品就包打天下了。
方案5
也是布局问题:分而治之策略。
三星是一家奇怪的公司,他是少数从事多个行业而又能兴盛的企业。
尽管砍掉了很多多余的行业,但三星今天仍然从事着若干传统行业,不过他们采取了分而治之的策略,就是各自干各自的,自己思考自己的问题,自己获得自己的利益。
尽管三星集团的总市值很高,但与诺基亚、微软当年的顶峰值相比,还有差距,换言之后两者在庞大的体量下,仍然采用中央集权式管理,问题就层出不穷。
比如让做单机操作系统出身的高层去决策互联网时代的MSN问题,让做模拟电路出身的高层去决策智能平板的必要性,难免不出问题。
苹果和Google采取了分而治之的策略,就是采用与开发者共赢的Store策略,让开发者自己去决策应该开发什么,应该开发成什么样子。
ref:http://blog.csdn.net/cheny_com/article/details/7418481
发表评论
-
测试驱动开发
2012-11-11 14:21 0测试驱动开发的一般流 ... -
Kent Beck : 领导的敏捷潮
2012-10-15 10:29 964Beck全家似乎都弥漫着技术的味道。生长在硅谷, 有着一个对无 ... -
什么是敏捷(下)(无住,不住于空,破空执,非法,非非法)
2012-10-09 14:23 930破除法执之后,很容易 ... -
什么是敏捷(上)(无住,不住于法,破法执)
2012-10-09 14:20 1028所谓无住,包括两个含义:不住于法,不住于空。前者比较好理解, ... -
敏捷开发与本能反应
2012-10-09 14:12 770经常听到有人提到敏捷开发与“本能反应”非常近似,比如凡事都需 ... -
敏捷的未来会怎样?
2012-10-09 13:49 375正法,像法,末法 任 ... -
敏捷开发之大型团队切分
2012-10-09 11:00 1073大型团队的切分 如果 ... -
敏捷适合什么类型项目?
2012-10-08 16:44 1443问题 原来问题是这么写的:“一家企业既要过CMMI,又要过I ... -
敏捷开发智慧之:定不定流程和模板?
2012-10-08 15:45 922缘起 (立项时) 甲:“你们的设计文档打算怎么写?” 乙 ... -
敏捷开发智慧之写不写文档?
2012-10-08 15:17 721缘起 “我们产品已经做完了,客户说要补上需求文档,可我们只有 ... -
敏捷开发松结对编程之七问题集锦
2012-10-05 19:06 866人员与结构 在团队中使用层级结构,是否阻碍了个体与外界的沟通 ... -
敏捷开发松结对编程之五代码检查
2012-10-05 18:32 858松结对和紧结对不一样 ... -
敏捷开发松结对编程之四日常管理
2012-10-05 18:16 781团队中常见的一种情况 ... -
敏捷开发松结对编程之三共同估算
2012-10-05 14:58 816估算是经久不衰的管理 ... -
敏捷开发松结对编程之二计划设计
2012-10-03 22:30 750新人其实很少偷懒,因 ... -
敏捷开发松结对编程之一人员结构
2012-10-03 12:11 826传说中的结对编程,大致结构是两个人共用一台电脑,一个开发,一 ... -
敏捷开发心法之共振
2012-10-03 11:42 706共振 共振是以无我、 ... -
敏捷开发心法之无住
2012-10-03 11:33 845无住 在般若敏捷系列 ... -
敏捷开发心法之无我
2012-10-02 21:54 677做敏捷开发时间长了, ... -
敏捷开发松结对编程之六大型团队
2012-09-28 16:49 785松结对编程是小型团队 ...
相关推荐
敏捷宣言之后,进一步细化了12项原则,指导敏捷开发的实践: 1. 最优先的是通过持续交付有价值的软件来满足客户。 2. 即使在项目后期也欢迎需求变更,以此提升产品价值。 3. 频繁交付可运行的软件,间隔可以从几周...
开发人员:咱们敏捷开发!不用写文档,写好代码就可以了。 “敏捷”陷阱 小甲想到某开发公司应聘开发工程师,向该公司的某开发人员打听他们的开发方式。 小甲:请问贵公司开发模式是怎样的? 开发人员:咱们...
### 敏捷开发Scrum详解 #### 一、敏捷开发Scrum概述 **敏捷开发**是一种灵活的项目管理和软件开发方法论,强调迭代发展、团队合作、顾客协作以及应对变化。其中,**Scrum**是一种广泛应用的敏捷开发框架,旨在通过...
钱安川是腾讯搜搜研发管理组的领导,拥有超过五年的ThoughtWorks敏捷开发、咨询和培训经验,同时也是北京Open Party的组织者和主持人。他参与过的培训或咨询案例包括阿里巴巴、华为、爱立信、阿朗和百度等多家知名...
- **敏捷转型**:从传统的瀑布式开发向敏捷开发转变,包括团队结构、工作方式等方面的调整。 - **跨职能协作**:强调不同角色之间的紧密合作,共同解决问题。 #### 总结 本资料提供了关于敏捷过程实践的深入洞察...
1、一套基于ASP.NET MVC+EF6+Bootstrap开发出来的框架,源代码完全开源,可以帮助你解决C#以及.NET项目68%的重复工作,让开发人员远离加班。 2、使用ApacheLicense2.0协议,采用主流框架,容易上手,简单易学,学习...
5. 项目管理:了解敏捷开发方法,如Scrum或Kanban,以灵活适应需求变化,优化项目流程,提升团队整体效率。 6. 团队协作:良好的团队合作能提高整体效率,减少冲突。学会倾听他人意见,积极参与讨论,共同解决问题...
《论如何才能提高软件的开发效率及写代码效率.doc》和《如何才能提高软件的开发效率及写代码效率.doc》中提到,敏捷开发方法和持续集成/持续部署(CI/CD)策略能有效减少浪费和等待时间。敏捷开发强调迭代和快速反馈...
为了应对这些挑战,淘宝直播团队引入了敏捷开发方法,旨在提高效率,确保产品质量,并增强团队的响应能力。本实践分享主要探讨了淘宝直播在敏捷开发过程中的具体实践和经验。 首先,淘宝直播团队认识到传统的瀑布式...
### 敏捷开发过程详解 #### 一、引言 在软件开发领域,敏捷方法论是一种旨在提高项目灵活性和响应速度的开发模式。本篇文章将详细介绍如何运用敏捷开发(Agile Process)来提升团队的开发效率与产品质量。通过分析...
以及敏捷开发并不天然排斥加班。 极限编程(XP)是敏捷开发的一种具体实践,由Kent Beck提出。XP包括策划阶段,通过用户故事来定义需求,团队评估并分配成本,然后分组到可交付增量。设计遵循保持简洁的原则,使用...
SCRUM Master(敏捷教练)协调开发进度,保证Scrum过程的顺利进行;开发人员则负责开发、测试和UI设计等工作,按照SCRUM Master分配的任务进行操作。Sprint作为项目开发的时间单位,通常为一周或一个月。 项目开发...
“ Rocket-API”基于spring boot的API敏捷开发框架,服务端50%以上的功能只需要写SQL或mongodb原始执行脚本即可完成开发,另外30%同时不停的完善公共组件,此类文件上传,下载,生成,预览,分页等等通过一二行...
在职业规划上,开发工程师需要认识到这是一个依赖年轻和敏捷思维的行业。随着年龄的增长,他们可能会遇到职业发展的瓶颈,例如公司招聘限制、晋升机会减少等。因此,规划长远的职业发展,寻找能够积累经验并适应年龄...
2. SCRUM Master(敏捷教练):通常由项目组长或项目经理担任,确保Scrum流程执行,推动会议,协调团队工作。 3. 开发人员:执行SCRUM Master分配的任务,涵盖代码编写、测试和UI设计。 三、项目开发流程 1. 需求...
敏捷开发是一种强调快速适应需求变化的软件开发方法,而XP是敏捷方法的一种,它强调简单设计、持续集成、测试驱动开发和重构等实践。XP倡导的快速调整和迭代开发可以帮助团队减少设计过度和设计失误,从而提高开发...