写代码的人

Archive for 4月, 2011

程序员达到最高效率的一种境界

本文是从 Living in the zone 这篇文章翻译而来。

跟程序员相处你一定会有很多的挫折感。比如,程序员会把能让他们达到最高效率的那种神奇的境界叫做”那里“。

”那里“是真实存在的。至少对于我是这样的,很有可能你也很熟悉那里,只是情形不一样。对于非程序员的人来说,跟程序员的这种境界相对应的情形是, 当你完全投入进一本书或一场电影,你感觉整个世界都消失了,唯一留下了的只有你正在关注的东西。如果你有丰富的创作力,那有可能是在你写一本书或绘一副画 时候。

当你正全神贯注的读一本书上,有人打断了你,通常这会需要你花很长的时间重回到那种状态。通常,当我在读一本书,有人或什么事情(电话!)打断我, 他需要重读刚才那一页,试图接上刚才的思路。甚至一章的结束也会造成思路的打断,需要你花一段时间才能重新进入你刚才的那种阅读状态中。

我第一次进入这种境界是我深深的陷入了编程的状态,当时很年轻,大概17岁。我想写一个程序,在计算机屏幕上进行音乐合成。那是我第一次使用”结构 化编程“,是从一个朋友那里听来的。我在晚饭后开始干活,之后完全忘掉了时间,当我回过神来后,发现已经是早晨,鸟儿在树上鸣叫着向朝阳打招呼,到上班时 间了。我的第一反应是:”哇!,不会这么晚了吧!“我的感觉好像只忙了几个小时,但事实上已经过去将近10个小时了。

这次之后,这种状态出现了很多次,每次我都进入了一种忘我的境界,做事情比平时注意力不能集中或不能真正专注时又快又好。

一旦我知道了这种状态,我试图能重复它,进入它,试图能让这种状态保留更长的时间,获得更大的工作效率,或者能进入这种状态解决难题。很显然,对于 我,这种情形产生在绝对安静的环境里,在我面前的屏幕上只有一种东西(通常是文本编辑器)时,而且需要一个专用的时间,让我意识到不会被什么事情打搅。

数年过去了,生活越来越忙,如今更忙,我进入这种境界的频率越来越少。是否需要进入这种状态另说,现在进入这种状态可以做的大概就是闭上双眼,背着手想事情,如果遇到真正困难的问题或完全不熟悉的新任务,那会更好。

另一件让我印象深刻的事情是,当我处在这种状态里时,有人打断了我,我通常会表现的不太和蔼。我通常需要极大的忍耐不去发火(ok,我说实话,当我被打断时,我会发驴脾气,我的第一反应是发火,我怎么也忍不住。这方面需要多下功夫)。

原因很难说清楚,但我想改正这个毛病。当编写很复杂的程序时(有些问题会挑战我的能力的极限,但对你也许不是难题,而对我却是)我力图保持大脑里这 种我一直想达到的思维状态。一个打搅——不管多么的轻微和细小——整个心境都跌落到地上摔的粉碎。我必须重新构建整个状态才能工作下去,至少需要15分钟 甚至超过1小时。所以,30秒的打搅对于我的实际作用会延长至数十倍的时间,前提是我还能重回的之前的状态,而很多情形下是回不去了。

这种状态下效率的提高是如此的显著,以至于当想真正的干一件事时,我的办法是特意的为这种状态创造一种环境,我会等所有人都睡了,泡一壶新茶,把所有能造成分心的东西都关了(手机,辅助显示器等。)这样把可能的打搅降到最小。通常在这几个小时(2或3个)里,我把最困难的事情解决掉。其它较容易的事情在平时解决。

完全的专注具有强大的力量,它能让你完成你日常生活中或平时状态下不能完成的任务。

如果你总是处在一个噪杂和易分心的工作环境中,有时发现一些难关怎么也翻越不过去,你可以试试进入这种状态,当你真正的集中精力时你才会发现你究竟具有什么样的能力。

处在那种境界里并不是没有代价的,我通常需要好一段时间才能恢复,但终究收获大于损失,特别是它能让我解决在其它状态中不能解决的问题,以及能更快速的解决问题。

如果你也是一个生活在这种境界里的人,我真的想知道你的体验如何,请在评论里告诉我。谢谢。

后记:好几个人都推荐我看这个维基百科链接:意识流(心理学)。

本文转载自: 外刊IT评论 http://www.aqee.net/

敏捷开发中史诗故事与用户故事的颗粒度

导语:用户故事的颗粒度一直是一个谈论已久的话题,但参加了很多研讨会,搜索了很多网络资源后发现一直没有定论,只好在这里原创一下。

  前言:为何需要讨论用户故事的颗粒度

其实需求颗粒度的问题由来已久,即使是在传统开发中,也没有提及在需求分析阶段应该把需求做到什么颗粒度才可以开工。所以在下面这些分析之后会发现,其实即使反推到传统开发中,下面提及的方法也依然有效。

  为何要对用户故事做一个颗粒度约束呢?

笔者在开发实践中发现,如果大小不一的“用户故事”堆积在一起,很难看出一个产品到底实现了哪些功能(或一个项目到底有哪些需求)。如果回溯到敏捷开发的源头就会发现,由于敏捷开发中设定用户故事是为了描述开发任务(尽管是从客户价值角度)而非产品功能或项目需求,因此并没有区分用户和开发人员到底分别看到什么。

其实各种“用户故事”中,大致可以分为史诗Epic、故事Story、增强Enhancement、缺陷Defect、技术债务TechDebts、重构Refactor等几种。其中史诗和故事大致形成树状结构,很容易勾勒出产品或项目的结构,是最需要展示给用户的;增强和缺陷在一定程度上需要展示给用户,但除了评审中或交付后客户提出来的之外,都可以不展示给用户,而且即使展示,“展示”的层次也应该不同于史诗和故事;而技术债务和重构由于太技术化,不适合直接展示给用户,而更适合展示给Product Owner及开发团队。

本文所讨论的,就是用于“展示产品或项目结构”的史诗与故事的颗粒度问题。

  好的用户故事的标准

先看看好的用户故事的标准(内容及观点与《敏捷开发与用户故事》中大致相同):

封闭性:完整地交付一个客户价值

针对性:只包含一个用户,因为多个用户常常有细微的差别

独立性:故事间没有依赖

这几条标准中最有价值的观点应该是独立、完整地交付一个客户价值,这在敏捷开发中是至关重要的。传统的开发会说要交付一个软  件功能,而敏捷开发则认为用户必须使用这个功能以获得自己的价值(请回忆一下用户故事的编写语法)。

不过仅仅如此就说能方便地划分故事颗粒度,似乎还有点模糊,下面会引用两个成熟体系中对颗粒度划分的标准来做进一步说明。

  功能点分析方法与用户故事

第一个是国际标准功能点分析方法(FPA,Fuction Point Analysis)中对内部逻辑文件及基本过程的定义。

