有勇气的人生才是开心的、

Filed Under (SAAS) by mantian on 17-01-2010

Tagged Under :

偶然间发现自己的每一次重大决定都来源于相同的原因-勇气。能够把自己抛回地面,重新弹起来,才有可能跳得更高。我就是一个很爱折磨自己的人,因为我喜欢有高度的生活。

网络购物催生美化店面生意 月入达二三十万

Filed Under (SAAS) by mantian on 07-12-2009

给网店干“装修”月入二三十万

本报讯(记者杨帆)网店掌柜大赚网购者的钱,谁从网店掌柜口袋里赚钱?记者昨日从淘宝方面了解到,目前网店“装修”可算是美差,店面美化以及应用服务的开发人员的月收入能达30万。

记者了解到,目前淘宝网店铺有500万家左右,仅靠货比货已不能在众多竞争者中脱颖而出,店面的风格设计和对客流、竞争对手的分析,都成了卖家的“必修课”。

据悉,2007年早期阿里软件推出时就有人在做店面美化生意,当时生意比较单一,收费属于一次性收费。

去年7月后,淘宝开放了软件接口后,软件应用开发和店面美化绑定在一起成为新生意。目前,在淘宝做店面设计以及应用开发的个人大概有2万人左右。

记者了解到,随着网购的发展,每个月都有上千人挤入市场,其中做得比较早的目前月收入都在10万元以上,高者甚至能达30万元。

之所以网店“装修”人员增长速度如此之快,主要原因是市场需求量很大,网店DIY的确能带来销量;其次是入门门槛不高,没有投资风险。

据淘宝网统计,做了功能扩展以及店面美化的网店销售额比普通网店要高出五成以上,卖家需求较大。另外,入门门槛方便,目前在淘宝做“装修”服务的2万人中,大概有90%都是兼职。

网店“装修”人员黄京介绍,只要会一些网页代码语言,然后熟悉一下淘宝软件接口环境,大学计算机毕业的学生大概一个月就可以学会。黄京表示,自己从一窍不通到开发出第一款数据统计软件只用了四个多月。

淘宝美化及应用服务明细表

分项 功能 收费

数据统计类 分析每天、每周以及每个月的网店各项数据 20元

店面美化类 对店铺进行个性化设计,帮助店主展现产品特点 10元

功能扩展类 视频购物、独立域名、分类检索、在线人数监控等 每项单独收费20至100元

对话人物

黄京男 2009年5月入行 开发软件数量:1个

软件开发人员客户上万 月赚几十万

FW(法制晚报社):你是从什么时候开始做网购应用开发的?你的软件目前有多少人在用?

黄京:今年5月份左右,目前有6000个用户在用我的软件,但是付费用户较少,大多都还在试用。

FW:你开发的应用软件有什么功能呢?收费怎么收?

黄京:能够实时监控有多少人在店铺浏览,能够做产品浏览率的数据分析。每个月10元钱,然后有10%要分给淘宝。

FW:现在市场需求情况怎么样?

黄京:需求量特别大,淘宝基本上80%的店铺都有店面美化和后台统计应用的需求。

FW:现在一个比较大的网店一个月会在“装修”方面花多少钱?

黄京:大多在50元钱以内。网店美化及数据分析是个以多获利的行业,单个来看是不怎么赚钱,但大部分开发人员的手中都有上万个客户。

以一个20元/月的软件为例,拥有一万个付费用户计算的话,月收入也在20万左右;如果用户花费30元或更多,软件开发人员的月收入就会超过30万元。当然得给淘宝10%。

FW:上万个?能忙得过来吗?

黄京:这个生意与数量是没有关系的,做几十个跟做几十万个没什么区别,都是电脑自动监控的。

Five minutes的经历

Filed Under (SAAS) by mantian on 07-12-2009

毫不夸张地说,上海五分钟有限公司的“开心农场”游戏几乎让“偷菜”不构成一种犯罪行为,因为它已经风靡到 可以改换一个词义的地步。在Facebook、人人网、腾讯,用户经常会调了闹钟做了笔记偷,为偷菜寝食难安,每天以菜地情况来作为见面的问候语 很久没有这样一款让玩家疯狂的简单游戏了。

这个游戏是“五分钟”员工2008年坐在会议室里头脑风暴的产物。短短半年之后,活跃在“开心农场”的用户 就和上海市的人口数量相当—1800万左右。不过,在经历过热炒之后,这家公司的创始人已经在降温。“我不喜欢说起我们就说开心农场”。五分钟COO徐城 说道。他剃着平头戴着黑框眼镜,作为联合创始人之一,和两个伙伴带领着一群平均年龄只有25岁的年轻人一起开发各类应用于 SNS网站的插件游戏。

开心农场之前,他们已经经历了三款游戏的失败,而做社交游戏也是经历了一段曲折才摸索出来的。当郜韶飞、程 延辉和徐城还在读大学的时候,他们就有过创业的想法,曾经一起做过九城的校园代理。徐城在大三的时候移民美国,回国后另外两人已经毕业上了半年班,但之后 他们辞去了工作,三人正式成立了一家公司,找到了大学生创业基金,对方投资了15万元。最初他们尝试做一款线上游戏,花了一年的时间却并不成功,也导致失 去了创业基金的继续支持,公司一下子陷入了资金紧缺的尴尬境地。为了生存,他们三人一合计就换了一条路,开始做游戏外包。徐城回到美国,一个人去谈生意。 在一年半的时间里,他在美国的生活就是寻找外包项目,国内的另外两人则指挥着员工在徐家汇的一个小办公室里埋头苦干。这段时间粗看上去他们过得还不错,因 为那间小办公室里从最初的七八个人发展到了30个。但让三个创始人不满意的是他们和员工每天都在拼命工作但收入却还是那么微薄,给员工发完工资之后所剩无 几。雪上加霜的是金融危机爆发,游戏外包的单子变得越来越难接。

