Flash恐惧症

我发现我在开发上对Flash有恐惧症。Flash/Flex现在作为不可多的的RIA应用的开发平台,有着许多优势。但是我总是排斥使用Flash/Flex。虽然我在Flash5/MX的时代也做过些动画,那个时候还没有成形的ActionScript,还要用telltarget,Flash也并非开放标准的。当时能用Flash做RIA应用是非常了不起的,因为那个时候没有Flex这种套件框架,也没有适用的IDE,虽然我也很想尝试用Flash做一个社区,但是后来失败了。再后来我就再也没有碰过Flash。

然而我倒并不排斥Flash应用,包括AIR,我觉得很多优秀的应用用起来非常不错。究竟是什么令我在开发上如此排斥Flash呢?我仔细分析了一下,想到以下问题:

当时Flash不是开放的。当时Flash只能使用Macromedia Flash来制作,几乎没有其他够用的工具(我记得有个Swiss)。随着Flash的标准开放,现在情况改变了,有不少的第三方工具。不过因为当时Flash的不开放,让我错过了。

当时Flash在其他平台上的支持非常差。当然,现在已经好很多了。不过即使现在,Flash在Linux下的实现还是有些问题,CPU占用率非常高。Flash曾经是没有Linux开发工具的,现在也没有多少,当然后来Adobe推出了Flex for Linux,结果最近看一则新闻说因为Flex for Linux用得太少,所以Adobe要停止维护Flex for Linux了。这样看来,如果要跨平台,无论是开发时还是运行时,Flash比起html+js还是差一些。

过去Flash主要作为动画来使用,文件非常庞大,那时候也很少使用动态加载。现在用Flex做客户端应用非常方便,但是Flex相对于HTML来说,还是过于庞大。同样的,Flex开发套件也太庞大了,尤其是如果把Java也算进去的话。而我使用HTML/JS可以需要用文本编辑器和一个浏览器。

Flash并非事实上的标准,网站可以不使用Flash,却不能不使用HTML。现在主流的浏览器,都支持JavaScript,却不一定有Flash。

其实我认为我害怕使用Flash最关键的是在于我在开发上的思维转变,过去我很喜欢很酷很眩的特效,觉得有了这些东西,程序肯定就很牛B。但后来我意识到这种想法是幼稚的,这些特效都是浮云,要先抓住问题本质,要去掉这些复杂的外观,直接呈现内容。而如果不需要特效,Flash比起html + js就没有明显的优势了,而我更喜欢html+js的简洁快速。

~~~~~~~~~~~~~~~~~~~~~~~~

Flash作为RIA,目前是如日中天,AIR也是相当流行,但实际上是杀机四伏。

微软也推出了Silverlight与Flash直面竞争。

由于JavaScript的发展,各种JavaScript特效框架的出现,过去需要使用Flash才能实现的很多特效现在可以直接使用js实现,直接消除了一部分对于Flash的需求。

JavaScript的一些工具包,也能实现很多窗体控件,使开发简单,如extjs dojo jquery-ui等,除了IDE上支持不够。这对于Flash的Flex框架也是一种威胁。

Adobe的AIR还比较聪明,没有完全把赌注押在Flash上,兼容了html+js的开发,Mozilla已经推出了Prism来竞争,而Prism的最强大的地方莫过于既有的Web应用可以直接运行在Prism上。

其实对Flash最大的威胁来自于HTML5:

  • 过去JavaScript一直有跨域的问题,而且对长连接支持有些问题,HTML5中的Websocket为Ajax提供了更强大的通讯能力,Flash的优势又进一步减弱了。
  • 利用HTML5中canvas,JavaScript就可以进行高速的2D图形绘制,这也是抢了Flash的市场。
  • HTML5支持离线存储Dom Stoarge,Flash的又一个特性被直接支持

以上这些标准组件在某些浏览器中已经被支持了,Flash对于浏览器毕竟只是第三方支持,但是HTML5的这些东西将来可都是直接在浏览器核心中的。

我想还有一个不得不提的就是3D了,Flash现在也可以实现3D,但是Flash的3D效果只能算普通,效率也比较低,做复杂的3D应用是不适合的。在这方面,Java Applet却可以调用OpenGL,效率就不在同一个层次上了。而最近Google为Chrome推出的o3d,也是Flash强劲的对手。

所以,我觉得Flash未来的好日子有限。

关于九城和魔兽世界

前一段时间九城(以下简称9c)失去魔兽世界(以下简称wow)代理权的事件震惊了业界,作为一个曾经也“浮迷”WOW的我,也来说说我的想法。

关于9c,其实我在高中的时候,也就是2000年左右的时候就认识了,那时候9c做了个Web社区叫做“第九城市”,非常类似于现在的很多Webgame——这里我不得不佩服一下当时他们策划人员的高瞻远瞩。但是后来我就没怎么玩这个“第九城市”,再后来好像这个产品也消失了。

再后来听说9c也是因为wow进入中国。至于暴雪公司(以下简称blz)的wow是怎样优秀的一款划时代的网络游戏,我就不在此赘述了。

