完成比完美更重要?请三思而后行

“发 布或死亡”、“完成比完美更重要”、“只需发布”,最近我们发现类似的话成为越来越多团队的箴言。他们赞美达成带来的荣耀,却忽略了完成的目标是为创造价 值,而不是构建一个创业公司。这种“发布(ship)”心态可能带来危险的效果,并让许多创业者做着一些平庸、多余或不重要的工作。

发布至上的优势

为 什么这种达成至上的心态会变得如此普遍?其原因并不是他人的鼓动,而是这样做后带来的体验使然。当自己做的产品已经部署并且确实也有用户在使用时,给团队 带来一种正整体向上发展的感觉。有时候这也只是自己的遐想。当你想快速测试一个想法或小特性时,”达成”的想法或许会有用。不过有时也会得到错误的反馈。

发布至上的风险

这也是问题所在。当你正享受达成的快感时,实际你正面临这样两个风险。

→ 发布错误的东西

如果自己都不认可即将发布的产品或新特性,那就是一个错误的“发布”,结果只能是南辕北辙。就算你因此获得一些反馈,并通过及时纠正让自己学会变得更快,但这些反馈也可能让你误入歧途。

→ 发布一个平庸的产品

“发布至上”最大的问题是:很多时候品质得不到保障。因为发布的产品本身就考虑欠周全,所以即使便获得反馈,也不能反映出自己真实想法中存在的不足。

回归品质

再回归品质来看,实际经验表明,高品质的内容会带来惊人的回报。

从上面这个图形我们可以得知,投入的时间与精力对产品价值的影响。当你投入更多的时间和努力到工作中后,可能获得高达10倍的效益。额外工作回报率非常简单,竞争对手可能很早就已放弃。或许他们解决问题很容易,但使用的都是最基础的方法。

此前,乔布斯曾对品质有如下表述:

首次着手解决某个问题时,第一个解决方案通常是很繁复的,而大多数人也止步于此。但如果你继续尝试,通常会获得一些非常优雅、简单的方案。大多数人只是不愿意在这方面花费时间和精力。我们相信客户是聪明的,他们想要一个考虑周全的产品。

品质不等于行动迟缓

有人认为精力集中于品质,将导致的最大问题就是行动迟缓。实际的经验告诉我们,事实并非如此。很多时候快速发布产品后,一旦出现问题,将花费更多的时间进行弥补。这样实际上花费的时间,比一次做好所花时间更多。也就是我们常说的欲速则不达。

找到平衡点

Facebook提出的“完成比完美更重要”确实是一个不错的箴言。但如果将其作为创业者的普遍行动指导,恐怕不合适。事实上更深层次的东西,我们无法通过一句话获悉。

这就是为什么Dropbox用了18个月时间才最后发布。Evernote花了大约两倍的时间构建出原生客户端应用程序,以取代简单的移动网页版本。另外还有Square的品质困扰;Quora花三个月去找出的唯一有问题的那个页面等等,这些都不是偶然。

更好的产品需要经过深思熟虑,才能最终获得胜利。特别是在生态系统不存在转换成本,并能通过排行榜赢得市场的情况下,更是如此。

Android 4.0:该来的总会来的

业界消息称,华硕、三星、索尼等大量厂商都已经纷纷完成了Android 4.0操作系统的测试和认证工作,很快就会为旗下设备提供全面升级服务。Android 4.0其实早在2011年11月就已发布,但大多数厂商的旧设备均未获得升级,不过随着各家陆续公布升级计划,Android 5.0又很可能在5-6月份就露面,局促的更新换代进程让厂商们忙得颇为焦头烂额。

而且厂商们最优先考虑的肯定是开发新设备,然后才会为旧设备提供升级,所以大多数厂商都无法按照预定计划完成Android 4.0的升级。

华硕第一代Eee Pad Transformer已经享受到了Android 4.0.3,三星则在率先更新了Galaxy S II i9100之后又会陆续升级Galaxy Tab 8.9、Galaxy Tab 10.1、Galaxy Note。

索尼的Tablet P/S系列平板将在四月底获得Android 4.0,带来增强的用户界面和新功能。

除了Android,各家厂商也都在忙于Windows 8系统的相关设备开发,毕竟它会同时支持x86、ARM。

Android 4.0:该来的总会来的

开源者的信仰正在崩塌