内部逻辑文件-基本过程树是一个潜在的史诗-故事树的原型。

一个ILF(ILF,Internal Logical File)就是一组逻辑上的数据,用户能够理解和识别它,对其进行的操作都是用户的业务操作。

比如如果我们要开发一个“Scrum开发管理平台”,那么有一些明显的“逻辑”数据:系统用户,用户故事,迭代,剩余时间……它们不同于数据库表或程序中的类,因为远在程序被设计之前,就可以判断它们是否存在。

一个基本过程(Essensial Process)就是对用户有意义的一次业务操作,在完成这次操作后客户得到其业务价值,而且数据稳定完整。

比如我们“增加一个用户故事”,需要完成的细节过程很多:显示输入界面,在界面中输入数据,数据校验,数据写入数据库表,显示“成功”信息……但只有这一切都完成,从用户角度看才能获得其业务价值,数据也才稳定完整,因此“增加一个用户故事”就是一个基本过程,而“数据校验”等则不是。

在FPA定义中,基本过程还根据分为外部输入/外部输出/外部查询这三种。简单说,我们常说的“增删改查”都是基本过程。为了防止总是从技术角度谈增删改查,常常使用用户业务术语来描述,比如“起草”(输入)、“编辑”(输入)、“发送”(输出)等。

使用FPA中的内部逻辑文件-基本过程树作为史诗-故事树的颗粒度原型有下面几个好处:

基本过程有严格的定义,已经形成了ISO标准,歧义少;

基本过程面向客户价值交付,与敏捷开发的价值观接近,也很容易用用户故事描述;

文件和基本过程的数量被业界证实与软件的工作量有很好的对应关系,已经有多个国家如日韩澳荷芬等将其作为软件计价标准,工信部也已经进行国标立项,面向政府、银行、电信等大量软件外包场景中的造价估算,本文作者是技术专家组成员。

使用FPA中的内部逻辑文件-基本过程树作为史诗-故事树的颗粒度原型,将作出以下约束:

只有独立完整地交付一个客户价值才算是故事,而缺陷、增强等均不作为有效故事对待;

只有用户可以直接作为业务操作使用的功能(可以是人-机或机-机交互)才算是有效故事,“开发一个某某函数”(即使这个函数很有客户价值)等均不算是故事;

多个过程不能合并为一个故事,比如“……,可以对故事进行增删改查,……”。这样可以防止过于粗糙的功能描述阻碍用户价值的有效传达,也利于合理计算用户故事的数量。

  MVC与用户故事

第二个是MVC中对Controller和Action的定义。

Controller-Action树是另一个潜在的史诗-故事树的原型。

FPA和MVC居然能扯上关系?是的,上面提到的FPA中的内部逻辑文件,与MVC中的Controller有很好的对应(有的不能),而基本过程(输入输出查询)与MVC中Controller的Action有很好的对应关系。比如如果有一个“UserStoriesController”(UserStories可以看作ILF),就会有一堆Create / Edit / Delete / Index……这就是4个基本过程(从前面“增加一个用户故事”的例子可以看出,Create + [HttpPost]Create两者一起才组成一个完整的基本过程)。

基本过程对应Action还是好理解的,但为何对应内部逻辑文件的是Controller而非Model?因为Controller是面向用户写的,而Model是面向实现技术的。何以见得?因为如果要访问“增加一个用户故事”,我们会输入\UserStories\Create,而其中可能会用到几个Model:UserStories, Statuses, Priorities, Owners……用户无法直接访问Model,但可以直接访问Controller。所以MVC的Model更像是DataModel,而Controller才是BusinessModel(有时不是),是“一组逻辑上的数据,用户能够理解和识别它”。

使用MVC中的Controller-Action树作为史诗-故事树的颗粒度原型有以下几个好处:

Action是一类特殊的面向用户业务和价值的函数,还是客户可以直接感知并调用的函数;

Action的数量多,客户可感知的功能一般也就多(相对于一般函数);

Action是一类可单独演示、单独测试的函数,很适合作为故事使用;

Action很容易被程序员所理解,使用MVC的程序员更容易回答“你们的软件有多少真正的用户故事?”。

使用MVC中的Controller-Action树作为史诗-故事树的颗粒度原型,将作出以下约束:

多个过程不能合并到一个故事中(与前面FPA的观点相同),因为不能用一个Action实现“增删改查”。

Controller的Action将只包含有意义的用户故事。有些程序员为了调用方便,会在Controller里定义一些不期待用户直接调用的函数(尤其是直接定义在controller.cs中),应挪到Model中实现。

  限制与风险

实际上在FPA中,文件与基本过程并非树形结构,一个基本过程完全可能访问多个文件;而在史诗-故事树中,很多故事其实也是跨史诗的;只有MVC强制Action必须属于一个Controller,不过“故事结构 Category-Story”到底应该放在CategoriesController中还是UserStoriesController中?这是一个两难的选择。

此外FPA中整体认为Options、Config这类内容均非要被“卖给”客户的功能,因此不计算内部文件;但在开发中,却需要为其设计Controller来完成工作,两者立足点不同,处理问题会有所差异。

就像明明分子-原子-中子-质子-电子就可以组成世界了,但上帝还是“额外”设计了几百种夸克一样,关于史诗-故事的正确结构应该如何,与增强、缺陷、技术债务、重构的有机关系应该如何,这些内容的合理展现形式应该如何,还需要同行们更多的讨论。

  后语:殊途同归的各流派思想

FPA,大致产生于1970年左右,由IBM的开发人员为了处理银行业务而产生,其目的是以一种客户可以理解的方式来描述和计数产品功能或项目需求。

MVC,由一些软件开发者为了改善软件结构而产生,其目的是通过分离客户业务与实现技术,增强在客户业务变化时软件的可重用性、可维护性。

敏捷开发,大致产生于1998年左右,由一群资深开发人员为了改善繁重的开发过程而产生,其目的是减少不体现客户价值的中间环节和文档,快速适应需求变更,追求客户价值最大化。

但最后居然大致归于:

  内部文件 ≈ Controller ≈ 史诗

  基本过程 ≈ Action ≈ 故事

世界是没有银弹的,为了不同的目的不同的人发明了不同的方法,也遗留下不同的悬而未决的问题,只有各种方法互相包容借鉴,才可能发明出更加完善的解决方案。

【注:本文作者为TechExcel中国 副总经理 陈勇】

来自:http://sd.csdn.net/a/20110425/296479.html

TechCrunch创始人:我们正处于可怕泡沫的中心

TechCrunch创始人迈克尔·阿灵顿

导语:随着科技创业公司估值急剧攀升,关于科技股估值存 在泡沫的质疑声也接踵而至。美国科技博客TechCrunch创始人迈克尔·阿灵顿(Michael Arrington)周日就撰文指出,互联网行业的确再次出现了泡沫的风险,与上世纪末期科技创业公司注重营销不同的是,如今这类公司更加重视工程技术和 盈利,试图以此为铺垫推高估值。

