领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 霍泰稳 发布于 2010年6月29日
Zynga目前是世界上最大的社交游戏公司,也是历史上增长速度最快的互联网公司之一。据悉这家成立仅3年的公司,其活跃游戏用户已经超过2.3亿,公司员工数量仅去年一年就增长了3倍,达到近千人。在今年5月份,Zynga还收购了国内的一家社交游戏制作公司XPD,希望能在中国建立一个全球一流的产品开发基地。日前,在Zynga的首席技术官Cadir Lee访华期间,InfoQ中文站编辑就如何设计高扩展性社交游戏等话题和其进行了交流。
InfoQ:作为一个快速增长,而且用户量巨大的社交游戏公司的CTO,你如何设计游戏的架构和构建自己的团队?
Cadir Lee(以下简称Cadir):其实我们的架构很简单,和大多数网站的架构类似,也是Web层、Memcached层和数据库层等,一个典型的LAMP架构。不过可能有一点不同的地方是,因为我们的数据量非常大,所以使用了很多个数据库,让每个数据库承担不同的责任,所以如何分割数据库对我们而言是非常重要的。开始的时候,我们也花了很长时间来确定是用一个数据还是用多个,是用一个Memcached,还是用多个等。使用到多个数据库的时候,可扩展性就变得很重要和有意思,其中我们也使用了NoSQL技术,并有一个专门的运营团队去管理这些数据库。
就数据层面来讲,我们有自己的数据中心,也应用到了亚马逊的EC2,而且购买了很多:)。有些游戏运行在自己的服务器上,有些是运行在EC2上,我们需要做的就是让他们保持一致就好,比如在EC2上我们使用软件处理装载平衡(Load Balancing),在我们自己的数据中心里使用硬件来处理。另外,因为我们的数据架构要支撑很多应用,所以需要分区,这对我们来说是有难度的一个地方。要知道我们的游戏和传统的游戏有很大的不同,我们的绝大部分游戏都需要存储在服务器上,需要关注通讯、浏览器,还需要关注客户端的用户体验等。
至于如何构建自己的团队,考虑到游戏公司的特点,那就是要求快速开发,所以我们采用了敏捷开发方法,使用Scrum来优化我们的团队,让工作更加流畅。比如我们有自己的产品路线图(Roadmap),有复杂的日程表,将每个迭代周期都尽量缩短,如果周期能为一周,我们绝不会将其延长到一个月。这样做的好处就是,将整个研发过程分割成一个一个小的部分,从而减少风险。
InfoQ:与传统的软件开发相比,设计高可扩展性的社交游戏有什么特别之处吗?
Cadir:区别还是比较大的,我认为下面几点是需要注意的:
InfoQ:据说现在很受欢迎的Cafe World游戏你们用了25个开发人员,花5个月的时间就完成了从创意到上线的过程,如何做到的?
Cadir:我们有一些通用的技术和平台,随着游戏开发的越来越多,团队成员的成熟度也越来越高,开发的速度也越来越快。作为一个CTO,其工作职责之一就是建立平台,让尽量多的知识得到共享,另外我们也有很多通用的工具。其实很多成功的公司都是这样做的,比如微软、Google等,游戏公司也是如此。
InfoQ:Zynga有没有计划在移动设备上开发游戏,从你的角度看,在移动设备上开发游戏的主要特点是什么?
Cadir:我们已经为iPhone开发了5款游戏,前一段时间苹果的Steve Jobs还在Apple World上宣布了我们为iPhone开发的游戏。另外我们在Android、iPad和其他智能手机上都有计划开发相应的游戏。开发移动应用需要特别注意的就是,你需要考虑的更多,因为用户不同,使用习惯不同,你需要在一个很小的设备上开发很好的应用,包括性能、动画、动作都是需要特别考虑的。还有,网络条件、通信情况等,虽然许多国家的网络越来越好,但是还是有许多国家的网络很一般,这也是需要特别考虑的。最后需要注意的就是,移动设备在什么地方都可以玩,在飞机上,在地铁里,有那么几分钟的空闲时间都可以拿出来玩玩。
InfoQ:据说你在为新收购的国内的这家公司找CTO,我们InfoQ的读者大都是有经验的架构师和高级开发人员,也许有适合你们的:)
Cadir:哈,是的。游戏是一个快速成长的行业,如果你喜欢挑战,喜欢游戏,Zynga肯定是一个不错的地方。而且和其他很多游戏公司不同,我们制作的是可扩展的游戏,不是在一台服务器上运行,而是成百上千,我们的游戏也不是几百几千人,而是上千万上亿人,想想这是多么吸引人吧。其实,我们需要的不仅仅是CTO,我们需要很多人,年龄大的,小的,有经验的,没有经验的,只要能力强,对游戏有热情,都可以到Zynga来试试,我们提供快速发展的工作机会和很好的福利。请把简历发到beijingjobs@zynga.com,Zynga欢迎你!
采访的最后,编辑问Cadir在其Zynga发展的过程中,有什么特别的感触需要和读者分享的,“Keep Simple(保持简单)”,Cadir脱口而出。不过随后他又边微微摇头边说,这是最重要的,但也是最困难的,对于我们来说,那些听上去很简单的事情真正要做的时候是需要注意很多地方的,对待每一行代码你都要考虑如何让其最简单,如何不使整个系统的速度降低等。I think so!
霍泰稳 霍泰稳是InfoQ中文站的联合创始人兼CEO,有多年的软件开发经验和媒体从业经历。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复