国内的玩家多对9c非常不满,他们列举的9c的“罪状”大约有以下几种:

  • 很晚才开资料篇
  • 对游戏中不公正的行为打击力度不够
  • 服务器经常卡、宕机
  • 客服太差
  • 过多HX

所以,9c失去代理权让很多玩家觉非常爽,虽然他们并不能确定下一个网易是否会更好,但是看到让他们受气的9c“早日灭亡”,他们便很爽。

有人认为9c是不想“吊死”在wow一个游戏上,所以才分精力去开发、代理其他游戏,所以导致可能服务不够好。从9c的角度来看,似乎这样做理由确实非常充分——“不要把鸡蛋放在一个篮子里”嘛。把鸡蛋放在一个篮子里,是集中优势力量来解决问题,而不把鸡蛋放在一个篮子里,则是降低风险。然而我觉得9c的做法更像是“捡了芝麻丢了西瓜”——它总觉得自己被wow牵着鼻子走不好,所以就花了大量精力在开发别的游戏、代理别的游戏上面,估计并没有给占9c利润90%的wow付出实实在在90%的精力,我猜有没有50%也值得怀疑。

说到这里,我不禁自己也羞愧了。我想起我的大学生活,我觉得我也是这样。我知道现在大学里面,光靠学校里的课程教的东西,面对工作几乎是一点用都没有的,所以我当时经常逃课,去搞自己的东西。结果是大学四年,虽然我自学了不少有用的东西,也捣鼓了不少项目,但是没有一个成功的项目,也没有一项特别强悍的技术特长。然而,成绩却惨不忍睹,最后大四勉强重修通过,跌跌撞撞拿了文凭。结果呢,我虽然觉得自己技术很强,但是也一直没能进大公司,在小公司里混着。然而,如果当时我能把学校课程学好——并花不了太多功夫,也许就有更好的机会等着我。尤其如果拿我和一些同学一比就更明显了。

反省了自己之后,再看9c:9c运营好wow其实就像是我作为一个学生应该学好学校课程一样,是一个应尽的义务,但是它没有给玩家、也没有给blz一个满意的答卷,失去代理权只能是他自己的错。结果很明显,一心想多条腿走路,结果后面的腿都没长好,而最强的那条腿却折了。

我记得在我高中还是大学,总是忙课外我感兴趣的东西而忽略了主要课程的时候,有个老师告诉过我:“识时务者为俊杰”,意在告诉我,作为学生应该先把学业弄好,才是当务之急。这句话的本意是“认清时代潮流势,才能成为出色的人物”。9c老总朱骏也有个“骏”字,但好像他现在已经不是当时勇夺wow代理权时候的那种“俊杰”了。

如果我发起一个投票说,要是9c和blz都死,哪个先死?99%的人会选9c,再来个投票,如果9c和blz都做同样的游戏,谁做的更好?99%的会选blz。所以么,9c又年轻没有经验,可能还活不过blz,做游戏也比不上blz,9c代理wow其实是稳赚不赔的——赚多赚少则是另外一个话题——好好跟着blz大哥混,总不会吃太大亏——就像我,就算我没有其他特长,把课程弄弄好,将来找工作也不会太吃亏。而9c却认不清形势,朱老板也整天玩个“球”,那只能在wow这个主修课程上得个不及格,不能毕业了。

9c,你还是重修吧。

正常的傻瓜

去年早些时候(也可能是前年晚些时候),我读过一本书《别做正常的傻瓜》,这本书揭示了普通人在做决策的时候,往往做出一些看似很合情合理的,然而却自相矛盾的傻决策。

这本书是相当不错的一本书,他是关于决策和管理的,但是我在反复推敲书中的例子时候,我觉得书中的推论并不是十分的让我信服。

书中一开始提到的关于新型药物测试的两个问题,第一个是问读者肯出多少钱去掉0.01%的死亡几率,第二个则是问要给读者加上0.01%的死亡几率得给读者多少钱才行。
作者认为这两个价格应该是一致的,但是我认为这是人的趋利避害的本性。因为对于这个事情来说,前者对是要花钱,后者是要赚钱,作者忽略了调查对象对于自身情况的考量,一种是对于0.01%概率的事情来讲,我们每天的生活无论是走路、生其他病、坐车,都有着突然丧命的危险,多增加点风险对于我们而言并没有什么特别的地方,另一种情况是我们都会根据自身的经济实力来权衡给多少钱;而后者,其实对于绝大多数人来说,绝对不会去做这种尝试,而题目放在这里,多少有点强迫读者把自己想象成非得去接受,那么如果非得去接受,那就抓住这个能赚钱的机会,让对方多出点钱——如果是我,我也绝对不去参加这种测试,但非得把这种机会套在我头上,我当然要狠狠敲一笔竹杠。