以下为文章概要:

如果你是早期风险投资人或是天使投资人,现在对外宣称互联网存在泡沫风险正是时候。你可以说估值已经失控,并预测科技行业的末日将在不久后到来。因为风险投资人或天使投资人从事的就是“低买高卖”的行当,所以在他们看来,任何有关买价应该更低的观点都是那么的悦耳。

如果有证据表明泡沫确实存在,所有媒体都会将这些证据吞掉。这主要是因为他们在2000年的时候没有购买科技股,而只是从事本职工作,报道纳斯 达克即将崩溃的信号。现在,媒体也参与了这场盛宴,他们肯定不会过早宣布泡沫到来,或经常做出这样的猜测。问题是,这样的证据比比皆是,部分私有科技创业 公司估值过高,投行对初期“A轮”创业公司的估值已突破了400万美元的重要界限,如今平均估值都在600万至800万美元之间。

大量观点认为,今天科技行业的情况与1999年至2000年毫无相似之处。如果你不是业内人士,对Facebook在二级市场估值达到700亿 美元感到担忧可以理解。2000年互联网泡沫最大的问题不是数十亿美元被投入到新的创意——尽管大多数都没有奏效,相反,最大的问题在于没人清楚如何对这 些科技公司进行估值。很显然,到20世纪90年代末期,互联网行业蓬勃发展,每个人都想参与这场盛宴。人们纷纷涌向硅谷从事像“商务开发经理”的工作,每 个人都能成为所谓的商务开发人员,因为这是个虚职,就好比做销售,你没有任何的配额,只管“签单”即可。

商务开发、市场营销和销售这样的工作岗位出现了指数级增长。如果你有销售经验,愿意尝试新的领域,那么就有资金充裕的互联网创业公司聘请你,而且薪酬在10万美元以上,还会向你提供大量股票期权奖励,借款给你去立即购买这些股权,让你看到长期的资本收益前景。

那时我29岁,离开工作的律师事务所,到一家创业公司担任负责商务开发的副总裁。我在几个月后还成了销售部门的主管,尽管以前我从未有过这方面 的工作经历。摩根士丹利告诉我,我在那家创业公司的股权价值4000万美元。但不久我的美梦破灭了,到2001年我基本上身无分文,搬到伦敦后整天借酒浇 愁。这就是我在那个时期的经历。

我认为,2000年互联网泡沫的根源在于,所有人最关心的是营收,用户和页面浏览量似乎并不重要,利润更是白日梦。华尔街分析师都将营收作为判断一切的基准,以此为依据进行估值,而且估值都数倍于营收,他们根本不关心这家公司亏损多严重,认为股价仅与营收有关系。

以我曾经工作的创业公司RealNames为例,当我负责销售部门的时候,我被告知公司要在既定时间内营收达到100万美元。我们通过努力工作和伪造账目取得了这一目标。摩根士丹利此时建议我们上市。

在有关IPO的首次内部会议上,摩根士丹利告诉我们,RealNames将能以10亿美元的估值亮相纳斯达克,而且在一片看涨的预期中估值迅速 达到90亿美元,这可是当时Ask Jeeves(Ask.com的前身)的市值。我持有RealNames大约0.5%的股权,所以我的净资产也达到4000万美元。RealNames的 IPO梦想从未实现,2001年3月,纳斯达克全面崩溃。

当时所有公司都在不择手段从事以提升营收业绩为目的的交易,例如,A公司从B公司购买广告或其他产品,签订为期24个月、价值500万美元的合 约,而B公司再从A公司购买一批产品,签订为期18个月、价值400万美元的合约。上市公司对这种交易尤为热衷,他们要通过这种营收数字来支撑估值,请注 意,我对利润只字未提。当时还有涉及至少三家公司的“三角交易”。

美国检查机构指控房地产信息服务商Homestore就从事了这种交易。该公司从第三方厂商购买产品,后者再从另一家厂商购买产品,而这家公司 接着将其他公司的广告投放到Homestore网站。诉状称,Homestore不应将上述交易产生的营收计入财务报表,但该公司却采用了这种不当做法。

以下即是我的结论:

2000年泡沫:从风险投资公司融资至少1亿美元,然后全部花掉,聘请各类人才尤其是销售人员,不择手段获得营收,将你持有的股票卖出,这样你就能一夜暴富。

2011年泡沫风险:将天使投资人引入A轮融资,令公司估值达到600万美元而非400万美元;尽可能多地聘请工程师;不到迫不得已,不要招募 非工程人员和其他会加大公司投入的人。同时通过最大限度降低成本以支撑公司的快速发展,例如控制开支。如果碰巧创建了像Facebook、Groupon 或Zynga这样的公司,你可以通过在后期融资中筹集大量资金以充分利用高收益率,不断推高公司估值。如果你创建了Twitter,没有任何营收,则可以 利用你在全世界建立的强大文化影响力推动公司估值升高。

本文转载自: 新浪科技

Google工程师:复杂是软件的死敌

Google开发工程师Evan Martin近日在其个人网站发表了一篇博文《Complexity is the enemy》,文章中指出复杂是软件的死敌,新代码的引入是否增加了软件的复杂度,是否应该加入,要依据是否符合项目特定设计目标来判定,在文末作者指出应该像C语言那样写Python代码。现把此文进行了翻译,全文如下:

这是我在Google工作的第七个年头了,在Google我学到了很多东西,远比我可以写下来的多得多。我想我至少可以和你们分享其中的一些。

复杂是软件的死敌,它很难估值,常慢慢地混入到软件开发中。它像一个逐渐变烂的脓包,发现它时,为时已晚。从另一方面来讲,增加复杂度可以帮你解一时之忧:一个新的间接层允许增加新的特性X,但同时你需要增加另外一个间接层;把运行在一个机器上的过程分隔成运行于两个机器上的过程,可以帮你解决当前遇到的扩展难题,但你同时也必须实现一个RPC层,来管理这两个机器。

上面所说的现象在开发者新人中和在老手中一样突出。通过这几年的工作,我认为我已经可以很好地在这方面达到平衡,什么时候应该增加软件的复杂性,什么时候应该拒绝。我常常回想一个朋友对Ken Thompson所开发的Go语言编译器的评价:它很快,因为它只做很少的工作,它的代码十分简单易懂。

写一篇长长的博客容易,而用简短的话来概括相同的观点却很难,同样的道理,开发一款简小而优秀的软件是很困难的。在程序语言设计中,此种现像很普遍。新手所开发的新语言包含过多的属性,很少具有C语言的简明和清晰。在今天的程序开发中,程序的优劣与其包含多少个对象有关,在分布式系统中,则与有多少个可移动的部分有关。

针对此问题的另一个词语是“精巧”:再引用这位C语言大牛的一句话,“调试代码比写代码困难两倍之多,所以,你如果写的代码尽可能的精巧,理论来讲,你很难对它进行完美地调试。”

