2013年1月23日星期三

为自己而活

创业最大的幸福,就是可以为了自己而活

死是死在自己手上,活也是活在自己手上。做的每件事情,吃的每个苦,都在我生命中留下了难以磨灭的烙印。

创业,会让人上瘾,也真值得!

2013年1月19日星期六

创业者的工作

创业者的工作是什么?我常常会面临这样的疑问,我最重要的工作到底是成立一家公司,组建一个团队,打造一款产品,指引盈利的方向,或者是其他的?

我自己也不知道答案。但目前我的选择,是把自己最重要的事情放在了组建团队上,我不停的寻找着比我更强的人才,相信他们可以在擅长的领域做出比我更好的业绩来。但这样的人岂是那么容易寻找到的,所以在很多岗位上我也只能使用并不那么满意的人选。但我不停的告诉自己,在这个团队的人才没有达到我的基本要求之前,我工作的中心应该不会转移。

2013年1月15日星期二

创业路上的恐惧、伙伴和机会


创业路上的恐惧

2005年4月15日,是土豆网上线的日子。那时候连Youtube都还没有,对于这个世界上唯一的视频分享网站,连王微自己心理都没底,而开发工程师也坦诚网站还有几个已知的Bug。上,还是不上,是摆在王微面前的一道难题

“发布吧”,王微说,“他妈的我已经付了800块钱的新闻通告费了,不能退款。”
无知者无畏,这是王微时候对自己的评价,那时候的他对中国互联网的凶险和艰难完全无知。无知者无畏,和乔布斯那句经典的“stay hungry stay foolish”放在一起理解的话,那就是在任何时候,我们都要无畏前行。

我的创业之路

在搬到杭州来之前,我就给自己这一次的创业准备好了一份每日的工作计划表,却因为种种的原因没有执行。今天正好看到一篇文章,就索性将这篇文章的读后感作为我这次创业的第一篇日记吧。这篇文章叫《创业关键看自己》,链接在 http://www.ftchinese.com/story/001048447。这篇文章写的是创业失败的原因有哪些,而且主要谈的都是自身的原因,这和我秉承的理念“永远寻找事情失败的内因”不谋而合,因此让我有兴趣提笔来写。

2012年7月8日星期日

陈甫鸼:软件测试的魅力何在?您为什么选择测试一行而不做开发? - 知乎

From Evernote:

陈甫鸼:软件测试的魅力何在?您为什么选择测试一行而不做开发? - 知乎

Clipped from: http://www.zhihu.com/question/20269633/answer/14809471

陈甫鸼如今是死开发的,因为总做令开发人员咬…

受邀了。多谢@TonySeek 邀请。虽然我现在换到开发去了,不过毕竟也在这一行做了六年,貌似还是有机会在这里发言的吧。最初我接触测试纯粹是出于偶然,微软到我们学校的面试只有做测试的肯要我啊。不过后来做了一阵子之后慢慢就喜欢上这个位置了。说说我过去的一些经验吧。

正如我之前在很多回复中说的,测试和开发是两个关注点不一样的工作。开发的目标是实现功能,测试的目标是确定功能是否能够正常运作。那么它的乐趣在哪里?简单地说是两个关键词:"发现"和"分析"。

一两句话很难说清楚,举一个例子吧。

假定你打算写一个VOIP程序,请问怎么测试它的效果?没有经验的测试可能会告诉你我连上两台机器确定电话可以打通就可以了,而有经验的测试可能会给你列出一大堆的组合:
  1. 你的场景支持笔记本和耳机么?你支持什么耳机?蓝牙还是3.5mm插口耳机?
  2. 你的场景支持使用笔记本麦克风么?还是只支持配麦克风的耳机?
  3. 你的场景支持使用手机设备么?Android还是iOS?