还有个地方讲到买闹钟和名表的事情,两边都有同样数额的优惠,但需要走一段路程。有人说是比例问题造成的心里错觉,我认为这种错觉是来自于角色的定位。也就是说,一般人绝对不会去买六千多的名表,但在填表的时候,有人会觉得,都有钱买手表了,那还去关心这点钱做什么,他们会享受这种过程而无所谓,其实多数人实际上会去买几十块钱的高仿品。调查忽略了调查自身其实会影响被调查者的心理状况——当然,书中所说的比例偏见也是很常见的。

书中还有关于过于自信的测试,我认为这个测试也是有点问题,因为他给的区间是50%到100%,而不是0%到100%,如果使用我这个参数,那么测试结果会大不相同(我怀疑做问卷的人用了“锚”的概念,真是邪恶啊)。而且自信在生活中多数情况也是优点,这样人做事情才会快、才会积极、才会创造奇迹——或者说碰到运气。

我总结的关键问题在于:

一、人是感情动物,活在世上很大程度是考虑自己是否满意,其实钱乃身外之物,过得开心就行了,这种哲学也未尝不可。
二、人是嬗变的,同时可以为自己的利益、感觉而设立多重标准
三、我们所存在的系统是一个非常复杂的系统,有太多的因素影响我们的判断,而潜意识的和经验主义的判断在日常生活中的判断往往是非常有效的

《别做正常的傻瓜》并不是一个科学论文或者是科普文章,缺少科学系统的论证。今天在读到pongba的《从视觉错觉到偏见》,让我更加确信了,这些错觉、偏见以及前面傻瓜决策其实都是功能而非错误,因为这是生物几亿年的进化根植于我们DNA深处的与生俱来天赋,是人类社会发展千年的文化传承和个人年的积累的经验和养成的习惯。有了这些能力,能在一般场景中绝大多数情况下作出(自己认为的)正确的判断,也可以极大的提高我们的效率,最重要的是,往往我们的幸福感来源于此。

那些能造成错觉的东西,在于自然界和过去是不常有的,而对于现代世界而言,科学的进步、心理学的进步、制造工艺的进步等等,导致信息越来越多,而且也越来越难判断真伪,甚至有人会故意去制造假象和错觉。

我从《别做正常的傻瓜》这本书中得到的启示是,要明确自己的关注点,寻找真正相关的信息,剔除无关的噪音,不要完全依赖直觉和经验。

蒙提霍尔问题

以下都是胡扯:

前几天公司里一直在讨论这个问题:

你参加电视台的一个抽奖节目。台上有三个门,一个后边有汽车,其余后边是山羊。主持人让你任意选择其一。然后他打开其余两个门中的一个,你看到是山羊。这时,他给你机会让你可以重选,也就是你可以换选另一个剩下的门。那么,你换不换?

这个问题叫做“蒙提霍尔问题”,今天看到和菜头的Blog上也发了帖子,还有维基百科的中文条目英文条目

答案是,如果换,要始终换,那么选中汽车的概率是2/3。我们讨论了很久,另外一种想法应该是1/2的概率,排除掉一个羊,就是二选一,实际上,这种答案是因为有时换有时不换,那么应该是50%的概率,而并非始终换选项。

具体解法可以看维基百科的条目。

我写了脚本来验证,始终换选项的概率确实为2/3,而随机换不换那就是1/2。

其实我想说的并不是概率学。因为对于普通人而言,参加这种游戏的机会本身就非常非常少,而偶然一次猜奖这种偶然事件很难用概率来说的——要看命运。这时候,换与不换对玩家而言是没有什么意义的。当然了,如果玩家们总是换的话,对游戏举办方而言,就很亏了。

高中的时候,数学老师和我们谈论到这样一个事情,他们一些老师去澳门玩,当然要去赌场看看,不过他们只是在酒店里“小来来”,数学老师说他们数学老师虽然按照概率算得很好,但是他们总输,呵呵。

2008年度总结

2008年对于全世界来说都是不平凡的一年,这一年发生了很多事情。大事件也就不用我在这里总结了。2008对我而言还是很有意义的,也是我的本命年。

回想2008,没发现什么特别重大的事情,但有不少事情值得一提:

  • 首先就是从上一家公司辞职,在家里休息了三个月,这三个月让我想通了很多事情,使我更加成熟了
  • 写了一篇“论文”总结了在上一家公司工作得到的经验
  • 开始学习管理知识
  • 开始学习金融知识
  • 戒掉了WOW
  • 自己的操作系统从Windows搬到了Ubuntu
  • 调整了自己的生活规律,开始天天吃早饭,晚上12点之前睡觉
  • 帮助冇问题重构了糗事百科秘密
  • 不再闷头自己学东西,开始参加技术交流活动,Shanghai on rails、GAE Camp、CN Erlounge III,认识了许多牛人
  • 又搬了次家
  • 锻炼自己的打字速度,qwerty键盘最高可以达到240 wpm,也熟练掌握了colmak键盘
  • 学习了一门改变我编程思维的语言Erlang
  • 找了份新工作
  • 复习了算法和数据结构,在spoj上做题进入前500名

差不多就这些了。

前几天在整理过去的Email,无限感慨啊……

为何我们都眼高手低