什么可以帮助解决这个问题呢?是否只能依靠经验呢?我发现,通过特定的设计目标来评估新代码可能会有帮助。如果你说“这并不能帮助解决项目的最初目标”,那么可以很容易地把新代码否定掉。在Google,每个新项目的设计模版文档的开头都有一个“ non-goals”列表:你应该拒绝的合理的项目扩展。

很讽刺的是,我发现了一个很“差劲”的工具,它可以帮助减低软件的复杂度。用C语言写一段很复杂的程序很难,因为它所能实现的功能有限。C语言通常会使用大量的数组,而且你只能使用这些数组,但是这些数组功能很强大——可以压缩存储器表达式,如O(1) ,可以很好的定位数据位置。我从未有意地提倡使用这个“差劲”工具,然而我所得到的应验是:像C语言那样写Python代码。

原文链接:http://neugierig.org/software/blog/2011/04/complexity.html

美国十大Web2.0公司背后的故事

社会化网络已经成为整个社会活动不可分割的一部分,不管是个人生活,还是生意交往。通过这些社会化网络,家人和朋友可以随时随地的在网上交流,物品可以通过网络出售,社交圈子可以不断扩大,新闻可以得到更大范围的传播;而商家可以通过这些网站与客户进行更加人性化的沟通。

社会化媒体无意正在改变着整个整个社会的运转方式。前几天我们就这一主题发布了一篇关于全球每天访问量超过100万的社交网站的文章,这些网站当中 有些靠的是多年的积累,而有些则是这几年爆发的增长。今天我们就来挑选10个广为人知的web2.0公司,道出其背后的故事,他们的诞生、他们的成长、他 们的繁荣以及他们的衰退。

1.Digg

很久很久以前,那是在2004年12月的某一天,有一个名叫Kevin Rose的家伙突然想到了一个主意,让一些有共同兴趣爱好的用户来挖掘出更多相关的内容,于是Digg就诞生了。虽然网站基础是“挖掘”,可是 dig.com的域名早就被Disney占有,所以Rose不得不采用了digg这样一个优点类似但又有点奇怪的域名,也正式这个域名却成为了一代互联网 浪潮的代名词!

Digg的故事是这样的:Rose最开始为这个网站只投入了6000美元,几乎只和一些个人站点或者小型的企业站点一样的规模。然后两年之 后,2006年10月的时候,Digg就获得了250万美元的投资。而到2008年9月份,Digg又获得了2870万美元的投资。这与当初网站的初始投 资形成了强烈的对比。Digg的成功将Rose带到了名誉与财富的巅峰。

从创建至今,Digg一直致力于用户体验的改善。2005年1月份的时候,Digg添加了挖掘与埋葬的功能,让用户能够用鼠标对信息发表自己的观 点。2006年,Digg间谍2.0发布,这个工具可以让你实施追踪其他用户在网站上的动向。同样也是在2006年,Digg添加了大部分我们常见的一些 社会化网站的功能,包括收藏,播客,视频,边栏上的最热门信息以及朋友页面等等。到2010年的时候,Digg已经拥有了4000万用户,这个数字至今还 在不断的增长。2010年,Digg4.0发布,同时推出Iphone及Android客户端应用程序,一切都表明这个网站的稳固定位以及应付未来挑战的 能力。

2.Stumble Upon

2001年11月,Garrett Camp, Geoff Smith, Justin LaFrance, 及 Eric Boyd 4个软件工程师共同创建了Stumble Upon。几乎是从诞生之日起,Stumble Upon就迅速流行并且吸引了一些互联网大佬们的注意,这其中包括Mozilla基金会的Mitch Kapor,首轮资本,Google的Ram Shriram以及Ron Conway等等,也正式这些互联网大佬们的关注,让Stumble Upon的身价迅速攀升至120万美元,一个令人惊羡的数字,但是与Ebay在2007年5月支付的7500万美元相比,这只是一个零头。而Ebay拥有 Stumble Upon只有两年时间,到2009年4月的时候,创始人Garrett Camp, Geoff Smith联合一些投资者一起又将Stumble Upon购回。

关于Stumble Upon较大的一次服务升级,是在2006年12月上线的Stumblevideo。用户现在可以“意外的浏览”到那些其他用户提交上去的视频,并且可以 很方便的为其打分。2007年4月份的时候, Stumble Upon又推出StumbleThru功能,这一功能让那些使用工具条的用户能够随机的浏览一些热门的站点,包括YouTube, Wikipedia等等。根据统计,Stumble Upon拥有1500万用户,而且这个数字还在不断增长。

3.Delicious

Del.icio.us,一个网络书签服务,提供在线保存,分享及发现收藏等功能。2003年由Joshua Schachter创建, 仅仅两年之后,Delicious的迅猛发展就引起了互联网巨头Yahoo的注意,以2000多万美元的价格予以收购。和Digg一 样,Del.icio.us又是一个程序员的名誉与财富之路的神话。2008年,Delicious宣布其用户已达530万,目前,Delicious共 收藏1.8亿的独立网页。

在Delicious之前,Schachter曾创建了一个名叫Muxway的一个来源于文本文件的链接博客,这个Muxway也就是 Delicious的前驱版本。2005年3月,Schachter辞去工作将全部精力投入到Delicious当中。2005年4 月,Delicious从合广投资及亚马逊获取了200万美元的投资。

域名的故事:Schachter的一个朋友曾经告诉他,发现好的网页链接,就如同吃樱桃一般的美味。2007年9月6日,del.icio.us改名为Delicious并启用全新域名Delicious.com。

4.Twitter

曾经有一天,一个名叫Jack Dorsey的人正坐在公园小孩的滑梯旁吃着墨西哥鸡肉卷。也许是墨西哥实物的辛辣给了他灵感,让他去创建一个SMS服务,以便人们能够以群体的方式相互 交流;又也许当时公园里面小鸟叽叽喳喳的叫声催生了“Twitter(有鸟叫声的意思)”这样一个名字。Dorsey后来自己也解释到,Twitter在 某些地方就像是鸟叫,因为他们总是很突然的发出一些无关紧要的闲言碎语!

2006年3月,Twitter正式诞生(详情见:Twitter的5年发展史)。起初只在Odeo雇员内部使用,到2007年4月的时 候,Twitter脱离Odeo,成为独立运营公司。也正式从那时开始,Twitter以惊人速度发展成为一个拥有1.9亿用户,每天6500万消息的大 型社交网站。为了跟上这种爆发式增长的数据,Twitter最近建立俄推出了新的版本及功能。

5.Facebook

哈弗大学的Mark Zuckerburg在2004年创建Facebook的时候正在读大二。网站诞生一个星期后,三位学长遍声称是他们发明了Facebook。故事要回放 到2003年,但是Mark创建了一个名叫Facemash的网站,在这个网站上,Mark同时放上两张哈弗大学的学生照片然后让大家评论出人气更高的一 位。这个网站让Mark遇到了不少的麻烦,但是根据其自己的说法,也正是这个网站的出现,让三位学长来咨询他关于关于建立一个 Harvardconnection站点的建议。三位学长认为Mark违反了约定,窃取了他们的创意创建了Facebook。最终在2008年2月的时 候,双方达成了和解!