为什么要列出这么多东西?有人可能会对此嗤之以鼻:只是为了保证什么都能测到而已。但是其实这里每一个场景都是有意义的:
  1. 蓝牙耳机普遍都有硬件支持的噪声消除模块(Acrostic Echo Cancellation),而普通3.5mm耳机则通常由于结构简单而没有。对于没有噪声消除的普通耳机,我们必须自己提供软件的噪声消除避免出现回声。
  2. 我们不能使用完全相同的逻辑处理耳机和笔记本麦克风的语音输入。因为耳机麦克风的定向性比笔记本麦克风强很多,它只能取到声源凑得很近时发出的声音,而笔记本麦克风的设计则是用来在屏幕前相当大的范围内取声的。如果对笔记本麦克风使用耳机麦克风的声音检测算法则会由于灵敏度过高而将大量周边杂音收入,影响通话效果。而且有些场景是笔记本麦克风特有的,比如用户的打字音和风扇噪音。
  3. Android和iOS都有内建的通话模块。iOS甚至提供了非常高效的回声消除和增益控制模块,但是没有静音检测模块。所以如果桌面程序移植到手机上时可以很好地利用这些功能简化自己的代码。而Android的回声消除模块则表现非常不稳定,需要很多调整才能得到较好的效果。
这就是所谓的"发现",发现开发没注意的地方,发现项目经理没定义的场景,并提出相应的测试场景。这需要宽广的知识面才能做到。没有经验的测试更倾向于对所有测试的平台做全排列,但求不忽略任何一个场景。这在资源无限的情况下当然没问题,问题是真实项目中,测试的资源经常是最紧张的。

那么什么是"分析"举例来说:如果一个内测客户投诉你的VOIP程序实际使用中声音断断续续,你怎么分辨问题的原因?声音断断续续的情况有很多种,有由于网络延迟导致的,有由于操作系统处理过于繁忙导致程序执行时间被高优先级程序抢走而导致的处理中断产生的。我们怎么去分析哪些原因呢?没经验的测试可能会直接要求跑客户现场看看,但如果用户的环境不是每次都重现该怎么样?有经验的测试会提出:我们可以给客户一个调试用的版本,这个版本要求把数据包的收取时间点和每个数据段的开始处理时间点和CPU占用率纪录下来。通过前一个我们可以测量用户的网络情况,后一个数据段可以用来发现是否是操作系统换出导致的。反过来,对产品不熟悉的人,这些数据可能看不出什么用途。

有人说,这些不算什么,都可以让开发来做。完全正确。可问题是:开发有时间做这些么?在微软这样级别的公司里,开发都在忙于做功能,频频打断开发的进度要求停下来做bug分析,我想没几个产品经理会同意的。

另一点需要注意的是,不要把开发和测试的界限分得那么清楚。事实上大部分如今的跨国IT公司都很少分开发和测试这两个职位(大约只有微软还严格地分两个职位吧,即使是这样,搜索那边也开始探索改变了),但是要做的工作还是那么多,只是顶着的头衔换了换,所以没必要纠结。

=== 我是吐槽的分割线 ===

另一个问题是关于测试的工作方式的。就像开发一样,有经验和没有经验的测试在团队起到的作用是很不一样的。从测试中遇到问题采取的行动来看,我观察到的测试人员能达到的层次大概有这么几个级别:
  1. 开一个bug;
  2. 查找一些额外的资料如设计文档和历史,确定这是一个问题,然后给出详细的bug重现步骤;
  3. 对重现步骤做一些精炼,确定能够重现bug的最少步骤;可能的话,将重现步骤做自动化;
  4. 尝试通过研究代码确认问题所在;
  5. 尝试给出一个fix;
  6. 对错误的原因进行分析,提出一些标准化的方法来检测出类似的问题,比如stress,fuzzing等等;
  7. 能够对标准化的测试流程定义对应的数据分析方法,可以保证开发和项目主管都能从中得到需要的信息来掌控质量状况。
那么作为一个测试人员,我们的目标是什么?我对自己的目标是能对我控管的所有的bug从1做到4,在至少两个例子中我甚至能做到级别6。我在微软六年多,在很多部门都见到过可以见到可以总是做到级别7的测试,能做到这个状态的测试,没有人敢说他们技术不行。对于开发人员来说,如果你身边有一位能对大部分bug做到级别4的测试,我相信开发的工作也会轻松很多。