而今我工作有两年了,有时听同学和我抱怨说新来的实习生眼高手低云云。我就想起来,总是有老一辈的人会说我们这一代人眼高手低。然后再想我们的上一辈的上一辈会不会也说他们眼高手低?我们的下一辈会不会也说下一辈眼高手低?所以我很想探求一下,什么是眼高手低,为什么我们会眼高手低。

所谓眼高手低,就是指要求的标准很高(甚至不切实际),但实际上自己也做不到 (( 有道百科:眼高手低 )) 。好高骛远等等。这个词出现在现在的很多报道中,说我们这一辈的人总是眼光太高、心气太高、不愿从小事做起,小事做不好等等。常常当一个新人,虽然书本知识学的很多或者计划做得很好,然而一做起事情来就有很多问题。

那为何会造成我们眼高手低,尤其是我们这一辈特别被人诟病呢?其实问题毫无疑问是来自于我们富有中国特色的教育体制。我们的教育,都是要求同学们有高大的空洞理想,而不鼓励甚至批评简单现实的理想,所以我们看得很高。而我们的教育却缺乏实践环节,只有各种空洞的理论,一些实验课也仅仅是锦上添花,或者是个过场。这就造成了我们这一代人对实践的方法没有了解。

其实我不认同“眼高手低”是缺点,相反我认为这个是优点。拿破仑说,“不想当将军的士兵不是好士兵。” (( 维基语录:拿破仑 )) 一个人眼高手低说明这个人是有理想有抱负的,而如果眼界都低了,这个人是没有动力去办更大的事情的。下面有一段曹禺关于“眼高手低”的谈话 (( 摘自《论辩与口才》 梁秉堃 )) :

有一次和曹禺老师闲谈,也不知怎么就把话题转到个人修养上面来了。
我说:“现在有人批评我眼高手低。”
他说:“你怎么想?”
“我想这个批评是对的。”
“那你打算怎么做呢?”
“克服好高骛远的毛病,尽量让自己脚踏实地起来。”
他没有吭声,似乎在思索着什么。
我问:“不对吗?”
他看了我一眼:“难道眼高不好吗?”
我一下子不知道怎么应答了。
他继续说:“我看,应该给‘眼高手低’正名,它是褒义词,而不是贬义词。”
“大家不是已经这样用了多少年了吗?”
“我讲道理给你听听看。”他停了一下,“我们认真想一想,一个人做事情眼高手低是正常的,只有眼高起来,手才能跟着高起来。再说,手本来就长在眼睛的下面。”
我咀嚼着他的话。

所以导致眼高手低产生不良后果的原因,还在于中国教育的另外一个问题,教育出的我们这一辈太浮躁。为何会太浮躁,也是社会的因素造成。

在现在的中国,想要安安心心做一个事情,是很难的。哪些通过出卖良心不择手段暴富起来的一代富豪,给中国人不良的影响,大家都想着如何暴富。而这些新的权贵和富豪们,为了加大自己的财富,不断在老百姓身上搜刮。作为新一代大学生,如果想着从底层做起,那么很可能是一辈子都买不起房子,很可能是将来子女的教育成问题,很可能未来生一场病就倾家荡产等等。所以,现实让我们没法耐心做一些底层事情,逼着我们去做能多赚钱的事情,我们就浮躁了,而那些底层的事情,是必然不能赚钱的。

另外还有一个因素,那就是我们这一代人身处信息时代。我们这一辈作为信息时代的人,比上一辈的人获得信息的能力要高出非常非常多,而我们的实践能力是远远跟不上我们所摄取的信息的。

其实我知道那些所谓的企业家在教育我们这一代大学生不要眼高手低的时候,我知道他们也已经“眼高手低”,如果让他们突然一无所有,从底层做起,他们一样是不会愿意的。

所以,其实眼高手低不是什么坏事。许许多多的科学家在探索的过程中,一样是眼高手低的。欧洲的DHC高能粒子对撞机,经过如此严密的计算、构建,然而到快上线的时候,也出现了问题。我们是不是也要说那些科学家很眼高手低呢?其实因为我们这个世界是混沌的世界,不管多么严密的计划,不管多么完美的理论,在人类的实践过程中,都会出现各种各样的问题。我们要做的不是说批评自己眼高手低,而是要能耐心地不断去解决问题,大胆假设小心求证,让手逐渐够到眼睛看到的地方,同时,又在亲手实践的过程中,让眼睛看到更远的地方。

技术债务——出来混,迟早要还的

当我在Infoq上看到了“技术债务”这个新名词的时候,加上正好前一段时间也和做市场和销售的朋友谈了一些东西,我受到非常大的启发。

市场人员、销售人员(以下简称营销人员)和技术人员的想法完全不同——我朋友说他还有他的朋友们有很多想法,就是没人去实现(没技术),其实只要手上有个产品,哪怕不够好,只有60分,也能够卖出去。这朋友正在创业,网站还没上线,广告投放就已经谈妥了——这对于我这种搞技术的人是完全不敢想象的,手头没有实实在在的产品,我都不敢出去和人说。

