应用云平台的可用性——从新浪SAE看云平台设计
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
该内容已经被标记书签!
标记书签错误,请重试!

作者 Vinay Aggarwal 译者 顾全 发布于 2009年12月29日
书里的敏捷不谈管理者的角色,而是谈教练/促进者。本文首先解说了各行业通常意义上的项目经理角色,然后试图将其与敏捷中的教练/促进者角色相对应。在这一探讨中,本文也试图拓宽教练/促进者的工作范围。
在探讨敏捷中的项目经理角色前,让我们首先看看各行业中到底为什么需要管理者。
人类头脑的工作方式是非常复杂的。世上没有两个脑袋想法一模一样。就像两个指纹绝对不可能重合,两个个体的工作方式也不可能哪怕90%合辙。美妙的自然,创造出如此多而各不相同的个体,实在让人赞叹。但是,商业目标对所有利益相关方都保持“唯一而相同”。这里提到的人,代表所有参与项目的利益相关方,他们来自不同部门,如(a)项目团队成员、(b)业务用户、(c)管理层和出资人。每个项目在每个地方都需要管理人员,从而做到:
如果项目中每个人都是完美的,那无论什么行业的任何项目都不可能失败,不管是瀑布还是敏捷的软件开发模式,完美的人总能造就完美的项目。
生活中唯一不变的就是改变。什么事物都会变,不管是有形的(如需求)还是无形的(如人员)。
如果以上5个原因都不成立,就没有什么行业需要管理者了。但是很不幸,以上5者在每种行业、每家公司、每个项目和每次sprint全都存在。投资人和利益相关者必须在任何项目中得到好的投资回报(RoI),所以需要有人来摆平这些事情,并且仍然帮助达成项目的业务目标。所有上述五个属性实质上都不是技术相关的,可以通过应用管理实践来很好地应对。而扮演这一角色、将管理实践带入项目的人,在企业界就叫做“管理者”。但这不是说,管理者们有万灵仙丹来让上述这些达到完美,但是他们能帮助人员和流程得到调优,监控并应用横向思维的管理概念,来产出创造性的解决方案,以使上述五点不会大范围地影响业务目标。这一角色的一个子集,在敏捷用语中被描述为教练/促进者。
敏捷创造了一个新词汇,叫“自组织团队”。我个人是自组织团队的忠实粉丝。它在很多时候运行良好,尤其是在那些人们于公共生活中展现高度责任和义务标准的文化中,这是因为人们把这些高标准同样带进了办公室,完美地匹配了“自组织”团队。让每个雇员都工作于自组织的模式中,是所有公司的梦想。但是就像所有人类各不相同一样,不是每个人都适合“自组织”的团队。比如,不是每个医生都能成为外科医生、牙医或者整形医生,但是每个医生仍然都对社会有用。相似地,不可能期待每个人都能以“自组织的风格”工作。然而,同样是这些(不适合自组织定义的)个人,假如以不同方式处理,仍然可以成为很棒的贡献者。这里就是项目经理角色变得特别有帮助的地方,他可以通过多多少少(依赖于个体情况)的监管,让团队成员做出最佳的工作。敏捷使用“教练/促进者”一词来代表这种角色。另一方面,这一角色在人们稍稍偏离自组织状态时也工作良好。在如下3种情况中,教练/促进者或许必须延展其工作范围。
我在此的意思是,我们应当对所有专业人员具备高度的包容。但是处理和发挥一个个体的长处,方法因人而异,没有适用于每个人的通行法则。组织在这一点上应当反省。所有国家都有很好的技术人员,他们可以是好的贡献者,但也许不能自组织。这就是教练/促进者会转为更像一个项目经理的地方。这些人也许会犯错,也许需要引导和监管,也许缺乏软技巧,如此等等。在教练/促进者的有限范围内,让这些类型的人员与敏捷相适应来完成工作,会成为一个噩梦。我对各种各样的人充满尊重,也坚信这些人可以成为好的贡献者,但是你需要延展教练的职责范围,给与其某种权力来强硬地表明“什么该做,什么不该做”。这里项目经理的角色就变得有帮助。下表展示了一些觉得需要项目经理的其他领域。
|
情境编号 |
事实 |
敏捷如何有用 |
敏捷帮不上忙的地方 (而管理者可以!) |
备注 |
|
1 |
人无完人 |
举行每日进度会议,让他们保持专注,让产品负责人保持需求与业务相一致。 |
1.专注点是否在正确方向上? |
具备横向思维的管理者可以想出创新的办法来管理不完美之处。 教练可以用合适方式提出如何做事,但如果人们不遵循又如何?比如,要是团队在演示后不听取产品负责人的反馈呢?这是可接受的,还是必须强制听取? |
|
2 |
控制改变 |
敏捷在每个冲刺开始时欢迎新的需求,而Scrum Master在冲刺中防止范围蠕变。 |
1.Scrum Master是否正确履行职责? |
敏捷以需求优先级来照管改变,但只是一部分。 产品负责人可以发挥影响力,在冲刺进行中增加故事,可团队不知道如何应对? 任何方法都无法应对无形的改变。 |
|
3 |
沟通不适当 |
敏捷用站会提供了每日沟通的机会,也用回顾会议创造了大家畅所欲言的平台。 |
1.团队是否真正提出障碍? |
公司沟通是与懂得写程序非常不同的课题,也是很困难的课题。 管理学研究解释了沟通的艺术性。 任何流程都不能处理软技巧。 |
|
4 |
流程不完美 |
敏捷在软件开发中有效。 |
每个方法论都有其局限,最终是人来使项目成功。 |
差的敏捷不如没有敏捷。 |
|
5 |
流程实施不恰当 |
敏捷是一个实施依赖于人的流程。 |
1.人们是否遵循流程? |
一个简单例子——在敏捷中,团队是否进行大量的结对编程? |
如果情况出错,项目经理可以拓展其角色至教练/促进者之外。他/她可以控制那些本质上不适合敏捷或是意图上不愿意敏捷的团队成员。我想要指出3个业内普遍流行的神话,他们在敏捷的语境中更加显著。
1号神话:管理者们有万灵仙丹。
事实:处理人的头脑非常复杂,极其有挑战性。这里没有科学,只有纯粹的艺术。不管你做什么,总有不可管理的人,不可控制的改变。以我的愚见,一个好的管理者能够:
请注意,如上这些数字只是我的经验表达,不是基于任何科学的研究调查。
管理者也是人,像其他人一样并不完美。“全方位思考(holistic approach)”的管理是另一个概念。它是一项完全不同的职业,其设计就是为了管理不完美的人和流程。具备相当经验和学识的人可以带来很多价值。
2号神话:管理者们总是限制自由。
事实:对某些霸道的管理者可能是如此。但是实际上,好的管理者创造一个环境,提高表现,让人们发挥出最佳水准。有经验和见识的管理者可能暂时性地限制团队的自由,但其目标最终只是帮助人。有时候人们不能提前看到这一点,因为(a)缺乏经验(b)工作环境过于宽松(c)总是伴随着短视的傲慢心态(d)其他任何未言明的原因。
也有可能是,不胜任的人员惧怕被曝光,于是感觉管理者限制自由。渴望做出成绩的人应当提高自己的标准,利用管理者的经验来弥补不足,并与他/她紧密工作,以获得更多责任,让管理者可以放心休息。
3号神话:管理者不应该有权威。
事实:有些国家和文化从来就灌输公共生活中的责任义务观念,这些情况下是不需要权威的,教练/促进者在这类环境中将如鱼得水。但是权威的概念在有些仍在演化而未达到成熟阶段的社会更有意义。为了控制上述5个原因(本文开头所提),任何管理者在那些环境中都需要权威。没有权威的管理者就像没有油的汽车。研究显示,人的思想在心理上(尤其是成年期)就像硬铁条一样难于弯曲。要把钢铁塑造成漂亮的器具,权威是必需的。当全世界都变得非常勤勉、负责、成熟,以自组织的方式达到高效的时候——全球的管理学院都要关门大吉了。
敏捷是一种很好的软件开发方法,它帮助克服了传统瀑布流程的一些不足。但是敏捷不是使项目成功的王牌。项目中进行工作表现的还是同一批人,而一有人的存在,就总有挑战。这个世界(以及人)充满了问题和缺憾。科学家们通过创新科技来帮助社会,类似地,管理这个职业帮助人们在受到制约的情况下仍能获得商业和职业上的成功。没有什么方法论可以排除管理者,除非是由完美的人来执行。流程是一套指导方针,有流程的地方就有偏差,有人的地方——就有问题。为了管理人和问题、控制偏差和改变——每个项目都需要专业管理的帮助。与此同时,管理者们也是人,他们也同属于这个由缺憾构成的世界,某些管理决策也可能失败。利益相关方必须接受这一点。在一定的环境中,管理者可能需要权威来应用一定的措施,来保证项目的最佳利益。这些措施可能在团队成员中遇到阻力,因此为了应用它们——有时候教练/促进者工作良好,而在有些情况下,具备权威的管理者才可以。
Vinay Aggarwal是印度Xebia IT Architects的交付经理。他在IT业界有11年的经验。他拥有工程学学士学位,是PMI认证的项目管理专家(PMP)和经认证的Scrum Master(CSM)。曾在IBM和埃森哲等公司任职。他在瀑布和敏捷(Scrum)方法论上都有很多经验。他信奉横向思维,并将管理学概念应用于解决各种交付上的挑战。
查看英文原文:The Role of Project Managers in Agile。
感谢郑柯对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。
不错的文章
很有帮助。时刻要意识到不完美的世界,不完美的公司,不完美的项目,不完美的流程,不完美的个人。
很不错的文章。
文章主体很好,说明了当前项目开发中的项目管理的必需的问题。
给我带来了很清晰的概念。
果然是经验丰富,受益匪浅!
非常非常好的一篇文章!务实的讨论了很多研发类项目中的现实问题,包括敏捷本身的局限性,同时也探讨了如何切换在敏捷项目教练和强势的项目经理这两种不同的风格和身份中切换,来更好的解决这些问题。
值得反复阅读。
敏捷是一种很好的软件开发方法,它帮助克服了传统瀑布流程的一些不足。但是敏捷不是使项目成功的王牌。项目中进行工作表现的还是同一批人,而一有人的存在,就总有挑战。这个世界(以及人)充满了问题和缺憾。科学家们通过创新科技来帮助社会,类似地,管理这个职业帮助人们在受到制约的情况下仍能获得商业和职业上的成功。没有什么方法论可以排除管理者,除非是由完美的人来执行。流程是一套指导方针,有流程的地方就有偏差,有人的地方——就有问题。为了管理人和问题、控制偏差和改变——每个项目都需要专业管理的帮助。与此同时,管理者们也是人,他们也同属于这个由缺憾构成的世界,某些管理决策也可能失败。利益相关方必须接受这一点。在一定的环境中,管理者可能需要权威来应用一定的措施,来保证项目的最佳利益。这些措施可能在团队成员中遇到阻力,因此为了应用它们——有时候教练/促进者工作良好,而在有些情况下,具备权威的管理者才可以。
确实,我们需要做的是,使不完美的过程尽量完美,并展示出完美的结果来。
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011。
2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。
12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011。
篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。
随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。
6 条回复
关注此讨论 回复