即使是抓bug也分很多种。你抓一群猴子来随便在键盘上胡点两下也算是测试,认认真真地一步步通过各种技术手段(代码覆盖、压力测试、安全分析等等)来步步推进也是测试。作为技术人员,你信任哪一种?我想多数人都会选择后者,但我要说的是在实践中很多测试团队都会不知不觉地变成前一种。为什么?因为测试对产品的设计不了解,所以本能地会选择最容易做的,可问起他们:你们测了多少?信心多高?他们就都傻掉了。我不是说猴子测试没意义:恰恰相反,它可以抓到我们思维上的许多盲点。但如果你的整个团队完全靠猴子测试过日子,那绝对不可能给你一个可信任的结果。

那么看官们必然会问,这种大牛测试和大牛团队有多少?很不幸,就我个人的经验来说,事实是在我遇到的测试人员中,最多只能做到级别1的测试人员并不罕见,能做到3的测试人员就被很多人认为相当不错了,至于团队中存在多个大牛测试的队伍则真的很少见(微软总部的比例高很多)。是的,别惊讶,这就是我工作中遇到的情况。但是请注意,这不是说公司在花钱养废物,而是说在没有专业测试教育的情况下在入行初期必然会导致的现状。我们所有人都需要时间来进步。

也许还会有人问:这不是跟开发抢活儿干么?是的,没错。但我们的目的是什么?是开bug还是做更好的产品?如果你的全部目的只是多开bug,那真的很简单。真实的例子,我曾经见过将测试自动化代码的bug开成产品bug的。我知道要求一个同事干这个干那个很不礼貌,但这种什么都不做就先开了bug再说的做事风格是在耽误所有同事的工作。作为团队的一分子,测试在产品上多花一分时间,有时候能省下开发几天的工作量,因为测试是最熟悉这个bug的人,而开发则需要从头开始分析。

——当然,反过来开发也应该尽量将测试带入开发过程,让大家都知道各种功能进度的细节。这种合作同样能大大减少测试在产品设计变更时重新设计用例的时间。

有人可能还要问:我的时间也很宝贵,为什么要替开发省时间?嗯,好问题。但我想谁都知道该怎么回答这种"问题"。

现在知道我为什么要做六年测试了么?

马化腾致信合作伙伴:灰度法则的七个维度_科技_腾讯网

From Evernote:

马化腾致信合作伙伴:灰度法则的七个维度_科技_腾讯网

Clipped from: http://tech.qq.com/a/20120709/000099.htm

马化腾致信合作伙伴:灰度法则的七个维度

2012年07月09日10:35腾讯科技[微博 ]我要评论(2)

腾讯公司董事会主席兼CEO马化腾(微博)(腾讯科技配图)

腾讯科技讯 7月9日消息,在腾讯合作伙伴大会举办一周年之际,腾讯公司董事会主席兼CEO马化腾向广大合作伙伴发出公开信,就互联网创新、企业管理等话题进行分享。以下为全文:

各位合作伙伴,大家好!

从去年合作伙伴大会到现在,已经过去了一年。这一年里,我们大家一起向一个开放的、没有疆界的互联网新生态迈出了第一步。大量的创业伙伴在腾讯开放平台上涌现出来,其中不少团队还取得了初步成功。

看到这些新的现象,我既感到高兴,也体会到责任重大。如果说以前腾讯做得好不好只关系到自己员工和股东,现在则关系到大家,腾讯还必须要促进平台繁荣、与广大合作伙伴一起成功。

这个转变让我一再思考,除了流量、技术、服务等"硬件"的分享,腾讯还能带给大家什么?换句话说,怎么把腾讯累积的经验和能力开放出去,让整个互联网行业生态发展得更加健康繁荣?