似乎他们很有道理,在当今这种“不管黑猫白猫,抓到老鼠就是好猫”的思想熏陶下,他们这种无论产品好坏,能卖出去赚到钱就好,也是“正当”的,更是“高手”。然而这种想法是一种浮躁的心态,其实就是渴望暴富,最终还是会害了自己。

朋友因为在创业,没有合适的技术伙伴,为了能降低成本,技术团队方面他们仅仅雇佣了一个普通的PHP程序员(没有任何架构的概念、不会配置服务器、不了解数据库建模),一个前端工程师和一个实习生。而几个创业合伙人都是兼职,不能全心全意。又为了能迅速完成既定目标,直接购买了所谓的国内某知名CMS——大家也能猜到,这个CMS的代码写得非常混乱,虽然功能经过定制,看上去能部分满足朋友的需求,但是我一看就知道,将来维护会很成问题,极有可能将来会将这个代码全部重写,而迁移的过程可能是非常痛苦的——这就是所谓的技术债务,是迟早要还的。

不少公司老总都希望事情能够“多快好省”,但世界上哪可能有这么好的事情呢?回报总是和付出成正比的,否则就是欠了债。公司的发展就像生物的成长,首先内部各个器官必须齐全,其次外部的条件合适。我人对于公司成长的不同阶段,根据公司的情况,应该制定合适的目标。如果公司没有技术能力,则应该出钱构建符合目标要求的技术团队,如果连钱都没有,创始人就不应该一下提很多需求——就低价招3个技术小白就妄图做一个门户网站?

当然我可以理解他们希望通过快速弄出一个原型,然后可以吸引到投资,然后再去建立团队,再重新完善不规范的地方,即,企图通过一个不完善的小产品作为杠杆来撬动一个大事业。然而杠杆原理不是这么用的,杠杆原理中,同样的一根杆子,要撬动同样重的东西,无论支点放在那里,省力的必然费距离,费力的才可以省距离,总体消耗的能量总是不变的。如果想翘起特定目标的事业,如果付出少(人力、物力、财力),那么需要的时间就多,如果要快,就要付出更多。当公司的事业没有达到一定的条件的时候,就去忽悠投资,鼓吹公司将来能如何地盈利,那么当投资进入之后,情况就不能完全由创始人决定,他们会受到更多的压力,无法再静下心来回头慢慢搞规范,只能更加浮躁地去考虑如何赚钱。这时候,如果技术方面的债务得不到很好的清偿,会出现很多问题,诸如依托技术提供的服务达不到要求等(我只关注技术方面,其实还要关注运营、财务、市场等其他方面),导致被吹出来的目标无法达到。诸如此类的案例当然不必多说,比如CSDN的BLOG的稳定性。当目标无法达到,要么投入更多的人力、物力、财力来弥补这个错误,要么忽悠落空,投资撤出,公司也就不能继续了。

出来混,迟早要还的。

小谈Chrome

最近关于Google浏览器Chrome的报道铺天盖地,我也第一时间尝试了Chrome,我觉得其简洁的风格我非常喜欢。不过这只是第一个版本,稳定性和功能各方面还有待增强。但我发现了一个Google在这里的一点技术创新,那便是不同的标签页使用了不同的进程。

不搞编程的人可能不知道这里面的好处:

  • 多进程提高了整个应用的稳定性:倘若有一个标签页崩溃、假死了,并不会影响到其他的标签页。我在Firefox下经历过某个页面的假死导致必须强制关闭整个浏览器。
  • 多进程可以提高应用整体性能:现在计算机已经进入多核时代,只有能利用多个核心的优势才能进一步提高程序性能。一般而言,单进程的程序要通过线程来利用多核,但是线程之间由于共享同一片内存地址,编写代码容易出现问题(如锁的争用等等),不如传统的进程方式方便稳定。
  • 多进程可以节省内存资源:进程结束之后内存可以立刻释放,就更不容易出现内存泄露和内存碎片过多的问题
  • 多进程提高安全性:安全性部分我不了解,但是考虑到进程之间的隔离,我觉得安全性是可以更好地提高的。

过去IE也有多进程模式,但必须是重新执行IE的进程才行,对于从任何一个IE窗口中弹出的新窗口,实际上和原窗口还是同一个进程,而进入到了IE7之后,标签方式浏览必须使用同一个进程。而FF和Opera则一直都是单进程模式。Chrome完美结合了多进程方式和标签浏览,这一招确实非常高明。

虽然目前Chrome应用这一方式可能还存在一些问题,不过我认为方向是正确的。

东西一流行就容易变味

以前朋友带我去上海的一些店里吃东西,经常说“店大了,东西没有以前好吃了”。然而,我也和朋友去过另外一些小店,味道和店面都一如既往十几年(除了物价上涨)。

这时候我发现身边很多东西一旦开始流行,就立刻变味——也许这就叫量变到质变。身边的例子很多,记得05年的时候,我还和同学们一起吃一种叫做“掉渣大饼“的东西,那时候这玩意儿突然很流行,但没过多久,突然又消失匿迹了。有人分析原因是这样:“流行风,不适合在一个固定地点开店,适合流动售卖。 口味比较重,油也挺大,不是健康食品。所以刚出来时,大家出于好奇,买的人较多,但不适合常吃。”[1]然而也有人分析是因为“无序加盟”造成的[2]