游戏外包是在为别人做嫁衣,不过也并非没有好处,困境中的徐城想到,既然客户能把我们的产品放在 Facebook上,为什么我们不把自己的产品放到这些开放的SNS平台上呢?此时SNS网站在国内已经渐渐走红,这个提议立刻得到大家的赞同。之后,他 们的公司更名为“五分钟”,寓意是专做人们每天花五分钟来玩的游戏。一开始进展并不顺利,他们尝试了棋牌、竞速和拼图这类很常规却始终有人玩的游戏,但这 三个插件都关注者寥寥。期间他们面对很大的财政压力,公司一直处于没有收入的状态,三人只得先向家里借钱来支撑公司。

前途迷茫,收入惨淡,沮丧的气氛在公司中弥漫,不断有员工离职,最少时只剩下8位。“创业最重要的是一条 心,尽管有人离开了,我们几个也经常争执,但大的方向始终没变。”徐城说。尽管三款游戏都没红,三人也难免有一点灰心,但几次失败中,他们慢慢摸索出了每 次失败的关键点,比如作为社交游戏但互动不足,或是题材不新,而且他们坚信也许就是第五款,或者第十款,后面总有一款能够成功。

成功比他们预想的来得早。2008年10月,团队在会议室里热烈地进行第四款游戏的讨论,餐厅、宠物 黑板上画满了十种讨论过的设想,却都不是非常满意。一位员工无意中说了一句农场,大家接着这个题材讨论,发现种菜偷菜听起来似乎很新鲜也很有意思,很快一 个大体的游戏机制就被讨论出来。有了大致思路以后,几个年轻人加班加点半个月就把游戏做出来了,当命名为“开心农场”的插件11月在当时的山寨开心网 (kaixin.com)首次上线的时候,团队一致认为它会红,但谁都没有想到它能如此红。因为在一个星期后,它就挤进在校内网的插件应用前十名,之后腾 讯和51.com上也开始出现了开心农场,12月,该游戏已经有10万人在玩了。

但是对于很久没有收入的五分钟来说,这也只意味着一个大大的鼓励,不能解决实际问题。他们开始讨论如何能让这款游戏赚钱,一个可行的商业模式成了最头疼的问题。最初考虑的是植入广告,但这需要再去招募一个销售团队,而且似乎并不是一个长久之计。

此时恰逢圣诞节来临,在寒冷的小会议室里,有人提出“不如就搞个圣诞礼包道具卖卖看吧!”卖道具虽然是网游 经常的做法,但他们不知道在休闲娱乐为主的SNS 平台上是否能有人买。平安夜道具上线的时候他们预计着这个圣诞礼包能够卖出3000块就不错了,但圣诞节过去的时候,他们发现要比预期多出了5000块。 于是去年的12月25日成了他们最有纪念意义的一天,徐城说:“那代表着我们的商业模式打通了。”之后,一项项收费道具在游戏中出现。

2008年元旦前后,开心农场人数突破了100万人,靠卖农场道具已经能够给他们带来稳定的现金流。插件植入国外最热门的SNS网站Facebook的时候也引起了全球不小的种地潮流。现在仅Facebook每月就能够贡献给五分钟百万人民币的收益。

人数和收入还在呈现上涨趋势,但五分钟也面对很多让他们焦虑的问题。山寨产品越来越多了,这些都将分食他们 的收益,为此他们开发出更多道具来预防开心农场转冷。但是,无论多么红火的游戏玩家也总有玩厌倦的一天,五分钟现在每周都会像从前一样开会讨论新的点子, 希望能够找到继农场之后的风靡产品来创造更多收益,几款最新的游戏也正在开发中。

天涯改版试水B2C 推行植入式广告模式

Filed Under (SAAS) by mantian on 01-12-2009

最近,从天涯社区的公测改版页面”天涯聚焦”中,发现一些专业网络B2C开始与天涯合作,“自去年年底以来,天涯相继与1号店、珂兰、玛莎.玛索多家企业达成合作,联合运营b2c业务。”天涯社区相关负责人解释。

天涯总裁邢明认为,目前天涯的品牌专区更注重与电子商务的结合,属于一种植入广告模式,不是一种硬性广告,能为网友提供服务同时让网友产生订购行为。他同时透露道,天涯正与谷歌秘密研发一套新型的精准营销广告系统,广告能精准到个人和某些群体,“谁需要给谁投放,还可以互动,可以口碑传播,效果更加显著。”

此外,邢明表示,天涯未来要建一个在线生活和商务的平台,满足人们综合的各种需求。社区对传统C2C的平台会构成挑战,在未来会对淘宝等模式构成颠覆。 “天涯长远肯定会切入电子商务,B2C更倾向于和第三方合作,而C2C方面将会自己来做,很自然的把社区的C2C的关系梳理出来,为网民提供商务和为企业 主提供广告平台。”邢明如此展望天涯未来的商务蓝图。

以下是天涯聚焦推出的“品牌专区”:

1237119961_55