GPL 协议的自由软件分享规定对于一些个人和企业是一种约束,这让许多开发者或者公司开始转向使用 Apache 许可协议,Apache 许可协议允许人们使用、修改开源代码,但没有要求使用者必须公开分享自己的源代码。这让许多开源运动支持者开始质疑,开源者的信仰是不是已经改变?

Sleepycat 软件公司 CEO Mike Olson 作为开源运动的先驱,却不是一个开源软件狂热分子。他对开源运动有自己的理解,并作出了与众不同的举动。

早在 90 年代 Linux 还未盛行时,Olson 在建立开源软件 Berkeley DB 资料库过程中作出了不小的贡献。而作为 Sleepycat 软件公司的 CEO,他利用一个类似于 GPL 的协议——对于 Linux 发展非常重要的自由软件协议,将这个资料库成功转入商业化。GPL 协议规定:如果你完善了某个自由软件并将它的代码应用在一个大型软件产品中,那么你需要将你的这个产品再共享给自由软件用户。

在 2009 年,Olson 建立了 Cloudera——第一个利用 Hadoop 牟利的组织,基于谷歌软件基础结构的开源数据运算平台——他用 Apache 许可协议替代了 GPL。Apache 许可证不要求使用者必须将软件再次共享给大众。你可能会觉得这样的许可协议一定会阻碍开源世界的发展,但 Olson 认为存在这样的不一样的声音是很有必要的。

Olson 绝不仅仅是唯一一个支持 Apache 许可协议的。据一组统计数据显示,当今世界上许多开源项目都在从有约束性的许可协议(比如 GPL 协议)阵营中转投宽松的许可协议(如 Apache 许可协议)阵营。并且,许多开源运动关注者——包括长期关注的专家 Matt Asay 和一名来自 RedMonk 对开发有兴趣的研究员 Steven O’Grady,都认为这样的改变将会给开源世界带来更好的发展,会有更多的人加入开源阵营。

“商业化的开源项目都开始向 Apache 许可协议模式转变,而 Olson 只是走在了这些人的前面,”多年来一直轻视 Apache 许可协议重要性的 Asay 指出,“他就是在幕后一直嘲笑我们这些 GPL 支持者的家伙。”

这场运动最大的力量来自于互联网巨头,包括 Facebook 和 Twitter,他们相对于传统的软件公司对开源有着非常不一样的态度。但随着这些巨头以及他们的项目源源不断加入到支持宽松许可协议的阵营中来,产生了 一大批利用开源获利的公司,如 Cloudera,他们避开了 GPL 以及其他的约束性许可协议,很可能吸引商业公司的注意。

相对于 Apache 许可协议,许多公司都担心 GPL 协议,担心 GPL 协议会让他们公布自己的私有代码。但是在 Apache 许可协议内,这种担心就没有必要。对于 Olson 以及其他人来说,这不仅仅是鼓励他们使用开源工具,也是非常有利于 Cloudera 这样的公司从自由软件中赚钱的。

Apache 许可协议受到青睐

Black Duck Software 一直在跟踪调查自由软件许可协议,根据其统计,约束性许可协议例如 GPL 仍然被广泛的使用。但现在,自由软件运动逐渐成熟,而且互联网改变了这场运动的经济状况,Black Duck 的统计表明,GPL 的影响力相对于许多如 Apache 这样的宽松类许可协议来说正在逐渐下降。

有数据显示,GPL 协议的项目使用率正在由 2008 年的 70% 下降到现在的 57%,而 Apache 以及 MIT(另一个宽松型的许可协议)的使用率则分别由5% 上升至 11%。

Free Software Foundation,由 GPL 产生的非营利性公司,它的一名许可协议服从工程师 Brett Smith 认为像 Black Duck 公司的统计数据具有误导性。“他们所得到的数据不是完全公开的,所以通过那些数据计算出来的数字无法表明什么”,他说,“以后 GPL 或者其他许可协议如何发展很难预料的。”但其他人,如 Redmonk 的 Steven O’Grady 和 OuterCurve Foundation 的执行董事 Paula Hunter, 一名微软后端开发开源的提倡者,他们认为他们看的东西发展趋势是和 Black Duck 公司看到的一样。(Black Duck declined to be interviewed for this story).