掉渣大饼的例子算是一类典型,但它的“潮流”,也许还不是那么地引人注目。只能说,它的“流行”只是相对于其他接近的东西,在短时间内聚集了大量关注。也许标题改成“公司在快速扩张过程中容易出现问题”更能符合我所想说的。因为公司产品突然地流行起来,意味着公司更加有利可图,那么公司会想办法扩张,而在扩张过程中,由于某些方面做得不到位,或另些方面做得太过分等,而导致产品不能如公司或者受众的期望继续发展,甚至最终导致公司扩张失败、甚至市场萎缩。

我很想探究其中的道理。不过我认为应该首先定义“流行”是什么。百度百科上这样解释[3]:

比如一些事物,刚开始没有太多人去注意,慢慢的引起了很多的注视,后来越来越多的人开始关注它,这就是所谓的“流行"

不过这似乎与我要阐述的流行有所不同,在这里我所谓的流行是指受众比原有变的多,且增长速度也在提升。当然还有受众的问题,当受众之间个体之间相同点少,那么可以说是大众流行,反之,就是小众流行;如果小众是属于有钱人,似乎就是高档的奢侈品;如果在受众中的接受程度高,那么就是该群体中的“主流”;如果在大众中接受程度高,那就可以算“主流”了。

我把在潮流中的三个类角色划分出来:A. 通过这个事物引领、制造(有意或无意的)潮流的公司或个体,B. 在潮流中模仿A,想分一杯羹的跟风者,C. 潮流的受众们。

C是原动力,A是导火索,B是推波助澜的。没有广泛的C,就不能成就A所需要的市场,没有市场带来的利益,也就不会有B的跟风。当A不能注重品质,东西就变味了。

往往当潮流来临的时候,没有人会意识到它有多大,它能持续多长,普通的公司往往都只想在潮流中能捞多少捞多少,而不管自己是不是真的有实力。我归结这些个公司在潮流中失败的原因往往有:

  • 只注重扩张,而不注重品质:只知道要多捞点,不知道要全面均衡发展。
  • 有各方面条件更好的后来者居上:没想到被巨头盯上了。
  • 市场需求被透支:过分炒作流行的概念,等受众回头醒悟发现被骗了。

所以我想问问,那些准备制造、或刚刚制造了潮流的商家们,你们真的准备好了吗?

关于Apple

其实突然想写本文其实也是因为Apple。随着Apple的一系列优秀产品iPod、iPhone等一下子流行起来。最近Apple的日子不好过:

种种负面消息传出,我就会说,Apple,你的iPhone还没准备好吧?不可否认,Apple的iPhone的外观设计是出色的、操作系统是优秀的,软件服务也是很棒的,可惜,Apple你本来不是做手机的。iPhone的流行导致这个苹果变味儿了。

过去的定位与未来目标的冲突

Apple的产品定位一直是高端用户群体。以前,我对Apple的Mac是有一些好感的,当然我也不讨厌Windows。我一直认为Apple的东西很酷,很有形,用Apple的是设计师,非常有个性的人,他们很有创造力。然而在国外,iPod已然变成了是一个日用品。而在国内,则是一个时尚的代名词,用iPod,就可以显得很前卫,很潮流。其实当用的人多了,也就没有什么前卫不前卫的。因为直到有一天,我发现送外卖的小弟也揣着一个iPod。同时,模仿iPod的MP3、MP4公司越来越多,功能也会超越iPod,iPod虽然能因为Apple的种种魅力保持他的地位,但它在这个领域的份额也会逐渐减少——就好比现在手机与山寨机;如果iPod的份额不减少,甚至越来越高,那么说明市场正在衰退,因为用的人实在太多了,没有人会觉得这很前卫、很时尚。

其实Apple过去做的东西是有点“奢侈品”的意思在里面,然而,将来它要面对的是自己的产品变得大众化。

盲目扩张,忽视了品质

也许并非Apple不注重品质,而是对于手机的设计制造还缺乏经验,所以才出现了种种“瑕疵”。正因为对iPhone前景过于充满信心而到处签约,却忽视了iPhone的产能问题。这些问题非常容易导致iPhone的品牌被做烂掉。

Apple没有做过手机,难免会出现一些问题,但是因为Apple之前太成功了,所以iPhone理应成功,人们的期望总是很高。这种突然的潮流,搞不好就会淹没Apple自己。

其实iPod,在2001年出现第一代iPod,也是出现了很多问题,我的印象中,到05年,国内才开始流行iPod。这种稳步的渐进式的,也许更加符合发展规律。