一年来,通过对开放平台上合作伙伴的观察,我发现,做好一款产品对于很多人来说并不太难;但是,如何让它持续地运营下去,如何移植一款产品的成功经验从而创造一系列的成功产品,却是一个相当难的问题。

这里,我想跟大家分享一下我的思考。这些思考来自腾讯14年来的经验和教训,希望对大家能有所帮助。在腾讯内部的产品开发和运营过程中,有一个词一直被反复提及,那就是"灰度"。我很尊敬的企业家前辈任正非也曾经从这个角度有深入思考,并且写过《管理的灰度》,他所提倡的灰度,主要是内部管理上的妥协和宽容。但是我想,在互联网时代,产品创新和企业管理的灰度更意味着时刻保持灵活性,时刻贴近千变万化的用户需求,并随趋势潮流而变。那么,怎样找到最恰当的灰度,而不是在错误的道路上越跑越远?既能保持企业的正常有效运转,又让创新有一个灵活的环境;既让创新不被扼杀,又不会走进创新的死胡同。这就需要我们在快速变化中找到最合适的平衡点。互联网是一个开放交融、瞬息万变的大生态,企业作为互联网生态里面的物种,需要像自然界的生物一样,各个方面都具有与生态系统汇接、和谐、共生的特性。从生态的角度观察思考,我把14年来腾讯的内在转变和经验得失总结为创造生物型组织的"灰度法则",这个法则具体包括7个维度:

分别是:需求度、速度、灵活度、冗余度、开放协作度、创新度、进化度。

这里简短与大家一一探讨:

需求度:用户需求是产品核心,产品对需求的体现程度,就是企业被生态所需要的程度

大家可能认为说用户有点老生常谈,但我之所以在不同场合都反复强调这一点,是因为最简单的东西恰恰是做起来最难的事情。

产品研发中最容易犯的一个错误是:研发者往往对自己挖空心思创造出来的产品像对孩子一样珍惜、呵护,认为这是他的心血结晶。好的产品是有灵魂的,优美的设计、技术、运营都能体现背后的理念。有时候开发者设计产品时总觉得越厉害越好,但好产品其实不需要所谓特别厉害的设计或者什么,因为觉得自己特别厉害的人就会故意搞一些体现自己厉害,但用户不需要的东西,那就是舍本逐末了。

腾讯也曾经在这上面走过弯路。现在很受好评的QQ邮箱,以前市场根本不认可,因为对用户来说非常笨重难用。后来,我们只好对它进行回炉再造,从用户的使用习惯、需求去研究,究竟什么样的功能是他们最需要的?在研究过程中,腾讯形成了一个"10/100/1000法则":产品经理每个月必须做10个用户调查,关注100个用户博客,收集反馈1000个用户体验。这个方法看起来有些笨,但很管用。

我想强调的是,在研究用户需求上没有什么捷径可以走,不要以为自己可以想当然地猜测用户习惯。比如有些自认为定位于低端用户的产品,想都不想就滥用卡通头像和一些花哨的页面装饰,以为这样就是满足了用户需求;自认为定位于高端用户的产品,又喜欢自命清高。其实,这些都是不尊重用户、不以用户为核心的体现。我相信用户群有客观差异,但没有所谓高低端之分。不管什么年龄和背景,所有人都喜欢清晰、简单、自然、好用的设计和产品,这是人对美最自然的感受和追求。

现在的互联网产品已经不是早年的单机软件,更像一种服务,所以要求设计者和开发者有很强的用户感。一定要一边做自己产品的忠实用户,一边把自己的触角伸到其他用户当中,去感受他们真实的声音。只有这样才能脚踏实地,从不完美向完美一点点靠近。

速度:快速实现单点突破,角度、锐度尤其是速度,是产品在生态中存在发展的根本

我们经常会看到这样几种现象:

有些人一上来就把摊子铺得很大、恨不得面面俱到地布好局;

有些人习惯于追求完美,总要把产品反复打磨到自认为尽善尽美才推出来;