目前天涯的“品牌专区”和其07年推出的“Adtopic话题服务”放置在同一位置的两个版块,且“品牌专区”还在其它页面有Banner等形式支持,应 该为目前主推广告类型。 但对于这种将社区流量导入电子商务的模式,究竟是付广告费的形式还是销售分成的模式,不得而知。

不过天涯对社会化电子商务的探索,值得关注和研究。而且谷歌对其投资后一直未有大动作,本次邢明透露的“新广告平台”,结合谷歌改版推出的精准广告来看,非常值得期待。

附:B2C与天涯合作的具体形式

1237252414_33

天涯社区首页的各种B2C的广告

1237252471_61

上海的B2C一号店,整个页面为Iframe

1237252567_90

类Vancl的衬衫B2C

1237252616_16

钻石B2C珂兰钻石网

1237252778_12

珂兰钻石这块下面与天涯的社区讨论版块结合,注意右边天涯把这种合作称为“天涯商城”

123456789

Filed Under (SAAS) by mantian on 10-11-2009

最近因为很忙,很久没有写博客了,忙碌的生活改变了很多,今天看到这么一串数字,觉得这就是生活,用心,才能发现!


今天2009年8月7日12点34分56秒,按照老外的时间显示方式,会被显示为12:34:56 07-08-09,也就是123456789,时光与数字唯一的一次巧遇,唯你我有经历过。

洞察生活中的点点滴滴,看到的多了自然想到了,想到的多了自然也看到了…
没什么巧合,都是自然的。

互联网敏捷开发实践之路

Filed Under (SAAS) by mantian on 16-05-2009

最近发表在程序员杂志的文章,在这里share一下

—————————————————————–

互联网行业是一个快鱼吃慢鱼的行业,也是在所有行业中竞争最激烈,变化最快的行业。据统计,2007年的web2.0热潮当中,中国互联网站总数超过130万。如何在这样的行业中脱颖而出,敏捷开发理念让互联网公司看到了新的曙光,同时也在互联网产品研发方面掀起了一场革命

互联网产品研发特点 互联网行业除了竞争激烈之外,其产品服务模式也具有鲜明的特色。互联网的产品往往是面向海量用户的服务,它非常关注用户的行为和反馈,一切以用户价值为核心是互联网产品最核心的特点。这一特点也决定了互联网产品研发具有如下4个关键特性:

1、 产品的高度不确定性。互联网产品面向的用户非常多,这些用户分布在广泛的区域,存在着不同阶层的用户群体,用户的行为和习惯也大多不同,因此作为一家提供海量用户服务的互联网公司,用户需求的获取充满不确定性。如果没有科学的用户研究方法和体系,没有关注用户行为的量化分析工具和理念,是很难给出产品的清晰定位,因此也无法提供真正满足用户需要的产品服务。

2、 产品需要快速响应用户的变化。因为产品的高度不确定性,大部分的互联网产品服务在整个用户研究,需求分析、产品研发及交付服务的过程中,都采用探索式、适应性的研发理念进行产品的研发。通常,他们会把整个产品研发周期划分为若干个迭代,采用迭代式的演进过程,不断的去交付新的产品特性,并通过观察用户的反馈和行为,进而随时调整产品的思路和方向。在这样的情况下,时间是一个很好的促进因素。迭代式开发方法让互联网公司可以更好的缩短产品上线的时间,并完成产品方向的检验和服务的提供,保证在激烈竞争中立于不败之地。现在大部分互联网公司都有自己的实验室,如Google Labs,在该网站上可以看到Google正在试验中的新产品,用户可以去体验并给这些产品提交反馈,Google的开发团队会根据这些反馈来及时调整产品的方向,以提供更好的服务,这样就形成了一个良好的用户端到开发团队之间的互动,也很好的解决了这些产品本身所存在的高度不确定性的问题。

3、 团队具备高度创新能力。根据Business Week做的Most Innovative Company研究,前50位最具创新性的公司从1995年到现在的年平均股票回报率为14.3%,远远高出S&P的行业标准。在互联网行业也是一样,Google之所以能取得如此巨大的成就,通过对它的研究,我们发现,创新是Google成功的秘宝。Google的创新法则包含精英的团队、创造性的氛围、自由提出想法的渠道和20%自由工作时间的机制。由精英组成的敏捷产品开发小团队作战模式是Google创新得于支撑的最关键因素。而在国内,大部分的互联网公司都还是采用“抄、糙、超“这样的一种产品服务跨越式发展思路,但是实际上,在激烈的竞争环境当中,大部分的互联网公司交付的产品都一直停留在“抄”的阶段,而“抄”也更多是形似而神不似。20072008年在web2.0的大潮当中,有多少模仿FacebookSNS社区在不断涌起和不断消茫,其本质还是在于缺乏创新,缺乏对用户需求的最本质的把握和差异化服务的提供。可见,创新对于互联网产品是多么的重要。