这点Google就非常聪明,Google也希望进军手机领域,但它清楚,一方面自己没有做过手机,另一方面蛋糕要一起吃,只有拉拢手机巨头们,才 能抢占这个市场,所以它推出了Open Handset Alliance,自己主导做系统,然后推自己服务。当时Gmail的推出,引发了无限/超大容量邮箱的革命时,Google也是用了类似策略,因为 Google清楚自己无法应付过多的用户,所以他在Gmail推出初期,只有被邀请才能加入,并且刺激别的邮件供应商跟进。这样在占据了合理的市场份额的 同时,保证了Gmail的品质和发展。

摊子铺太广、独来独往

有人经常拿Apple和Microsoft比,其实我觉得两者除了在操作系统上可以进行比较外,其他方面没有很多交集。

历史上任何一个大浪潮,都不是单单某一个公司能够凭借一己之力完成的,PC机和Windows的流行,并不是一朝一夕的事情,而是顺应历史的必然。在Windows95流行之前,微软就已经做了十几年操作系统,而微软的联盟者,已经做了十几年的PC机。微软从来没有想着自己做硬件去统治整个市场。这就是为何微软抄了苹果的界面,却比苹果更流行的原因。

因为苹果什么都做,同时又几乎完全封闭自己的架构,一个公司的能力是有限的,所以它一直只能走小众路线。苹果从硬件方面的芯片、机箱、显示器,到软件上的操作系统、各种“i”系列的应用软件,从台式机到服务器,到现在的电子产品、手机,Apple可谓无所不包(虽然不是每个零件都自己做)。这也就是为何苹果机没有最终广泛流行的原因,因为微软不是一个人在战斗,微软的背后有Intel,有IBM,有各大中小PC制造商,有无数共享软件开发者,有无数的游戏厂商。苹果的封闭而又追求完美的面面俱到的开发,使他开发出来的只能是曲高和寡的艺术品。

当然,苹果也走了几招妙棋。MacOSX是基于BSD系统开发的操作系统,BSD是开源Unix系统家族中的一员,而且苹果也开放了一些东西让广大开发者一起维护。这就使得MacOSX可以兼容相当多的*nix软件,一下子吸引了很多*nix的开发人员。然后苹果又与Intel结盟,采用Intel芯片。

总结上述一些问题,我认为苹果目前其实处境还是很危险的。希望苹果不要再变味了。

我在UUZone的两个月

兼谈培训的重要性

在写上一篇《毕业生如何挑选好的公司》时,让我回想起当时实习和刚刚开始工作的很多事情,让我又有很多感慨。其中在UUZone的经历,如果说出来给大家听听,结合上一篇文章,大家就能更加理解我的意图了。

05年夏天,也就是我大三快结束的时候,我打算去UUZone实习,为什么选择UUZone呢。首先UUZone在南京,我当时因为还需要重修几门课,所以无法离开南京(丢人啊)。其次,那时负责UUZone的是冒志鸿,冒大哥也是东南大学毕业的,一下拉近了我们之间的距离,而且在南京,大家都说东大的人是搞技术的料,从冒大哥的blog中我也能看出他对技术的执着追求。最后,我刚开始上网的时候(2000年前),用的便是网际精灵,这也是UUZone的母公司北极星的作品,UUZone的前身网际精灵社区,在那个时候,网际精灵做得要比腾讯的OICQ好多了,而且网际精灵社区的技术也十分超前(比如用Iframe模拟了现如今很流行的Ajax),因此我对北极星有很大好感。由于这三点,我便毛遂自荐,去了UUZone。

然而我在UUZone并没有待多久,只有两个月(也可能是三个月),便被fire了。我至今记得冒大哥在我临走之前和我说的话,在公司工作,最重要的是要Get things done,把东西做出来。因为从进UUZone开始,冒大哥给了我一个简单的任务,做一个HTML编辑器出来,用来替换UUZone现有的。而就这样一个简单的任务,最后我也没有很好完成。

为什么这样一个简单的任务都没有完成?我自身固然有责任,套用经典的批评:“眼高手低”等等,这可以说是多数人批评我们现在这些毕业生的惯用语句。然而,仔细分析一下,更能发现这其中也许更多地是公司方的问题。

因为我还记得冒大哥的另外一句话:“在你之前也有几个很有才的同学,可是没有能Get things done,所以没留下来”。

一个不能留下有能力、有潜力的员工的公司,显然是存在问题的。

我觉得一个很大的问题就在于他们没有新员工培训这个“初始化”的过程。

我根据我的经验总结一般实习生和毕业生(甚至包括有工作经验的人)到新的公司开始工作,都存在以下几个困惑和难处:

一、不了解公司同事、同事不了解我
二、不了解公司的规范、制度、惯例
三、不了解公司的项目、技术、文档
四、急切地想展示自己的能力

(以下假设我就是这个新人)

任何一个新人来到团队,都需要经过一个磨合期,因为彼此之间互相不了解。我不了解团队中其他同事是怎样的人,怎样合作比较好,他们都有怎样的能力,他们也不知道我的能力如何,因此,在工作分配上就会产生问题,一般很难分配一个合适的工作给我,或者是做一个工作需要多久。我也不知道工作的难度如何,手里有没有资源去完成它,公司需要怎样一个过程去完成它等等。