有些人心里很清楚创新的重要性,但又担心失败,或者造成资源的浪费。

这些做法在实践中经常没有太好的结果,因为市场从来不是一个耐心的等待者。在市场竞争中,一个好的产品往往是从不完美开始的。同时,千万不要以为,先进入市场就可以安枕无忧。我相信,在互联网时代,谁也不比谁傻5秒钟。你的对手会很快醒过来,很快赶上来。他们甚至会比你做得更好,你的安全边界随时有可能被他们突破。

我的建议就是"小步快跑,快速迭代"。也许每一次产品的更新都不是完美的,但是如果坚持每天发现、修正一两个小问题,不到一年基本就把作品打磨出来了,自己也就很有产品感觉了。

所以,这里讲创新的灰度,首先就是要为了实现单点突破允许不完美,但要快速向完美逼近。

灵活度:敏捷企业、快速迭代产品的关键是主动变化,主动变化比应变能力更重要

互联网生态的瞬息万变,通常情况下我们认为应变能力非常重要。但是实际上主动变化能力更重要。管理者、产品技术人员而不仅仅是市场人员,如果能够更早的预见问题、主动变化,就不会在市场中陷入被动。在维护根基、保持和增强核心竞争的同时,企业本身各个方面的灵活性非常关键,主动变化在一个生态型企业里面应该成为常态。这方面不仅仅是通常所讲的实时企业、2.0企业,社会化企业那么简单。互联网企业及其产品服务,如果不保持敏感的触角、灵活的身段,一样会得大企业病。腾讯在2011年之前,其实已经开始有这方面的问题。此前我们事业部BU制的做法,通过形成一个个业务纵队的做法使得不同的业务单元保持了自身一定程度的灵活性,但是现在看来还远远不够。

冗余度:容忍失败,允许适度浪费,鼓励内部竞争内部试错,不尝试失败就没有成功

仅仅做到这一点还不够。实际上,在产品研发过程中,我们还会有一个困惑:自己做的这个产品万一失败了怎么办?

我的经验是,在面对创新的问题上,要允许适度的浪费。怎么理解?就是在资源许可的前提下,即使有一两个团队同时研发一款产品也是可以接受的,只要你认为这个项目是你在战略上必须做的。去年以来,很多人都看到了微信的成功,但大家不知道,其实在腾讯内部,先后有几个团队都在同时研发基于手机的通讯软件,每个团队的设计理念和实现方式都不一样,最后微信受到了更多用户的青睐。你能说这是资源的浪费吗?我认为不是,没有竞争就意味着创新的死亡。即使最后有的团队在竞争中失败,但它依然是激发成功者灵感的源泉,可以把它理解为"内部试错"。并非所有的系统冗余都是浪费,不尝试失败就没有成功,不创造各种可能性就难以获得现实性。

开放协作度:最大程度地扩展协作,互联网很多恶性竞争都可以转向协作型创新

互联网的一个美妙之处就在于,把更多人更大范围地卷入协作。我们也可以感受到,越多人参与,网络的价值就越大,用户需求越能得到满足,每一个参与协作的组织从中获取的收益也越大。所以,适当的灰度还意味着,在聚焦于自己核心价值的同时,尽量深化和扩大社会化协作。

对创业者来说,如何利用好平台开展协作,是一个值得深思的问题。以前做互联网产品,用户要一个一个地累积,程序、数据库、设计等经验技巧都要从头摸索。但平台创业的趋势出现之后,大平台承担起基础设施建设的责任,创业的成本和负担随之大幅降低,大家可以把更多精力集中到最核心的创新上来。

对我个人来说,2010、2011、2012年以来,越来越意识到,腾讯成为互联网的连接者也就是帮助大家连接到用户以及连接彼此方面的责任、意义和价值更大。在这个过程中,我们要实现的转变就是,以前做好自己,为自己做,现在和以后是做好平台,为大家而作。互联网的本质是连接、开放、协作、分享,首先因为对他人有益,所以才对自己有益。