4、 产品的Small Release发布模式 。只有创新和更快的开发还是不够的。互联网公司必须更快的交付、交付出质量更好的,更符合用户需要的,并且交付成本更低的产品给用户,这样的公司才能具备更好的竞争优势。传统的软件公司在产品交付过程中需要耗费大量的人力和财力才能解决产品交付的问题,如微软这样的公司,他们在交付类似office这样的软件时,需要先批量刻录,通过渠道发行,开产品发布会等等措施才能把产品交付到终端用户的手中,而交付后还存在巨大的风险,比如用户在安装的过程中出错了,产品在使用过程中有很多Bug等等,所有这些都让传统的软件开发商需要投入巨大的代价来完成产品的交付。而对于互联网产品来说,产品的交付有天然的优势,通过互联网这个巨大的平台,产品的交付可以以很低成本的交付到用户面前。但是由于有海量的用户在使用这些产品,如何保证交付的质量,如何保证更好的满足用户的需求呢?我们把互联网产品的交付方法定义为Small release。它有两个特点,其一是发布过程是逐步对用户放量的过程,其二是尽量早发布,常发布,注重用户的反馈。通过Small release,我们不仅仅做到了更好控制发布过程中产品不完善所带来的大范围影响的风险,同时也进一步提升了产品的质量,并以最快的速度获取到用户的反馈,以帮助产品的改善。

高度不确定性和团队具备高度创新能力要求互联网产品研发要更关注“用户“和”体验“;快速响应变化和Small Release则说明了互联网产品研发的“适应变化”能力。 《敏捷软件开发宣言》所提到的4个核心价值观,它们的要点刚好与互联网产品研发特色想吻合,因此,敏捷开发的理念正不断给互联网公司研发部门所接受,腾讯、Yahoo!、阿里巴巴、校内网等互联网公司都纷纷引入了敏捷开发,并逐步形成各自的最佳实践框架。

敏捷开发实践之路 世上没有轻而易举得来的敏捷,敏捷也不是银弹,你不能指望用简单的3-5步就能实现它。那么,对于互联网产品研发,如何开始敏捷开发的实践之路呢?接下来,我将结合我长时间的实践和思考,通过以下5大步骤来进一步论述。

1:兴奋参与,平等沟通。

人是软件开发中是最为重要的因素,通过观察大量成功项目,我们发现,一个成功的团队总是能做出满足用户需要的产品,它与使用什么技术,采用什么过程没有必然的联系。对于采用敏捷开发的团队而言,要让敏捷开发能在项目中更好的得于应用,成员的兴奋度是非常重要的基础。我们提到的兴奋度包括成员对产品的Ownership、成员在工作中的快乐感和自豪感、成员在工作中的学习能力和可塑性等。我们通过在具体的团队中推动敏捷开发实践的过程中,发现以下的一些点是可以帮助到团队去提升兴奋度的。

1、 团队核心人员的示范作用。产品经理是互联网产品研发的最重要角色。作为团队的核心人员,他的示范作用非常明显。产品经理首先要非常喜欢自己的产品,他需要有把产品当作自己Baby的心态,对产品要体现出热心、爱心、细心和信心,并在团队中进行传播和感染。

2、 从用户和市场中寻找积极正面的反馈。人都有工作自豪感(成就感动机)的追求,因此,产品的不断成功,可以给团队带来极大的兴奋感和成就感。因此,通过定期的用户数据和收入数据的分析,比如产品的同时在线用户数不断攀高、产品本季度盈利再上一个新台阶等等,这些都是很定量的提升团队成就感的方式。

3、 不怕犯错误,培养尝试的勇气。人都可能犯错误,最优秀的团队不是完全不犯错误的团队,而是善于在错误中总结经验和通过学习不断超越自我的团队。互联网产品研发团队尤其如此,互联网产品的高度不确定性,经常会让我们不断的要犯一些“方向性”的错误,我们不能因为犯了错误就去责怪团队,评判团队,而应该拥抱变化、及时发现问题,并进行适应性的改进和学习。

4、 消除沟通障碍和顾虑,保持广泛、平等的沟通。软件开发活动是一项团队活动,要使这个群体有效运作,成员之间的沟通和交流非常重要。但是我们也发现,很多团队不具备这样的基础,他们在实际的沟通过程中存在很多障碍,比如开发人员的内向型心理、沟通方式存在问题等等。因此我们要打破这些障碍,在我的实践中,通过IM工具可以有效的解决沟通心理障碍的问题,我们会给团队建立一个QQ群,很多想法和讨论都会通过该群来进行,我们发现,在QQ群里面,每个成员都会很放松,很自由,思维也非常活跃,它有效的帮助我改善了团队的沟通氛围。

5、 保持模糊的工作边界,培养产品的归属感。传统的项目管理方式强调人员的分工,职责清晰化。但是实际上,对于互联网产品的研发,保持一定的模糊工作边界,可以更好提升每个成员的产品归属感。以产品特性的发展过程来说,产品的特性不仅仅来自产品经理的规划,用户的反馈,同样也来源于团队内部。我们看到很多互联网公司都有自己的产品博客,在上面,团队成员可以分享自己对产品发展的看法,提出自己的创意和想法,这些都是去提升产品归属感的好方法。如果团队中人人都有机会充当产品经理,有这个产品就是我自己产品的感觉,我们可以想象,产品一定可以获得更良好的发展。

6、 积极寻找公司领导和全员的关注和支持。不断寻找公司领导的关注,可以保证团队时刻收到激励。特别是当邀请到公司的老板来参与你的项目的时候,这种快乐感和自豪感会极大的刺激团队,它能极大提升团队的热情,即使是加班加点也会毫无怨言。在我的实践过程中,我们常常会通过给项目设定阶段里程碑,当里程碑达到的时候,我们会给团队举行一个Party,并寻找老板的奖励,老板会在Party上给团队直接的激励,当然更重要的是,他会给我们的Party买单。