很明显的,最近几年很多开源项目都姿态鲜明地选择了 Apache 许可协议,包括云计算平台如 Hadoop、OpenStack、Cassandra 以及 CloudFoundry。另外,Node.js 遵循的是 MIT 许可协议。甚至一些著名的移动平台也加入了这一阵营,比如安卓手机操作系统就支持 Apache 许可协议,惠普之前则公布了开源的 Palm’s webOS 平台加入 Apache 许可协议阵营的时间表。

巧合的是,许多项目都是来自大的互联网公司。“相对于我们以前所看到的,他们对待开源有截然不同的态度” Steven O’Grady 说,“他们不再像以前那样重视代码了。这些公司在五六年前将代码视作私有——他们认为这些代码是与众不同的——但现在却公开了。”

包括 Facebook 以及 Yahoo 在内的通过 Hadoop 引导的公司,他们不以出售软件为主要业务。但那只是部分的情况。他们通过利用别人的开源软件建立业务运营,所以他们也愿意把这些再分享给别人而不索取回 报。但同时,他们知道其他人也是这么想的,所以他们知道,无论怎样,回报最终还是会到来的。

O’Grady 认为 Twitter 是另一个很好的例子,他们的项目是开源数据库 FlockDB 以及开发者工具包 Bootstrap。还有 Rackspace,他们的 OpenStack 是一个提供虚拟计算资源的亚马逊互联网服务平台。

这样的趋势不会停止,在开源项目周边,有无数企业如雨后春笋般出现,它们希望帮助世界各地采用该软件,然后从中牟利。Facebook 的数据库 Cassandra 催生了 Texas-based DataStax、Hadoop 催生的不仅仅有 Cloudera 还有雅虎的子公司 Hortonworks、Rackspace 围绕 OpenStack 建立了自己的服务部门,还有 Node.js 的管理员 Joyent,利用开源开发平台售卖软件以及为一些公司做服务。所以说,Mike Olson 并不是个例。

GPL 协议是否是毒药?

在 Olson 还在 Sleepycat 的时候,Berkeley DB 基于 GPL 协议获得了一个“强有力的非营利性版权”。你可以免费使用 Berkeley DB,但是如果你用了,你可能不得不用你自己的代码来付出代价。对于很多公司来说,这是令他们非常不安的一个规定。虽然他们想要用 Berkeley DB,但是他们不想放弃自己多年开发的软件。但 Sleepycat 提供了一个空子让他们来钻,如果你支付给 Olson 和他的公司一些费用,他们就能给你提供不同的许可协议来允许你持有你自己的代码不公开。它被称之为双重许可协议的技巧。

“GPL 协议是一种毒药,而我们能够卖给你解药。如果你不希望你的源代码受到 GPL 协议的影响,你可以购买一份不同的许可协议。”Olson 说,“这对我们来说,相当成功,但是我们永远没法成为一个年收入上亿的公司。我们的商业交易建立在我们的顾客被威胁的基础上:‘除非你给我钱,否则将危及 你的知识产权’,那不是开始商业行为的好方式。”

而在 Apache 许可协议下,Cloudera 完全改变了状态。本质上,你可以以你喜欢的任何形式使用自由代码——不需要贡献任何你自己的代码给其他共享者。而 Cloudera 则利用出售支持以及增加串联 Hadoop 的私有软件进行赚钱。这起到了在自由软件与非自由软件间搭建桥梁的作用!

“开源是我们所做的工作中很重要的一部分。我们有一半的工程师都工作在(Hadoop)开源项目上。”Olson 指出,“但更重要的是,我们需要将自己和其他市场区分开来,这样可以让用户有充分的理由认为我们是特别的。”

有些人称 Cloudera 是一个“开放核心(open core)”公司。项目的核心是开源的,而 Cloudera 所提供的周边的付费软件则不是开源的。但这个名字并不是一开始就有的,“开放核心(open core)”在公众的嘴里是一个否定的词语,因为它在暗指 Cloudera 是伪开源的。

Mike Olson 不关心别人怎么称呼 Cloudera,只要能带来利益,人们怎么称呼它都无所谓。

开源的实用主义

神秘的 Cloudera 很少谈到他们的收入,但他们的客户名单上却不一般,他们拥有包括 Groupon、Rackspace 以及 Samsung 这样的大客户。对于 Olson 来说,Cloudera 的发展已经超出科技领域冲进华尔街和生物医学领域了。这个公司成功最重要的部分,Olson 说,就是 Apache 许可协议。他理解人们为什么喜欢 Free Software Foundation 创始人 Richard Matthew Stallman 创建 GPL 协议,并且,在很多年前,GPL 对 Olson 来说也是好东西,但现在,这是新的时代了。