对腾讯来说,我对内对外都反复强调我们作为平台级企业一定是有所为有所不为。现在肯定还有许多不尽人意的地方,我们也希望通过各种渠道,听听大家对如何经营好开放平台的意见和建议。这绝不是一个姿态,而是踏踏实实的行动力。一个好的生态系统必然是不同物种有不同分工,最后形成配合,而不是所有物种都朝一个方向进化。

在这种新的思路下,互联网的很多恶性竞争都可以转向协作型创新。利用平台已有的优势,广泛进行合作伙伴间横向或者纵向的合作,将是灰度创新中一个重要的方向。

进化度:构建生物型组织,让企业组织本身在无控过程中拥有自进化、自组织能力

这一年来,我也在越来越多地思考一个问题:一个企业该以什么样的型态去构建它的组织?什么样的组织,决定了它能容忍什么样的创新灰度。

进化度,实质就是一个企业的文化、DNA、组织方式是否具有自主进化、自主生长、自我修复、自我净化的能力。我想举一个柯达的例子。很多人都知道柯达是胶片影像业的巨头,但鲜为人知的是,它也是数码相机的发明者。然而,这个掘了胶片影像业坟墓、让众多企业迅速发展壮大的发明,在柯达却被束之高阁了。

为什么?我认为是组织的僵化。在传统机械型组织里,一个"异端"的创新,很难获得足够的资源和支持,甚至会因为与组织过去的战略、优势相冲突而被排斥,因为企业追求精准、控制和可预期,很多创新难以找到生存空间。这种状况,很像生物学所讲的"绿色沙漠"——在同一时期大面积种植同一种树木,这片树林十分密集而且高矮一致,结果遮挡住所有阳光,不仅使其他下层植被无法生长,本身对灾害的抵抗力也很差。

要想改变它,唯有构建一个新的组织型态,所以我倾向于生物型组织。那些真正有活力的生态系统,外界看起来似乎是混乱和失控,其实是组织在自然生长进化,在寻找创新。那些所谓的失败和浪费,也是复杂系统进化过程中必须的生物多样性。

创新度:创新并非刻意为之,而是充满可能性、多样性的生物型组织的必然产物

创意、研发其实不是创新的源头。如果一个企业已经成为生态型企业,开放协作度、进化度、冗余度、速度、需求度都比较高,创新就会从灰度空间源源不断涌出。从这个意义上讲,创新不是原因,而是结果;创新不是源头,而是产物。企业要做的,是创造生物型组织,拓展自己的灰度空间,让现实和未来的土壤、生态充满可能性、多样性。这就是灰度的生存空间。

互联网越来越像大自然,追求的不是简单的增长,而是跃迁和进化。腾讯最近的组织架构调整,就是为了保持创新的活力和灵动性,而进行的由"大"变"小",把自己变成整个互联网大生态圈中的一个具有多样性的生物群落。

我相信每一个创业者都怀有一个成功的梦想,我与大家分享的是腾讯14年互联网实践的一点体会。它肯定是不完整的,但它同样也遵循"小步快跑"的灰度法则,需要一步一步去完善,大家可以继续发挥和探索。我希望的是,腾讯不仅是能让大家赚到钱的平台,更能成为业界一起探索未来、分享思考的平台。以后每年,但凡在创新方面能有所心得,我都会跟大家一起分享。

陆家贤 在知乎分享了一个问题给你: “一个完整的副本包括哪些要素?”


你好

陆家贤 在知乎分享了一个问题给你: "一个完整的副本包括哪些要素?" 熊乐:我来全面说说吧,不限于楼主所提出来的问题。 一般来说副本属于一个游戏项目中级别较高的模块,所需要的成本比较高。 视游戏类型的不同,副本的做法和在游戏中所承担的责任可能也存在较大差异。 以比较流行RPG类型游戏为例。 A1)设计初衷,定位 是为了强化游戏本身已有的核心玩法顺便退出新系统? 还是将游戏已有的资源/机制… http://zhi.hu/FBk7