此外,我们经常提到敏捷团队Monkey的角色,意思是一个团队中常常有一个人会充当搞笑Monkey的角色,他每天都会通过在团队中传递快乐的信息来增强团队的兴奋度,比如每天下午找个时间给团队发一些笑话,让大家在开发过程中也能充满笑声。提升团队兴奋度是解决团队的沟通问题的很好办法,它作为敏捷开发实践的起步,也许不如敏捷开发所提到的具体实践那么具备可操作性,但是它确实相当重要。它是成功的项目团队所具备的共同特质,它甚至可以极大激发团队的创新能力。

2:增强团队内透明度。

认为软件开发是交流的协作游戏的观点指出,项目进展的速度与信息从一个人的头脑传递到另一个人的头脑所需的时间相关。Alistair Cockburn提出了“信息对流”的词汇,他用热气流动来比拟信息在人们之间的流动,并提出了“渗透交流”的概念,他认为,在一个物理的办公环境,每个人在专注于自己工作的同时,会不由自主的听到一些声音,如别人正在讨论某个问题,并能从中不自觉的提炼出一些感兴趣的信息,这可以使发现信息和传递信息的成本降低,因此他觉得物理环境的布局,比如结对编程的座位设置对于信息传递都是非常重要的,同时他提到了在办公局域放置“信息辐射器”的重要性,而信息辐射器所起到的作用就是增强团队之间的透明度。常见的增强透明度的方式有:

1、 故事墙

故事墙展现项目迭代中的User Story的实现情况,用来透明化项目的实时进展情况。它的目的是使任何人只要进入团队的工作区域,就可以立刻了解项目的进度,每个人现在的任务,一些团队需要改进的地方等。

2、 进度报表。

上图是典型项目进展BurnDown chart 的展示图,透明的展现了项目的进展情况。