让我们抛开这些扯不清的纷争继续讲故事,Mark于2004年夏天搬到Palo Alto市开始全职运营Facebook。很快Paypal的创始人Peter Thiel为Mark提供了50万美元的投资。到今天,仅用了6年的时间,Facbook的用户已经达到了6亿,每个月在线时间达到了70000亿分钟。 到今天所有的人都知道Mark创建了最为流行的在线社交网站,仅用几个月的时间就打败了Myspace,赶超了Twitter的用户活跃度。

6.LinkedIn

一个由专业人员创建并且为专业人员服务的社交网站。Reid Hoffman与Paypal及Socialnet团队于2002年共同创建了Linkedin,网站与2003年5月5日正式线。Linkedin的诞 生迅速的将商业客户及一些专业人员聚集在一起,并且得到了飞速的发展。到2003年底,LinkedIn已经拥有了81000个用户,14个员工。 linkedin以在线简历及商业名片的方式,从起一开始就吸引了全球的关注。实际上,这81000个会员里面,差不多有一半都是美国以外的用户。如 今,Linkedin的每个月的美国流量已经达到2140万,而全球流量是4760万。

2009年,Yahoo前高管Jeff Weiner出任CEO,这次上任无疑让Jeff为自己挖到了一座金矿,到2010年12月的时候,Linkedin的估值已达到1.575亿美元。2011年1月份,Linkedin用户达到9000万。

7.Mixx

看清楚这是Mixx,而不是日本的Mixi。Mixx,一个具有DIGG理念的网站,其内容来源包含了各种新闻网站及视频和图片发布商。Mixx如 此流行的一个原因在于其发布简单,用户几乎可以在网络上很方便的发布自己发现的信息。这个网站诞生来源于一个叫Chris McGill的人,当时他还是Yahoo新闻的主管。Chris发现从韩如烟海的网络里寻找一些感兴趣的内容实在太难了,所以他决定建立一个网站,以帮助 那些有共同兴趣爱好的人更容易发现对口的信息。于是Mixx在2007年诞生了!

在Beta版发布之后,Chris马上最贱了一支强大的管理团队,其中有AOL原内容副总裁Kerry Pearce-Parkins,成为MIXX的产品及市场副总裁。Joe Dzikiewicz及 Ph.D.,原AOL首先工程师,成为MIXX的CTO。至此,MIXX开始得到迅猛的发展,并且很快与一些大型站点建立了合作关系,其中包括 CNN,Weather Channel等等媒体。

8.MySpace

在Myspace成为第一大社交网站之前,还有一个名叫Friendster的网站,但却因为不可思议的服务器原因而被用户遗弃。在2003年初诞 生的时候,Myspace只是一个简单的在线存储式服务。直到2004年,Myspace才变身为我们大家所熟知的社交网站。然而不幸的是,如今的 Myspace已经步入暮年,颓废之势不可挡。

回到2006年以前,Myspace已经成为美国最流行的社交网站。然而后来者居上,Facebook在2008年迅速的超越了Myspace。在 这期间,Myspace先后对网站的功能及样式进行了改版升级。2010年夏天,Myspace改变了真个网站的色彩方案;2010年9 月,Myspace增加了照片区并且加入了Fotoflexer第三方应用,同时也开始允许用户链接自己的Twitter及Facebook账号。然后这 些改变都无法改变其衰退的趋势,2011年1月,Myspace宣布裁员47%。

9.Ning

Ning的创建理念在于让所有的品牌都可以创建属于自己的社交网站。Ning是由Marc Andreessen于2004年10月份于Palo Alto市创建,属于私营公司。2007年2月份正式上线,Ning用户创建的社交网站群已经达到了17000个,到2008年10月与30多为第三方开 发人员共同发布了OpenSocial的APP接口,一个星期内就增加80个多不同的应用。到2008年底,Ning的社交网站群已达到70万。

2010年3月,Jason Rosenthal出任CEO,为Ning的发展带来了新的机遇。CafePress及HeyZap先后成为Ning的合作伙伴,这也为Ning创造了更 多的盈利途径。到2010年7月,Ning先后由Pearson Publishing赞助发布了针对南非教育工作者的Ning Mini版,以及由WEGO Health赞助发的与健康相关的社交网站。

10.Bebo

另一个创新的社交网站,Bebo由一对年轻的夫妻Michael 及 Xochi Birch 在Friendster的经验上穿件的。这个网站的功能看起来比较老套,一些用户分享信息,一些用户评论信息。而网站名Bebo则是“blog early, blog often”的缩写。Bebo网站建于2005年,然后由AOL以8.5亿美元的价格收购,2010年又以极低的价格(传言低于100万美元)出售给美国 私人投资公司Criterion Capital Partners。

2007年7月,Bebo添加了群组功能,类似于Facebook的群组。当Bebo宣布加入OpenSocial,并且发布了过个API接口以用 来开发APP应用,但是却又一大部分的用户投票地址了大部分的APP应用。2008年5月,Bebo出现安全问题,随后修复。2010年Bebo易主后发 布了新的设计界面,并且持续增加新的功能以便与其他社交网站想抗衡。

原文链接:The Story Behind 10 Social Networks

译文链接:http://www.520566.net/story-behind-10-web2-companies.html

国外视点:中国将是云计算未来发展的中心

导读:云托管是否会在10年内集中在中国?基础设施、资金、中央规划以及他们获取丰富资源的途径都决定了这是必然会发生的事。本文原文来自国外媒体所刊发的《Your Cloud Future Is In China》,作者为资深技术专家Greg Ferro。

云托管是否会在10年内集中在中国?基础设施、资金、中央规划以及他们获取丰富资源的途径都决定了这是必然会发生的事。在围绕云计算而展开的庞大营销浪潮中,用户的数据可以被存储在任何地方,计算能力也是如此,用户甚至都不用去关心这些事情。随着中国由农业国向工业国转变,现在又在向第三产业经济迈进,它必将成为建立起一套服务型经济。实际上,中国已经开始在某些领域这样做了。很明显,中国拥有资金、城镇规划和劳动力,它的这些优势必然会让它成为较早一批进入云市场的国家。

这些情况正在发生。IBM已经宣布它将在中国建立中国云(China Cloud)数据中心,占地面积在33万平方米到62万平方米之间,预计配备员工6万人到8万人。

每一个数据中心在建设和运营上都会存在实际和现实的要求。我们目前所用的基础设施通常都是不充足的,下一代数据中心需要更大的资金投资、良好的地方规划、充足的电力供应以及丰富的人力资源。

电力供应

中国政府已经知道国家目前面临着电力供应不足的问题,并且已经采取措施大力投资开发其他类型的发电厂,仅核能发电就超过了规划的700亿瓦。