自由软件运动的精神领袖理查德·马修·斯托曼(Richard Matthew Stallman)

“我不相信政治或者宗教信仰会是稳妥的商业基础,”Olson 讲到,“如果你和早期的一些自由软件者聊天,所有的内容都是关于权利和责任的——我明白为什么 Richard 对那东西感兴趣——但如果你作为一名商人,你必须抓住用户、市场以及商业机会。GPL 确实能够给你赚钱的机会,但是还有其它的合作的许可协议能够让你赚的更多。”

Apache 的优点是很少会带给潜在客户威胁。“如果你希望软件被使用,你需要一个 Apache 许可协议,”国际法律公司 DLA Piper 的合作伙伴 Mark Radcliffe,一个专攻开源软件的家伙如是说,“在与之打交道的过程中,很少会遇到复杂的法律问题。”并且,一旦你有了用户,例如 Olson,那将会有大把的机会赚钱。

当开源他们的源代码时,很少遭遇复杂法律问题是许多互联网公司选择 Apache 许可协议的另一个原因。“将开源发展融入他们基本开源项目战略的原因有很多,发展趋势只重要的一方面,但你们不要担心这种情况会发生在 GPL 那里。”Radcliffe 讲到。换句话说,他们不用担心要开放自己不想开放的那些代码。

最重要的宗旨是基于 Apache 许可证下,开源代码与私有代码自由混合是被允许的。Olson 认为这是未来的发展趋势,而像 Oracle 以及 IBM 这样的巨头已经围绕开源软件项目建立了成功的商业模式。“我想,开源商业化的成功将会更像 IBM 或 Oracle 多一些,像 Red Hat、MySQL 或者 Sleepycat 少一些。”

他认为,即使没有类似 GPL 这样的协议存在,这些公司也将会继续促进开源项目的发展,因为他们现在开始意识到这些项目能带来的利益是可观的。“随着行业的逐渐成熟,我想人们已经认识到相互协作的价值,”他说,“你们不需要去吓唬或者逼迫他们。”

只是,这样的“开源”还是不是开源者最初所信仰的“开源”?(翻译/魏兵)

为什么设计师创造的编程语言更受欢迎?

在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。

和那些在最后期限重压下产生的语言版本比较起来,从一定程度上来看,从学术界产生出来的编程语言是失败的。当然,并不是全部。事实早已证明。本文作者Cristina Videira Lopes是一位来自加州大学欧文分校的权威计算机科学家,下面是她的关于编程语言的研究:

开发者喜欢用的语言:

  • PHP – 1994年由Rasmus Lerdorf 设计。“最初设计PHP的目的只是用在他的网络简历上来追踪访问者的,他将它命名为‘个人主页工具’,通常简称为‘PHP工具’。”根据langpop.com的非正式调查,它是排名第四流行的编程语言。
  • JavaScript – 1995年Brendan Eich开始使用。“JS(JavaScript)看起来有点儿像Java,更确切地说,像Java傻傻的弟弟一样。在10天里我只能这样做,否则就会出现比JS更糟糕的东西。”归功于网络编程,JS可能已经成为目前最流行的编程语言。
  • Python – 大约在1990年由Guido van Rossum设计。“我当时只是想找一个感兴趣的编程项目来打发下圣诞节假期的无聊。”(第六流行的编程语言)
  • Ruby  –  大约在1994年由Yukihiro “Matz” Matsumoto设计。“我只是想有一种语言可以比Perl更强大,比Python更好地面向对象,就是这促使我去设计我自己的语言。”

相对的,由那些热衷于内部一致性和正确性的学术派设计的语言却包括了一堆濒死的语言(mostly dead tongues):Fortran, Cobol, Lisp, C 以及Smalltalk。唯一的例外是.NET平台的编程语言和Java,这两项分别由微软和Sun公司花费相当大的投资才出来的项目。

回顾这一历史,以及自己的学术生涯,Lopes觉得象牙塔里创造不出适合人们使用的语言是因为其把编程当成一种科学,而实际上,它更是一种设计。

——我非常想把设计带入到我的日常生活中,我喜欢让我的学生投入到诸如程序语言和程序环境这样的设计中去——在这领域,我有很多想法。我相信对于设计的评估标准是不同于科学和数学的验证的。