3、 回顾总结(Well Less Well

回顾总结是发生在迭代结束的时候,团队成员针对本次迭代所做的总结方式。它可以透明化的让团队成员都了解到本次迭代做的好的地方以及需要改进的地方。

3:频繁心跳,张弛有度,保持稳定的迭代节奏

Martin Fowler提到敏捷过程是基于适应而非预测的过程。他认为,敏捷软件开发是一种自适应的跟踪过程,通过快速、短迭代式的开发,不断产出和演化可运做的软件,根据用户的反馈信息做适应性调整,然后进入下一轮快速短迭代式开发是敏捷开发最核心的理念之一。

图:Peter Wegner用数学方法给出了严格的证明

在进行实践敏捷迭代式开发方法的时候,有2个要点是需要注意的。

1、 稳定的迭代节奏是保证团队可持续交付可工作产品的基础。

一个成熟的团队,总会有约定俗成的团队协作的默契。对于敏捷开发的团队而言,稳定的迭代节奏可以让产品保持更稳定的交付。我们有一个产品制定了固定的发布周期,比如每周五固定会发布一些产品的特性,这个时候,总会有一群忠实用户来体验新的特性,长此以往,慢慢的就培养了用户的习惯,并且也保持了用户对产品的期待。Scurm方法也非常强调稳定的迭代节奏,它把每个Sprint都固定为30天,并以此来保持可控的,稳定的节奏,它假设,30天是人们做回顾总结最好的一个时间段,小于或大于30天都会降低这样的效果。

2、 自适应计划的建立。敏捷不是不做计划,而是从PlanPlanning

常常有人刚接触敏捷开发的时候,都会产生一个误区:“敏捷是不需要计划的”。说这话的人忘记了一个很明显的现象,敏捷开发小组经常会每个一周两周就会花大概半天的时间来进行IPM会议,并列出任务列表。开发小组会把计划的活动扩展到项目的整个过程,而不是在项目一开始就先期完成所有的计划,但是这样的结果常常被认为,敏捷是无计划的。

其实,敏捷开发不是不做计划,而是从PlanPlanning,下图就展示了敏捷开发的Planning的过程。

我们在Planning的过程中也有3点要注意的:

1、 我们仅仅对下一个迭代做详细的计划,长期规划以粗颗粒形式来描述。

2、 整个Planning过程会设定明确的MilestoneMilestone本身也可能发生变化。

3、 到达Milestone的路径是灵活、适应性的。

4:坚持Small Release法则

前面提到,互联网的产品发布模式是Small Release模式。Small Release使产品的交付一直处在半透明的状态,产品上线发布不要一下子就面向用户全体,而是有策略有节奏地逐批放量。它是一种典型的敏捷化发布方式(集市型),采用Small Release以后,通过逐步放大用户群,一方面让用户参与了产品的“测试”,有利于降低缺陷影响的范围和风险,另外一方面也降低了对产品测试资源的投入,没有必要对每一次非正式版的发布进行全面回归测试。另外通过Small Release也实现敏捷原则之一现场客户,它建立了一种快捷的用户反馈搜集渠道,通过与用户的快速交互和收集反馈,可以更好的确定下一次Small Release的目标。业界很多互联网公司都采取这样的一种产品发布模式。下面是一些例子:

  1. eBay上,Gmail测试帐号曾拍出了200美元,《魔兽世界》的内测帐号更拍到了500美元
  2. Napster推出其音乐下载服务的2Wbeta测试帐户,引来300W的用户注册
  3. Kazaa文件交换服务,在数天之内瓜分完20W个测试帐号

Small Release除了是一种尽早发布的理念外,同时也是一门技术活。实施Small Release 对产品架构有一定的要求。大致包括4个方面的要求:

1、 系统切割的组件化;

2、 用户规则的可配置化;

3、 系统服务的版本化;

4、 系统升级的平衡化;

同时,在运营环境上,常常需要部署版本服务器,负责对产品不同版本Release的版本控制工作。

5:加强用户参与,尽快收集用户反馈

微软研究院的Bill BuxtonMIX09中做了演讲,他指出尽管当前经济不景气,但是对于与用户体验相关的职业,却可能有非常好的机会。他指出在上一次经济大萧条期间,工业设计这个职业脱颖而出,而现在则将会是用户体验,他称之为回归用户体验。对于互联网产品来说,用户体验的重要性勿需再讲,更重要的是,如何让用户参与?前面提到的Small Release 目的之一就是让用户能尽早的参与到产品的体验当中去。此外,我们还有以下的方法来让用户更好的参与:

1、 直接观察法。直接观察法就是要走到用户实际的环境中去,走入用户的世界,可以采用结构式或非结构式的访谈,时间和方式都可以灵活,但是有个原则:第一就是要仔细的观察,看看用户真正的工作环境,方式,条件。第二就是要多问为什么。

2、 案例研究法。案例研究法主要是找特定的用户群体或典型的用户,这种方式不适合普遍的用户目的调查,但是可以作为对边界用户目的,极端用户场景的分析。这种方法比较合适应用在对现有产品的改造过程。

3、 调查问卷法最常见的方法,通过设置系列的问题来完成对用户的研究。

4、 人物角色法。人物角色法其实是一种数据建模的方法,通过对特定用户数据的建模,为每个主要的用户群体都创建一个虚构的人物角色,然后去扑捉该群体的最重要的方面,比如他们试图完成那些任务,他们的最终目标是什么?

5、 焦点小组(Focus group。焦点小组依据群体动力学原理请大约6~9个参试(Participant)对某一主题或观念进行深入讨论。焦点小组实施之前,通常需要列出一张清单,包括要讨论的问题及各类数据收集目标。在实施过程中需要一名专业的主持人,主持人要在不限制用户自由发表观点和评论的前提下,保持谈论的内容不偏离主题。同时 主持人还要让每个参与者都能积极地参与,避免部分用户主导讨论,部分消极用户较少的参与讨论。焦点小组具有群体动力(Group dynamics)、自由开放(Open discussion)、定性数据(Qualitative data)和适合探索目的(exploratory purposes)等特点

用户参与已经成为互联网产品敏捷研发最关键的一环,它有效的弥补了互联网产品由于空间所带来的“非客户现场“感,通过这些科学的方法,开发小组跟”客户“又可以保持顺畅的沟通,保证产品是建立在满足用户真实的需求之上的。

一切刚刚开始 现如今敏捷开发已经到了炙手可热的程度,很多公司都已经跟风似的在引入敏捷开发。但敏捷开发真的是银弹吗?是放之四海皆准的真理吗?其实不然,在我们长期的实践过程中,我们发现很多开发组在应用敏捷开发的时候存在很多误区和形式主义。他们常常以为,每天早上坚持开晨会,产品规划按迭代来计划,定期回顾一下这样就是在敏捷开发了,然而他们却忽略了敏捷最核心一点就是“交付可工作的产品成果“,虽然他们在项目过程中划分了若干个迭代,但是每个迭代完成后并没有输出可工作的产品,也没有交付给用户使用并收集反馈,所以在形式上采用了迭代的方式,但实质上他们跟传统的瀑布模型并无差异,因此我们都称之为“伪敏捷“,同样还有很多这样的例子。此外,敏捷开发在不同的团队的应用也不尽相同,业界也有多种的方法体系。但是我们透过这些方法发现,敏捷开发只是一种理念,它传递着以人为本的管理理念,强调团队的自我管理和驱动,并持续改进个人和组织的思想;敏捷开发也提出了一些做事原则,如小步快跑、简单设计,拥抱变化,持续集成等等,这些理念和原则跟互联网产品研发特色异常吻合。

在接下来系列文章中,我将继续分享在互联网企业中,独具特色的敏捷开发实践历程,我会着重提到互联网产品特性驱动的需求管理方法、打造兴奋,平等,参与型团队的项目管理经验、运营形产品的敏捷实践方法等等。我相信,敏捷开发在互联网行业的应用也是刚刚开始,希望通过系列的分享交流,能得到更多朋友的反馈和建议,让敏捷开发能做得更好!

NetLog 大规模应用实战:Database-sharding 技术

Filed Under (SAAS, 架构) by mantian on 31-03-2009

一、背景

Netlog是一家社交网站社区,目前拥有大规模的应用数据,包括:

超过4000w的活跃用户数、每个月5000w的UV、每月50亿的PV、每月60亿的在线时长、支持26中语言,覆盖5个主要的欧洲国家,如意大利、德国,土耳其等

用户访问的统计视图如下:

growthstats

数据库统计如下:

大量的数据需要存储,eg. 100+ million 好友关系

互动性强,写操作非常频繁,1.4/1 read-write ratio

在没有做架构改进前,高峰期数据库压力:3000+ queries/sec

相关问题:

随着业务的快速增长,性能问题日益突出,主要瓶颈更多是发生在数据库层,原因如下:

1、web应用堆栈的各个层,大部分是无状态通信的;

2、唯一有状态(或事务)主要发生在数据库层,关系数据库的依赖关系和数据交互导致;

3、传统数据库技术无法满足高性能需要,水平扩展的需求明显;

本文主要是通过开发者视角来介绍Netlog在发展过程中的解决方案和经验。Netlog 基本完全采用开源的解决方案:例如 php, MySQL, Apache, Debian, Memcached, Sphinx, Lighttpd, Squid, 及其它.

二、Netlog数据库系统可伸缩性变化过程

在这个演变过程中,其实跟我上次介绍的另外一篇文章基本类似 大型网站架构演变和知识体系藏

第一步:一台DB Server 苦干

master

这个server 刚开始还是部署在虚拟机环境,承担所有的数据请求和处理,包括web服务器也是在这台机器上(嘿嘿,刚开始的时候,好像所有公司都这个样子,那个时候没有米嘛),后来根据实际情况,把web 服务器和DB 服务器做了一次分离。

第二步:Master-Slave

master-slave

一台DB Server已经无法满足业务增长需要。在这个阶段,根据业务情况可以考虑投入更多的server,通过mysql的复制功能(replication)很容易实现ML的方案。ML方案使你很容易把所有写操作(INSERT/UPDATE/DELETE)跳转到Master Server,而所有读操作(READ)导向Slave Server,因此在某种意义上把数据库压力做了均衡。同时,Slaver Server通过读取Master Server的BinLog文件来保持同步,并把写的请求的数据写到Slave Server中去。

ML方案也存在一些问题,主要包括几个方面:

1、人力方面的投入,如果服务器数量增多的话,在运维上需要投入专门的DBA来运维;

2、可能出现的“replication lag”问题,也就是由于可能出现的读操作堵塞、down机、硬件故障等原因引起的Slave server与Master server数据不同步,从而引起Read的结果是取到过期的数据;

3、数据一致性的问题;

为了解决数据一致性的问题,实际开发中有些技巧,比如对Slave服务器做一些分类,把他们应用在一些诸如搜索/后台服务/统计等数据的Read中会更有效果,因为这些数据查询对实时性要求不高,可以合理避免数据一致性的问题。

Master-Slave模式非常适合读操作频繁的应用。架设你的一台server 承受所有的负载(100%),而读写的比例是4/1,那么相当于你的master server要承受大概80%的select查询,压力非常大,架设这个时候你通过增加一台Slave服务器进来,它能有效的分担select的流量,并且增强整个系统的2倍的能力。所以是一个非常廉价的解决方案。

架设是写操作非常频繁的应用,或者是master sever要承担90%的写操作负载的情况下,通过增加一台slaver server,它仅仅能带来10%的能力提升。因为这个时候,slave服务器要在master和slave服务器之间忙于数据同步,这个时间跟master的90%时间是一致的。在这样的情况下,ML模式仅仅是把read操作分布处理了,而没有分布出来write 操作,其根本原因是你把write traffic 重复了一遍,因此在这个情况下,就没有很好的解决问题。

第三、数据垂直分区

Master/Slave方案有效的解决了Read操作频繁的应用,但是对于SNS这类互动性很强的平台,Write操作也是非常频繁,但是ML却没有办法有效解决这个问题,因此,为了更好的发展,需要对Write 操作进行分布式设计。

常用的对write操作分布式设计的方案是对应用特性级进行垂直划分(Vertical Partitioning)。其实很简单,就是在把业务逻辑划分定义清楚,然后把业务对应的表(数据库)分布部署在不同的服务器,比如Blogs、Photos、Videos等等,要确保这些表没有太多的关联操作和依赖关系。对于每个应用共同的业务,如用户数据,则可以通过数据库复制的方式,把这些公共表部署在每个业务的数据库服务器中去。如下图:

verticalpartitioning

待续

Heroku的架构

Filed Under (SAAS, Tech, 架构) by mantian on 15-03-2009

Tagged Under :

很早之前在Infoq上看到Heroku的介绍,不过当时这个网站并没有推出,今天在整理收藏夹的时候发现,Heroku已经推出一段时间,而且现在作为云计算平台已经有很快的发展了。

Heroku是Rails应用最简单的部署平台。只是简单的把代码放进去,然后启动、运行,没人会做不到这些。Heroku会处理一切,从版本控制到 自动伸缩的协作(基于Amazon的EC2之上)。我们提供一整套工具来开发和管理应用,不管是通过Web接口还是新的扩展API。

HeroKu的架构大部分是采用开源的架构来实现的,:)其实构建云计算平台,开源的世界已经解决一切了,不是吗?下面看看HeroKu的架构图,非常漂亮:

Heroku架构图

一、反向代理服务器采用Nigix

Nigix是一个开源的,高性能的web server和支持IMAP/POP3代理的反向代理服务器,Nigix不采用多线程的方式来支持大并发处理,而是采用了一个可扩展的Event-Driven(信号asynchronous)的网络模型来实现,解决了著名的C10K问题。

Nigix在这里用来解决Http Level的问题,包括SSL的处理,Http请求中转,Gzip的传输压缩等等处理,同时应用了多个前端的Nigix 服务器来解决DNS及负载均衡的问题。

二、Http Cache采用Varnish

Varnish is a state-of-the-art, high-performance HTTP accelerator. It uses the advanced features in Linux 2.6, FreeBSD 6/7 and Solaris 10 to achieve its high performance.

Varnish在这里主要给采用来处理静态资源,包括对页面的静态化处理,图片,CSS等等,这里请求获取不到的再通过下一层的Routing Mess去获取。通常还有另外一个选择Squid,不过近几年来,Varnish 给大型网站应用的更加的多了。

三、动态路由处理层,这里采用了Erlang 实现的,是由该团队自己实现的,Erlang 提供了高可靠性和稳定性的服务端实现能力(其实,我们也可以这样去使用),这个层主要是解决路由寻址的问题,通过合理分配动态过来的请求,跟踪请求的负载能力,并合理的分配可获取的下一层app 服务。这个层实现了对业务app的可扩展性和容错性,可以根据下一层服务的负载容量来合理进行路由的选择。原理上它是一个分布式的动态HTTP请求的路由池子。

四、动态网格层,用户部署的app是部署在这一层,可以看成是一个服务器集群,只是粒度会更加的细小。

五、数据库层,这里不用多说了

六、Memory Cache

也不需要多说,现在大部分互联网公司都在应用,而且基于它开发了很多好的连接器,我们公司其实也有在采用,不过我们还有自己开发的分布式内存系统,如原来的TTC Server,现在好像叫WorkBench。

如何构建Large Scale PHP架构?

Filed Under (PHP, SAAS, Tech) by mantian on 14-03-2009

Tagged Under : , ,

一、构建Large Scale Php代码框架要先了解什么是SNA的架构。

SNA的意思是Share Nothing Architecture,其实很简单,就3个意思:

1、类似Http请求,每个请求之间都是独立的,没有状态的;

2、共享的数据都放在数据存储层,如数据库中或分布式数据库中;

3、避免前端的控制;

SNA的框架带来如下好处:

1、容易部署负载均衡服务;

2、程序模块化划分更好;

3、容易开发和Debug;

4、避免导致数据存储中心出现大范围瘫痪;

二、不要在运行时采用模板技术

记住,PHP本身就是基于模板技术的语言,不要再引用另外一个了,如果有时候你不得不采用模板技术,那么千万不要在运行时采用模板技术;

三、采用APC Opcode Cache

详情见apc,对PHP有效的开放源高速缓冲储存器工具,它能够缓存opcode的php中间码。lfacebook也在采用Apc作为PHP加速器

四、推荐的框架如下:

php_app_arch

五、还有一些注意细节:

  • No more than 1 stat() per PHP file per request;
  • Add a stat cache to PHP’s expand_filepath code;
  • Don’t stat if Apache has already stat’ed the file;
  • Get rid of excessive stats in the streams code;
  • Remove ./ from include_path and use relative path includes;
  • Use just a single base dir in include_path;
  • No open_basedir or safe_mode;
  • Use non-PIC Apache DSO (gcc -prefer-non-pic;
  • Use platform-specific gcc flags;
  • ./configure –disable-all;
  • Plenty of custom extensions and limit RINIT;
  • Filter all user data by default;
  • No $_COOKIE for you;
  • Careful use of the session extension;
  • others….

Automated managed server hosting solution-ironScale

Filed Under (SAAS) by mantian on 04-01-2009

Tagged Under : ,

SAAS服务如何解决自我管理的问题,类似互联网服务中的自动部署系统的作用,国外有家公司做得非常不错,不过比较可惜的是没有看到比较成熟的应用。

IronScalesm is the world’s first truly automated managed server hosting solution. Developed over the past year and a half, IronScale is a managed hosting solution that features:

1、non-virtual, one-client-per-server physical servers
2、a unique and full set of breakthrough features
3、automated on-demand provisioning and reconfiguration via an advanced web portal with an intuitive UI

Get your IT provisioning and configuration work done instantly and easily – in real-time – and let us monitor and manage the IT infrastructure, so that you can go focus on your applications and your customers. With IronScale, whatever you need done or wish to do – things that typically take hours or days like bringing a server up, adding storage, repurposing a server – now take minutes.
Why IronScale?
You should be able to bring servers on-line instantly, and to dynamically reconfigure them in real-time with just a click. With IronScale you can.
Technology constantly delivers improvements in speed, ease, and flexibility, yet the server space has remained mired in inefficiency with time-consuming manual efforts or in waiting for someone somewhere to physically complete a transaction on your behalf. IronScale developed the software, the physical infrastructure, the advanced UI, and the support team to deliver automated provisioning and reconfiguring of servers with on-demand click control. Developed in stealth mode and funded by premier colocation and managed hosting provider RagingWire Enterprise Solutions, Inc., IronScale managed hosting took 18 months of design and development time to come to life – and now makes provisioning a server in minutes in a fully featured dedicated environment a reality.
What’s in it for you?
IronScale is…
Fast
IronScale-fast means provisioning a server in minutes, and then instant reconfiguration of the environment. You can repurpose servers in real-time, simply click to add storage on-the-fly, and realize zero-delay backup with IronScale’s truly automated environment.
Automated
IronScale is simple to use with the flexibility to take advantage of IronScale’s unique feature set in real-time, at any time from anywhere through the advanced web portal and UI. The IronScale environment is fully integrated and truly automated, and built on a managed enterprise-class dedicated infrastructure.
Powerful
The automated on-demand IronScale environment is not virtual and not shared, not cloud and not grid, but rather built on dedicated physical servers in a Tier IV world-class data center. Your physical IronScale server environment will be fully integrated for true automation and engineered for enterprise-caliber reliability, security, and performance. Plus you will have a highly scalable environment; you don’t have to overbuy or overprovision. Get what you need when you need it for growth, new technologies, new features and services, or changing business conditions. You can ramp up or down, and click to make changes on-the-fly, with full root access control. And above it all, IronScale is robust delivering useful, unique features like clone, snapshot, and auto failover.

IronScale – Fast, Automated, Powerful

FireStats icon Powered by FireStats
MC Inside