中国还将建设一个新型配电网络,它将被欧美国家的配电网络更加高效、可靠和强大。仅仅从它将要使用相对更新的技术角度来说,中国就将在未来10年里在电力供应上大幅领先于其他国家,而欧美国家仍在讨论该制定什么样的电力政策。

中国政府官员还打算掌握所有的技术,来生产自己的核电站和开发第二代或第三代电力技术。虽然大多数技术都依赖于西方企业,但是人们相信他们已经学会了许多技术,并且对技术进行了改良,以生产中国制造的核电站。这样他们就不用担心全球电力不足的问题,加快变革的速度。

城市规划

不管你对中国政府有什么样的意见,现有政治环境造成的强大的中央规划机制确实有利于专门用于数据中心和IT服务建设的特定地区的开发。这意味着发电、居民点和商业区等一系列规划都将彻底开发出来。企业可以选择合作开发数据中心,这样的政治环境可以解决所有的实际问题。

美国企业现在经常在不利于长期安保的不适当的地点建设数据中心,比如在地震带建设数据中心或在资源匮乏的地区建设数据中心,又或者在容易遭水灾的地区建设数据中心等,一旦发生自然灾害,数据中心计划就成了泡影。欧洲在数据中心建设的土地利用和环境选择方面也存在着类似的问题。

中国喜欢大,地大物博,人口众多,资源丰富。他们喜欢建设庞大的东西,而且事实证明他们也能够建成实际上规模最大的工程。人们相信他们能够建设巨大的数据中心,即便不比其他国家的数据中心好,至少也能与其他国家的数据中心一样。回顾一下在中国举办的奥运会,多么宏大和成功啊。

廉价且受过教育的劳动力

如果你曾经与中国开发商或IT人士合作过,你就会很快意识到他们是多么聪明。某些企业要求员工IQ在140以上。中国有很多有才干的人,而且他们的劳动力价格比你想象的要低很多。中国的教育系统生产出来的聪明人比你想象得要多得多。

另外,自从教育系统开始从中央政府的投资中受益开始,教育系统就会变得越来越好。依赖于私人资金发展起来的教育系统也经营得不错,但是要想让所有的有才干的人都有条件学习的话,那又不是目前的教育系统能够办到的。许多优秀的人才也许只是没有机会施展才华。

需要证据来证明吗?笔者曾与惠普连网业务高管讨论过Comware软件的软件研发过程中的成本和质量问题,Comware软件是惠普收购中国软件厂商H3C后新成立的连网产品分公司开发的一款产品,结果笔者听到了一些有趣的观点。

由于云托管企业可以买到接近生产来源的电脑商品,因此他们非常看重资本开支节约。这意味着他们可以获得更大的利润,因为启动一项云服务需要耗费大量的资金。减少资本开支意味着短期可获得更大的利润。

从某种角度来说,中国经济将会开始膨胀(如果说现在还没有开始膨胀的话),他们的制造成本将比其他国家昂贵得多(巴西、印尼、菲律宾、肯尼亚、纳米比亚、波斯瓦纳)。中国社会将朝着提供和支持增值服务的方向发展。当然,语言方面的障碍也是一个很重要的因素。云计算等服务非常适用于服务业。

云计算负荷是动态变化的

某些国家的某些托管服务可能会停留于本地,因为即便是为专业用户群体制定的产品或服务,也总会有一些本地商家和厂商去满足他们的需求。

但是云计算分析师和厂商设想的发展前景是,计算负荷应该可以随时随地被迁移。云标准和处理可以让这种情况发生在技术层面,但是许多云服务并没有提供足够的透明度,没有说明那些负荷是在什么地方被处理的。象亚马逊的Amazon Web Services那样的服务可以将负荷限制在各个地区,但是不能在各个地区之间动态迁移负荷,因为存在着带宽限制。在多个数据中心之间调整负荷均衡需要对虚拟机和系统进行特定的改动,同时还需结合考虑带宽等实际限制。

可以想象,呼叫中心离岸外包现象的不断重演是一个自然的现象。一旦第一代和第二代云建成,负荷就会被外包到另一个成本最低的地方。你也许并不知道你的数据被迁移到中国或印度等国家。有很多初创公司担任着云经纪人的角色,比如Spot云,它们就是动态云平台的前身。数据迁移的动态性意味着对法律体制和企业业务的完整性提出了更高的要求。

影响

社会正在提高对个人数据安全性的关注,数据被移动到印度,然后又作为与呼叫中心和后台处理有关的离岸外包合同的部分内容迁移回来。例如,不久之前,IBM就出售了开发服务,随后又把它们离岸外包给了印度。假定IBM向你兜售一款云服务。你可能都不知道他们是否将你的数据和软件离岸外包给了其他国家。那个国家是否制定了相关法律来保证你的数据的安全性呢?对于工业间谍,又有什么样的保护措施呢?那些政府内部是否有安全检查机制呢?呼叫中心方面已经有了先例,离岸外包和输出服务目前是可以接受的。

我们将要做什么?中国在占领国际云计算市场方面拥有很多优势。但是,还有一些问题需要加强控制,需要辨明法律责任以及保证数据的安全性。虽然IT行业正在解决技术上的问题,但是监管机构、保密和法律责任等问题还没有得到解决。企业在选择云计算服务时应当加倍小心,不要只是关心成本的问题,还应充分考虑上述因素。

原文出自:服务器在线

Facebook或重划硅谷战线

互联网用户身份管理平台开发商Janrain公布数据称,2011年一季度Facebook帐号首度超过Google帐号,成为美国网民最常使用的互联网帐号。社交网络超越传统搜索巨擘,这意味着互联网的主角再次转移,同时互联网商业模式也开始变革,更为个性化、具体化的模式崭露头角。伴随着社交网络的兴起,更加丰富的个性化应用成为主流,不仅改变了互联网生态,也将改变传统的三网融合概念,并为之带来新的契机,这就需要电信系和广电系放长远眼光,实现共赢。

互联网大舞台主角再次转移

之前,很多人都认为谷歌是互联网世界的巅峰,它的成功的确是一个奇迹。但五年过去了,互联网市场上出现了以Facebook、Twitter为代表的众多社交网络新星,并呈现一路走高的态势。微软CEO鲍尔默曾激动地说:“Google已经过时了,Facebook才代表未来。”

2010年,无疑是Facebook及Twitter等为代表的社交网络发展最为迅猛的一年,特别是社交网站老大Facebook。截至去年年底,Facebook全球用户数达5.85亿,平均每秒钟增加近8个新用户,成为全球最大的国际化社区。

如今,当人们谈起互联网,恐怕脑海中首先出现的已不再是谷歌、雅虎,而是新秀Facebook以及它身后崛起的众多社交网站新兵。而让谷歌为首的传统互联网巨头更意想不到的是,社交网络的繁荣并非一时的泡沫,它的发展正在继续高涨。据媒体报道,用户账号管理平台Janrain4月15日发布了 2011年第一季度业务报告,报告显示,今年第一季度Facebook帐号在美市场的流行程度首次超过谷歌,成为美国网民最经常使用的互联网账号。