为了解决这个问题,一般公司都应该指派一个导师。我认为这个导师在初期应该全权负责我的一切问题,应该经常和我保持沟通,“问寒问暖”等。拿我在UUZone的经历来说,当时我没有明确的导师/负责人。我那个小组大概有6个人左右的样子,而只有两个男人,依稀记得冒兄应该是让这个小组的经理来负责我的事情——是个女的。她很忙,所以刚开始我有问题的时候她爱理不理,因此我也只好退缩了。真正和我混得比较熟的同组的另外一位男生,也是毕业之后刚来这里没多久的。

举个有趣的例子,刚去的时候我分配到一台机器,键盘是非常老式的机械键盘,打起来手指头都疼(我个人偏好软的),而那个鼠标居然左键不灵光,我不记得一开始找谁负责了,总之没有下文,我一火就把这个事情发到UUZone的自己的blog上了。冒兄的爱人——一位值得尊敬的大姐——看到了我的Blog之后,立刻和冒兄沟通,然后很快将我的鼠标和键盘换了。

这个就是沟通的问题,因为我不了解他们,不知道有问题都应该找谁,而他们也不了解我,有时候就会把我凉在一边,我也不好意思总烦人家。

为了能检验新人的能力,但因为公司又不能十分信任新人,一开始一般不会让他们参加重要的项目,可能会放到不紧要的项目中,做个简单的小东西。比如我在UUZone得到的任务便是弄一个HTML编辑器。但是因为这个东西不紧要,加上我没有确切的负责的导师,或者说这个导师太忙不鸟我,使我有很多对于需求方面的问题弄不清楚。

其实我得到这个任务没到半小时,便拿来了FCKEditor部署起来了。然而由于没有与导师之间的沟通,这个任务迟迟不能很好解决。

后来我为了能测试HTML编辑器在UUZone上的效果,需要拿代码来搭建测试环境——UUZone用的是Tomcat+Struts+iBatis。我不记得是等了多久之后,我机器上的测试环境才帮我建好。但我记得我在审查UUZone的Java代码的时候中看到了很多,后来问了其他人才明白他们这么做的道理——如果能有足够的文档并且我能去接触到,我就不会提出这么“低级”问题,如果有导师,我就不用那么麻烦去找很多人问。

由于这些阻力,最后我放弃了在这里工作的念头,混一日算一日了,其实,即使那天不是我被fire,我也会提出辞职的。

如果泛化分析一下刚刚的四点,在一个没有培训、没有导师负责的公司,情况会变成这样的:

新人和员工互相之间的不了解,导致合作困难,需要时间磨合,所以一开始新人不可能有太多机会接触重要的东西,公司会安排不重要的东西。由于不信任,所以新人难以掌握尽可能来开展工作。由于新人负责的东西不是很重要,所以其他人不会非常重视,而新人急于表现自己的心态又容易受到这些阻力的影响而使将来的工作热情降低。甚至可能形成恶性循环,新人觉得自己无法融入集体,老员工又觉得新人问题多多。

而如果公司有培训,那么公司很容易给毕业生和实习生一些课程让他们学习公司的工作流程、工作中所需的技能,并且可以与将来的同事慢慢地磨合、相互了解,就不会出现以上的四种问题。

即使公司没有培训,那么也应尬配备导师,负责与毕业生、实习生的一切事务,包括各种像我上面提到的鼠标的那种小问题,再带领新人结识其他人,参加公司的活动,这样新人也能很快融入整个集体。

然而没有培训,又没有导师,新人很容易觉得自己是个孤儿,没有人来关心他(们),最后久而久之,工作也不能很好开展。

所以,我后来带新人的时候,采取了一些策略:

  1. 第一个星期不让他做任何项目或东西,先熟悉环境
  2. 经常带他和同事一起吃饭,增进交流,互相了解
  3. 对他给予理解和信任,他有需要的话,将我手头有的资料尽可能给他
  4. 经常和他沟通问他有没有问题

今年,还在上一家公司的时候,有一次,一位刚来一个月的新同事做的东西上线之后有问题需要调试。因为我们这里人手少,没那没多流程上的规矩,我直接将服务器帐号密码给了他,他非常吃惊,说这么重要的东西就这样给他了,其实如果我不信任他,不知道他还要绕多少个弯,花多久才能找到问题呢?充分地信任,让新人发挥更大的才能。因为我之前就是,在这个公司花了一年,才得到老板的完全信任,才拿到这些帐号,才能做公司核心的东西,其实充分信任我,我早就可以发挥更多的能力,我就不用一直做一些边角料的小东西了。有人说诚信可以大大降低交易的成本,正是这样。

后记:

其实那时候我觉得冒兄应该是不错的导师,因为很多事情和问题最后都是他来和我交流的,可惜他更忙,经常出差。

我在UUZone的经历让我发现了UUZone的管理上的问题,——当然不止培训这一条——让我知道其实UUZone很难做大,创业不仅仅是关于技术的。我走了一年之后,UUZone也发生巨变,连冒兄都离开了UUZone,实在是非常遗憾。