Lopes说,实际上,网络迅速地发展也是因为给予了学术界的程序员自由发挥的空间。

——在与科学相违背的一个较好的设计案例就是Tim Berners-Lee向CERN提出的用HTML构建网络的建议。这个建议没有经过任何科学验证。那只是个有趣的关于“信息互联系统”的很好的建议。我甚至可以想象出TB-L的经理当时的想法:“啊,好吧,这个很有趣。他是个聪明人,他需要多少资源,我们就让他做做看,看他能做出什么来。即使最后什么都没有,也没什么大不了的。”TB-L并没有为了这个系统而先写出一份“科学设计的评估报告”,然后“在第二阶段,我们要把它装在很多的机器上”,否则今天这个世界可能会变得大不一样,因为他也许为了那些不需要的证明而陷入黑洞里了。

在程序语言里,这些很多时候可归因为人性:如果他们不好用,他们便不会被广泛采用。正因如此,有的程序语言和完整的系统(如UNIX)在某些人眼中已经被当作计算机病毒看待了。如果可以衡量,这类问题反而会变得困难。正因为是主观的,所以可以通过设计而不是科学来解决。事实上,那些计算机“科学家”仅仅是字面上的“设计者”。毕竟,代码如诗。

2012 Unity开发者大会:首次登陆中国 团队倾城而来

每一个游戏,都有可能是一部经典的杰作。Unity3,将会从技术层面给游戏玩家带来前所未有的震撼,令人瞠目结舌的视觉效果和环境音效。甚至你可以用它来构建大型3A级别的3D游戏。Unity是专门为快速开发游戏所设计的引擎。Unity3包含了许多新的技术。它具备广泛的跨平台特性,无论你的游戏最终要跑在当今哪一个主流游戏平台之上,它都能满足不同平台对性能的苛求。

Unity 3D游戏引擎

Unity开发者大会来到北京

Unity开发者大会首次登陆中国,为广大的3D游戏开发者带来了第一手“白皮书”。Unity宣布将在亚洲举办一系列的为期两天的开发者大会。亚洲的游戏开发者势力越来越强大,通过这一系列的开发者大会,开发者们可以与Unity进行更快速有效的沟通。目前计划在亚洲举办三场开发者大会活动,分别设置在首尔(4月9-10日),东京(4月12-13日),北京(4月14-15日)举行,将为开发者们提供最出色的技术指南和开发经验。

“今年,我们将会在三个国家地区举办开发者大会,这将成为游戏发展史上最惊艳和卓越的一抹重彩。”Unity公司CEO David Helgason说,“日本的游戏产业链最为完善,具有悠久的发展历史,在整个行业中新人辈出。近年来,韩国已经成为游戏设计和制作人才的重地。虽然中国游戏市场刚刚兴起,但是中国游戏产业正在呈现出指数增长。这是一个令人心动的历史时刻,游戏业正在亚洲蓬勃发展。”

这是游戏开发者的盛会,涵盖10多个游戏开发议题。对游戏引擎和开发工具最为资深的讲师将与开发者共论游戏发展之道。同时来自这些地区的老牌游戏开发商,也将会分享他们使用Uniyt开发工具的成功经验。在中国的这届Unity开发者大会,将有中文讲解。另外,深入到会议日程,将会为与会者提供更丰富的沟通机会,每一个主题演讲都会设有Q&A环节。

“亚洲的文化和美学,孵化了一批有着独特内涵的游戏开发者。”Unity亚洲区总经理John Goodale说“我很荣幸的看到,在亚洲Unity游戏引擎能和开发工具得到如此快速的普及,一系列开发者大会的举办,一定能促进亚洲地区游戏开发的整体实力。”

图:Unity引擎开发者 倾城而来

关于Unity公司

Unity是一个直观而灵活的游戏开发平台,你可以用它来实现你的游戏创意和智能互动,创作无与伦比的3D和2D游戏内容。一次开发就可以确保该游戏部署到所有主流的游戏平台。目前Unity技术社区共有750,000注册开发人员。包括大型游戏出版商,独立工作室,学生和业余爱好者。Unity的3D开发工具和平民化的普及政策,在国际上屡获殊荣。Unity公司总部设在旧金山,并且在加拿大、丹麦、立陶宛、瑞典、英国、日本和韩国设有办事处。更多详细信息请访问:http://unity3d.com