而就在最近,美国一个在线私人投资市场—非上市公司股票交易平台SharesPost估计,社交网站巨头Facebook最新市值可达800亿美元。一家成立仅7年的非上市公司估值近乎800亿美元,其表现相当抢眼。

这些数据多多少少都让互联网企业为之一颤,社交网络超越传统搜索巨擘,意味着互联网主角再次转移,五年、十年互联网又到了转折点,而这次指引行业发展方向的航标换成了Facebook。

同时,Facebook日益增长的野心正在重新划定硅谷的战线,也同样带动商业模式的变革。随着社会向更为多元的文化方向发展,越来越多的人喜欢通过社交网络来表达自己。在上一轮互联网经济热潮中,搜索、娱乐等应用趁势崛起,而网络社区化趋势正使提供这些服务的传统互联网企业面临严峻挑战。

互联网商业模式正在变革

对于Facebook的崛起,业界颇具争议,无非是将焦点放在其商业模式上。其实,Facebook实现的是一种全新的互联网信息获取方式,在很多方面都超越了传统搜索引擎。

过去,搜索引擎缓解了互联网信息爆炸带来的压力,成互联网世界的统治者。但要在成千上万条信息中寻找自己所需,大多数情况下并非理想,而其中可能还夹杂许多无用的东西。相反,Facebook模式旨在帮助人们建立社会性网络的互联网应用服务,简单的说也就是建立起一个网络社交服务平台,用户在这个平台上可创建属于自己的专区。

不难发现,Facebook的成功很大程度上得益于更加有“人”味的通讯平台,在Facebook里面,因为都是自己熟悉的好友,接收到的基本上是真实的信息,让用户觉得心里踏实、有趣。同时,网络不再是“虚拟”的空间,而成为现实生活的另一版本,而在这个版本里面沟通和互动有时显得更有效率,且更有“人”味,这也促使社交网络的价值飞速增长。

其次,从Facebook这几年成长历程中可以看出,其开放、合作、共赢式的战略助其一路高歌猛进。目前,在Facebook平台上大大小小的第三方合作商有数千家,吸引了大量的程序员或公司为其开发各种类型的应用模块,使其网站的用户之间多了很多应用模块,又反过来刺激了用户的增长。

随着电子商务的变革和移动互联网的迅速发展,Facebook也在尝试着新的商业模式。

应该说,Facebook模式已表明互联网信息更加个性化,同时商业模式也开始更加具体。自Web2.0诞生以来,越来越多的网站开始关注趣味性、互动性,从论坛、社区到微博,网民汇聚于此互相联系并通过各种方式分享生活点滴。可见,沟通已成为互联网最重要的应用之一,在国内,新浪微博自开通以来,在短期内便迅速成为国内最为火爆的微博客应用,正聚集越来越多的用户,随时随地共享信息,无限沟通。

总之,Facebook等社交媒体最大的成功是改变了人们使用互联网的方式,并称得上是一次历史性的改变。而且,Facebook的成功能够产生蝴蝶效应,并引领互联网发生巨变。

三网融合与互联网新生态相呼应

今天,互联网已成为人类生活和工作不可或缺的一部分,越来越多的应用和体验都与互联网有密切联系,且互联网自身也正不断发生演变。第一代互联网期间,不同的用户在不同地方获得相同内容;第二代互联网以更多的分享、更多的参与性和互动性为主要特征,使得有共同兴趣的人在一起形成网络社区;而到了第三阶段,互联网愈加个性化的趋势越来越明显。

发生在全球的商业模式、应用等多领域的创新中就有许多是镶嵌在互联网的空间范围内。正如社交网络的兴起,不仅改变了互联网生态,也将改变传统的三网融合概念。

另一方面,就三网融合本身来说,一切正是以互联网为依托。业内人士认为,网络发展的趋势就是向互联网靠拢。而三网融合将通信网、电视网和互联网统筹在一起,将有线网和无线网融合,构建连续共享的新一代宽带网络基础设施,将为个性化互联网提供强大网络基础设施,而且还将促进围绕个性化互联网的产业形态创新。

总而言之,三网融合与未来互联网发展的趋势相呼应,互联网带来更多的创新机遇。社交网络大行其道的时代,更加丰富的个性化应用逐渐成为主流,在这样的环境下,电信系和广电系都应持更长远的眼光,以期实现共赢。

原文出自:通信信息报

 

【评论】后PC时代还遥远 平板电脑取代鼠标键盘需时日

国外媒体周六发表文章称,本周的种种迹象表明,苹果CEO史蒂夫·乔布斯(Steve Jobs)所谓的“后PC时代”距离我们还很遥远,因为平板电脑只是一时的时尚,取代传统的鼠标和键盘尚需时日。以下为文章内容摘要:

微软首席技术官克瑞格·蒙迪(Craig Mundie)3月底曾表示,平板电脑或许只是短期内的时尚,昙花一现而已。

该言论似乎与事实有些出入,因为一代iPad在三个季度内的销量就超过了1500万部。一些知名科技公司纷纷跟进,谷歌、惠普、RIM、摩托罗拉和三星等均已涉足该市场。就连微软也表示,下一代Windows系统将支持平板电脑。

但本周出现的种种迹象表明,蒙迪的言论似乎不无道理:

英特尔2011财年第一季度财报结果超出了华尔街预期,PC业务同比增长17%,而2010财年第四季度同比涨幅为12%。(说明PC业务在增长)

苹果2011财年第二季度财报依旧强劲,但iPad销量却远低于预期。苹果第二季度售出了470万部iPad,低于业内预期的600万部。

RIM PlayBook平板电脑首日销量预计为5万部(包括预订数量),并未给消费者带来任何惊喜。

首款Android平板电脑Motorola Xoom同样表现不佳。

由此可见,当前的平板电脑热销根本不是平板电脑自身原因,而是iPhone推动所致。三年前iPhone上市后,许多用户发现,以前在计算机上 进行的工作,如电子邮件、浏览网页、阅读和玩游戏等,都可以在智能手机上进行。这不禁让用户想到:如果屏幕尺寸再大些会更好,而iPad恰恰满足了用户的 这一需求。

但许多用户还是将iPhone作为手机使用,或作为照相机和MP3播放机等小型设备替代品,或在特定情况下浏览网页,收发邮件,而真正的计算任务仍在桌面计算机上进行。对于这部分用户,购买iPad的成本又过高。

这对于非iPhone用户同样如此,而企业用户正处在PC的更新换代周期,微软在18个月内就售出了3.5亿份Windows 7授权。平板电脑可能会在一定程度上进入企业市场,但只适用于移动办公人员,很难取代键盘和鼠标。在进行图形等大型计算时,传统的计算机仍是首选。

在未来一两年内,iPad也许会被证明是“后PC时代”的开始,但本周的种种迹象表明,传统PC业务短期内还不会被取代。

本文转载自: 新浪科技

你真正需要的代码测试覆盖率是多少?

本文是从 How much code coverage do you really need? 这篇文章翻译而来。


我写这篇文章的起因是由于看了@unclebobmartin在微博上的一些看起来言之凿凿的话语。给那些不认识Uncle Bob的人介绍一下——他是我们软件产业里最著名的一个专家,是《 Clean Code(代码整洁之道)》这本著作的作者,是敏捷宣言(Agile Manifesto)的签署人之一。在上世纪九十年代,他对文献最佳面向对象实践方法贡献了很大的力量。所以,当他说话时,我们一定要关注一下。

他给我们日常的TDD和单元测试制订了一个最高纲领。我们可以从他的微博里清楚的看到这点:

“两件事。可重复性和成本。跟自动化测试比起来,手工测试的成本高的可怕。”

“手工测试不是测试;那是在做实验。只要有人的因素牵涉其中,那结果就必然可疑。”

“你们告诉我的实际意思就是让我大开方便之门、不去测试某些程序。哼 …”

“代码覆盖率100%并不是成绩,那是最低要求。即使只写了一行代码,你也要测试它。”

他接着把软件测试跟在其它领域里常见的但被认为很关键的活动进行了比较:

“战地外科医生也许没有最够的时间做严格的消毒,但这带来的风险可能是死亡或高昂的治疗代价。”

“会计难道只会把80%的数据表做双份备份吗?”

“有多少回你们都看到了那些严重的宕机事故都是因为一些愚蠢的程序员以为那些愚蠢的代码不许要经过测试而导致的?“

他的所有这些观点都很有价值,但他只向我们展示了问题的一面。现实中并不是所有的应用都需要如此谨小慎微的测试。并不是所有的应用都跟战地手术或巨额资金核算那么重要。(更不要说在很多情况下的为”合理避税“而做的帐务:))。

一个更重要的原因是,100%的测试覆盖率并不能保证bug的不出现。就连Uncle Bob自己也承认:

”测试并不能杜绝bug。但测试能保证程序的行为是符合预期的。“

这很显然指的是:同一个程序员在程序里埋下的概念性或逻辑性错误,由他自己测是绝对测不出来的。

最终,所有的问题归结于ROI(投资收回率)和实用主义。有些应用比其它应用需要更多的测试。有些bug需要比其它bug投入更多的精力去修复。 究竟是否需要在自动化测试是投入更多的时间和财力,或多少覆盖率是合适的还是过分了,这都需要人的主观判断。


本文原始地址:你真正需要的代码测试覆盖率是多少?

Google 如何设定目标与衡量成功

编者按:原文作者多恩·道奇(Don Dodge)是Google帮助开发人员在其平台和技术上构建新应用的开发者代言人。在加入Google之前,多恩是微软新兴事业部业务开发主管。他同时 也是一位创业老兵,是如下5家软件创业公司的领导团队成员:Forte Software、AltaVista、Napster、Bowstreet 和 Groove Networks。(以下是全文)

Google往往设定不可能实现的目标……然后去实现它们。解决这些不可能完成的目标的战斗心态,是早已灌输进Google每个团队中的企业文化的一 部分。一些战斗难题的答案并不明显。这就需要你来发掘解决方案,而不是仅仅去优化那些现有的东西。Google的每个团队的每个季度都要设定未来九十天内 的目标,叫做 OKRs(目标和主要结果)。大多数大型企业都会设定年度目标,计划一年内将一些指标提高或增加几个百分点,然后每年进行一次绩效衡量。在Google, 一年相当于十年,年度目标是不够的,他们会设定季度目标,设定不可能实现的季度目标,然后搞清楚如何实现它们。每个季度都要进行一次绩效衡量,然后对突出 成就进行奖励。

OKRs 是指目标与主要结果。我曾经提交过第一个季度的OKRs,里面有我认为积极但依然是可实现的目标。然而这还不够。我的经理解释说我们需要设定看似不可能完 全实现的远大目标。嗯……我回答“这仅仅是90天的目标,我们明明可以设定合理准确的目标,为什么还要设定不切实际的目标呢?”因为如果目标太保守就一定 不能实现惊人的结果。我们需要惊人的结果,我们要搞定不可能实现的东西。

(编注:“OKRs”应该是 “one objective and three measurable key results”的缩写,意指“一个目标,三个重要的衡量指标”。)

失败不是一种选择 —— 不久前我写过一篇关于“失败不是一种选择”的文化文章,讲述了设定保守的人们当然能够实现的目标,这实际上限制了他们自己,此种文化是多么地错误。因为如 果他们一旦失败就会被开除。冒大风险,追求创新,然后努力实现那些不可能的目标,这种情况不会发生在那样的公司里。在那篇文章中我讨论了初创企业对 “不能失败”完全不同的定义。初创企业指愿意尝试5或10种甚至是20种方法,直到找到有效方法的公司。他们不成功不会罢休。Google的文化有点像托 马斯·爱迪生的方法,意思是“我没有失败,我已经找到了很多不能成功的方法,现在我离成功更近了。”

实现65%的不可能的目标胜过100%地实现可能的目标 —— 设定不可能的目标,并实现一部分与安全路线相比是截然不同的目标。有时你可以在一个季度内就实现了不可能实现的目标,但是即使你没实现,也是在很快实现该目标的快速干道上。每季度对业绩的测量,让中期调整得以进行,并可以为下个季度设立更高目标。

对成功的奖励 —— 对实现不可能实现的目标进行奖励是很重要的。就好像你期待有一种计算法则可以用各种乘数来计算动力的奖金。Google之所以吸引众多业内最优秀人才,原 因有很多,最重要的原因是他们为人们实现不可能实现的目标提供资源与支持。金钱奖励确实重要,但是它们却不是主要动力。与世界上最出色的人才共事及实现伟 大的目标才是终极奖励。

拿体育界来类比,你认为佩顿·曼宁或科比·布莱恩特是受金钱所驱使吗?不,他们几年前赚的钱比他们可能要花的都多。他们受成为世界最优秀者的愿望所驱动。这种愿望与动力远比大笔的金钱更有力量。对于Google来说也是如此。

初创企业家受类似愿望驱使,实现不可能完成的事,从“无”当中创造出一些东西(To create something from nothing),吸引最优秀的团队,并且创造不同。从很多方面来说,Google还是一个初创企业,其创始人每天都在努力实现不可能。每个公司都有一个 设立目标、衡量成功和计算奖金的流程。也不是说Google的流程更加出色……真正不同的是心态和文化。身处顶级成功人士之中,你可以感受到一种能量力 场。这会使你感到兴奋,激发你实现比你以为可能的更多的目标。这种感觉很好!

译文出处:伯乐在线 – 职场博客
原文:Don Dodge 文章推荐:关关 翻译:伯乐在线 敏捷翻译组 – 高志翔