一切皆可抽象

大而无形 庖丁解牛 厚积薄发 涤虑玄览
   ::  ::  ::  ::  :: 管理

作者 Randy Shoup译者 郭晓刚 发布于 2008年6月12日 下午7时5分

社区
Architecture
主题
设计,
性能和可伸缩性
标签
eBay

在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。

相关厂商内容

SOY Framework:Java富客户端快速开发框架

视频演讲:开放平台技术架构剖析

活动:体验基于OpenSolaris的Web/企业应用(8.30 杭州)

可伸缩性最佳实践:来自eBay的经验

免费迷你书下载:领域驱动设计精简版

相关赞助商

[[InfoQ中文站架构社区|http://www.infoq.com/cn/architecture/],关注设计、技术趋势以及架构师所感兴趣的话题,通过新闻、文章、视频访谈和演讲以及迷你书等为中国架构社区提供一流资讯。

在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的资源消 耗,可伸缩性则是衡量当工作单元的数量或尺寸增加时,资源消耗的变化情况。换句话说,可伸缩性是整个价格-性能曲线的形状,而不是曲线上某一点的取值。

可伸缩性有很多侧面——事务的方面、运营的方面、还有开发的方面。我们在改善一个Web系统的事务吞吐量的过程中学到了很多经验,本文总结了其中若 干关键的最佳实践。可能很多最佳实践你会觉得似曾相识,也可能有素未谋面的。这些都是开发和运营eBay网站的众人的集体经验结晶。

最佳实践 #1:按功能分割

相关的功能部分应该合在一起,不相关的功能部分应该分割开来——不管你把它叫做SOA、功能分解还是工程秘诀。而且,不相关的功能之间耦合程度越松散,就越能灵活地独立伸缩其中的一部分。

在编码层次,我们无时不刻都在运用这条原则。JAR文件、包、Bundle等等,都是用来隔离和抽象功能的机制。

在应用层次,eBay将不同的功能划分成几个应用程序池。销售功能由一组应用服务器运行,投标功能由另一组负责,搜索又是另外一组服务器。我们把总 共约16,000台应用服务器分成220个池。这样就可以根据某项功能的资源消耗,单独地伸缩其中一个池。我们也因此得以进一步隔离及合理化资源依赖关系 ——比如销售池只需要访问后台资源的一个相对较小的子集。

在数据库层次,我们也采取同样的做法。eBay没有无所不包的单一数据库,相反我们有一组数据库主机存放用户数据、一组存放商品数据、一组存放购买数据……总共1000个逻辑数据库分布在400台物理主机上。同样,这种做法让我们得以单独为某一类数据伸缩其数据库设施。

最佳实践 #2:水平切分

按功能分割对我们的帮助很大,但单凭它还不足以得到完全可伸缩的架构。即使将功能一一解耦,单项功能的资源需求随着时间增长,仍然有可能超出单一系 统的能力。我们常常提醒自己,“没有分割就没有伸缩”。在单项功能内部,我们需要能把工作负载分解成许多我们有能力驾驭的小单元,让每个单元都能维持良好 的性能价格比。这就是水平分割出场的时候了。

在应用层次,由于eBay将各种交互都设计成无状态的,所以水平分割是轻而易举之事。用标准的负载均衡服务器来路由进入的流量。所有应用服务器都是 均等的,而且任何服务器都不会维持事务性的状态,因此负载均衡可以任意选择应用服务器。如果需要更多处理能力,只需要简单地增加新的应用服务器。

数据库层次的问题比较有挑战性,原因是数据天生就是有状态的。我们会按照主要的访问路径对数据作水平分割(或称为“sharding”)。例如用户 数据目前被分割到20台主机上,每台主机存放1/20的用户。随着用户数量的增长,以及每个用户的数据量增长,我们会增加更多的主机,将用户分散到更多的 机器上去。商品数据、购买数据、帐户数据等等也都用同样的方式处理。用例不同,我们分割数据的方案也不同:有些是对主键简单取模(ID尾数为1的放到第一 台主机,尾数为二的放到下一台,以此类推),有些是按照ID的区间分割(1-1M、1-2M等等),有些用一个查找表,还有些是综合以上的策略。不过具体 的分割方案如何,总的思想是支持数据分割及重分割的基础设施在可伸缩性上远比不支持的优越。

最佳实践 #3:避免分布式事务

看到这里,你可能在疑惑按功能划分数据和水平划分数据的实践如何满足事务要求。毕竟,几乎任何有意义的操作都要更新一个以上的实体——立即就可以举 出用户和商品的例子。正统的广为人知的答案是:建立跨资源的分布式事务,用两段式提交来保证要么所有资源全都更新,要么全都不更新。很不幸,这种悲观方案 的成本很可观。伸缩、性能和响应延迟都受到协调成本的反面影响,随着依赖的资源数量和客户数量的上升,这些指标都会以几何级数恶化。可用性亦受到限制,因 为所有依赖的资源都必须就位。实用主义的答案是,对于不相关的系统,放宽对它们的跨系统事务的保证。

左右逢源是办不到的。保证跨多个系统或分区之间的即时的一致性,通常既无必要,也不现实。Inktomi的Eric Brewer十年前提出的CAP公理是这样说的:分布式系统的三项重要指标——一致性(Consistency)、可用性(Availability)和 分区耐受性(Partition-tolerance)——在任意时刻,只有两项能同时成立。对于高流量的网站来说,我们必须选择分区耐受性,因为它是实 现可伸缩的根本。对于24x7运行的网站,选择可用性也是理所当然的。于是只好放弃即时一致性(immediate consistency)。

在eBay,我们绝对不允许任何形式的客户端或者分布式事务——因此绝不需要两段式提交。在某些经过仔细定义的情形下,我们会将作用于同一个数据库 的若干语句捆绑成单个事务性的操作。而对于绝大部分操作,单条语句是自动提交的。虽然我们故意放宽正统的ACID属性,以致不能在所有地方保证即时一致 性,但现实的结果是大部分系统在绝大部分时间都是可用的。当然我们也采用了一些技术来帮助系统达到最终的一致性(eventual consistency):周密调整数据库操作的次序、异步恢复事件,以及数据核对(reconciliation)或者集中决算(settlement batches)。具体选择哪种技术要根据特定用例对一致性的需求来决定。

对于架构师和系统的设计者来说,关键是要明白一致性并非“有”和“没有”的单选题。现实中大多数的用例都不要求即时一致性。正如我们经常根据成本和其他压力因素来权衡可用性的高低,一致性也同样可以量体裁衣,根据特定操作的需要而保证适当程度的一致性。 

最佳实践 #4:用异步策略解耦程序

提高可伸缩性的另一项关键措施是积极地采取异步策略。如果组件A同步调用组件B,那么A和B就是紧密耦合的,而紧耦合的系统其可伸缩性特征是各部分 必须共同进退——要伸缩A必须同时伸缩B。同步调用的组件在可用性方面也面临着同样的问题。我们回到最基本的逻辑:如果A推出B,那么非B推出非A。也就 是说,若B不可用,则A也不可用。如果反过来A和B的联系是异步的,不管是通过队列、多播消息、批处理还是什么其他手段,它们就可以分别地伸缩。而且,此 时A和B的可用性特征是相互独立的——即使B受困或者死掉,A仍然能够继续前进。

整个基础设施从上到下都应该贯彻这项原则。即使在单个组件内部也可通过SEDA(分阶段的事件驱动架构,Staged Event-Driven Architecture)等技术实现异步性,同时保持一个易于理解的编程模型。组件之间也遵守同样的原则——尽可能避免同步带来的耦合。在多数情况下, 两个组件在任何事件中都不会有直接的业务联系。在所有的层次,把过程分解为阶段(stages or phases),然后将它们异步地连接起来,这是伸缩的关键。

最佳实践 #5:将过程转变为异步的流

用异步的原则解耦程序,尽可能将过程变为异步的。对于要求快速响应的系统,这样做可以从根本上减少请求者所经历的响应延迟。对于网站或者交易系统, 牺牲数据或执行的延迟时间(完成全部工作的实践)来换取用户的延迟时间(用户得到响应的时间)是值得的。活动跟踪、单据开付、决算和报表等处理过程显然都 应该属于后台活动。主要用例过程中常常有很多步骤可以进一部分解成异步运行。任何可以晚点再做的事情都应该晚点再做。

还有一个同等重要的方面认识到的人不多:异步性可以从根本上降低基础设施的成本。同步地执行操作迫使你必须按照负载的峰值来配备基础设施——即使在 任务最重的那一天里任务最重的那一秒,设施也必须有能力立即完成处理。而将昂贵的处理过程转变为异步的流,基础设施就不需要按照峰值来配备,只需要满足平 均负载。而且也不需要立即处理所有的请求,异步队列可以将处理任务分摊到较长的时间里,因而起到削峰的作用。系统的负载变化越大,曲线越多尖峰,就越能从 异步处理中得益。

最佳实践 #6:虚拟化所有层次

虚拟化和抽象化无所不在,计算机科学里有一句老话:所有问题都可以通过增加一个间接层次来解决。操作系统是对硬件的抽象,而许多现代语言所用的虚拟 机又是对操作系统的抽象。对象-关系映射层抽象了数据库。负载均衡器和虚拟IP抽象了网络终端。当我们通过分割数据和程序来提高基础设施的可伸缩性,为各 种分割增加额外的虚拟层次就成为重中之重。

在eBay,我们虚拟化了数据库。应用与逻辑数据库交互,逻辑数据库再按照配置映射到某个特定的物理机器和数据库实例。应用也抽象于执行数据分割的 路由逻辑,路由逻辑会把特定的记录(如用户XYZ)分配到指定的分区。这两类抽象都是在我们自己开发的O/R层上实现的。这样虚拟化之后,我们的运营团队 可以按需要在物理主机群上重新分配逻辑主机——分离、合并、移动——而完全不需要接触应用程序代码。

搜索引擎同样是虚拟化的。为了得到搜索结果,一个聚合器组件会在多个分区上执行并行的查询,但这个高度分割的搜索网格在客户看来只是单一的逻辑索引。

以上种种措施并不只是为了程序员的方便,运营上的灵活性也是一大动机。硬件和软件系统都会故障,请求需要重新路由。组件、机器、分区都会不时增减、 移动。明智地运用虚拟化,可使高层的设施对以上变化难得糊涂,你也就有了腾挪的余地。虚拟化使基础设施的伸缩成为可能,因为它使伸缩变成可管理的。

最佳实践 #7:适当地使用缓存

最后要适当地使用缓存。这里给出的建议不一定普遍适用,因为缓存是否高效极大地依赖于用例的细节。说到底,要在存储约束、对可用性的需求、对陈旧数 据的容忍程度等条件下最大化缓存的命中率,这才是一个高效的缓存系统的最终目标。经验证明,要平衡众多因素是极其困难的,即使暂时达到目标,情况也极可能 随着时间而改变。

最适合缓存的是很少改变、以读为主的数据——比如元数据、配置信息和静态数据。在eBay,我们积极地缓存这种类型的数据,并且结合使用“推”和“ 拉”两种方法保持系统在一定程度上的更新同步。减少对相同数据的重复请求能达到非常显著的效果。频繁变更、读写兼有的数据很难有效地缓存。在eBay,我 们大多有意识地回避这样的难题。我们一直不对请求间短暂存在的会话数据作任何缓存。也不在应用层缓存共享的业务对象,比如商品和用户数据。我们有意地牺牲 缓存这些数据的潜在利益,换取可用性和正确性。在此必须指出,其他网站采取了不同的途径,作了不同的取舍,也同样取得了成功。

好东西也会过犹不及。为缓存分配的内存越多,能用来服务单个请求的内存就越少。应用层常常有内存不足的压力,因此这是非常现实的权衡。更重要的一 点,当你开始依赖于缓存,那么主要系统就只需要满足缓存未命中时的处理要求,自然而然你就会想到可以削减主要系统。但当你这样做之后,系统就完全离不开缓 存了。现在主要系统没办法直接应付全部流量,也就是说网站的可用性取决于缓存能否100%正常运行——潜在的危局。哪怕是例行的操作,比如重新配置缓存资 源、把缓存移动到别的机器、冷启动缓存服务器,都有可能引发严重的问题。

做得好,缓存系统能让可伸缩性的曲线向下弯曲,也就是比线性增长还要好——后续请求从缓存中取数据比从主存储取数据成本低廉。反过来,缓存做得不好 会引入相当多额外的经常耗费,也会妨碍到可用性。我还没见过哪个系统没机会让缓存大展拳脚的,关键是要根据具体情况找到适当缓存策略。

总结

可伸缩性有时候被叫做“非功能性需求”,言下之意是它与功能无关,也就比较不重要。这么说简直错到了极点。我的观点是,可伸缩性是功能的先决条件——优先级为0的需求,比一切需求的优先级都高。

希望以上最佳实践能对你有用,希望能帮助你从新的角度审视你的系统,无论其规模如何。

posted @ 2008-08-22 16:54 锋出磨砺 阅读(213) | 评论 (0)编辑 收藏

软件开发的过程

作者 Kurt Christensen译者 郑柯 发布于 2008年8月20日 上午9时38分

社区
Agile
主题
敏捷实施,
变更

“射箭高手的秘密诅咒”一文中,纽约时报专栏作家Katie Thomas描述了一种奇怪的痛苦情绪,它广为人知,人们称之为“目标恐慌”。当世界顶尖的射箭高手向目标发出一箭时,这种情绪会导致他们失去控制能力,如此现象让人费解。人们通常认为这是一种心理问题,新的研究表明:“目标恐慌”实际上是神经失调的表现。

为了理解这些以前无法解释的痛苦,神经病学家开始探究大脑深处存在的处理方式。比如最近《纽约客》发表了一篇文章,其中Atul Gawandem博士描述了对于“四肢疼痛幻觉”的全新治疗方法。“四肢疼痛幻觉”是指,接受截肢手术的人会感受剧烈疼痛,不过这些疼痛出现在已被截去的手臂或腿部之上。医生将接受截肢的人放在多面镜子之前,这会让患者产生四肢健全的幻觉。接下来医生会让患者完成多种任务,比如指挥不存在的交响乐团。来自Walter Reed医院的全新研究显示,这种“镜箱治疗法”可以有效去除“四肢疼痛幻觉”症状。令人惊讶的是,为大脑提供一系列全新的、出其意表的感官输入,这会让大脑改变内部的处理流程。

当然,在人工智能领域之内,使用数据改变处理这些数据的算法,这并无特别之处。此种“学习算法”的应用非常广泛,涵盖了从语音识别到信用卡欺诈检测等很多领域。实际上,随着处理海量数据能力的增强,似乎学习算法接受的数据要比算法本身还重要。在2008创业学校上的演讲中,Peter Norvig比较了五种可以自我调整的算法在表现上的差异,这些算法是用来处理自然语言的。结果表明:选择更好的算法所带来的表现提升,远不如让它们处理更多数据带来的提升更明显。

可是这种方式能够用来跟软件开发的过程做类比么?在《人类赖以生存的隐喻》一书中,George Lakoff和Mark Johnson讲述了隐喻塑造我们理解世界的方式,以及隐喻揭示与混淆我们身边世界的方式。对于大脑、软件,以及软件开发,唯一的隐喻就是:机器——也就是硬件。可是在这两个例子中,如果能将处理过程看做软件——也就是可编程的,也许能取得更好的进展;虽然易于出错,但是也易于修复。如果软件是软件开发的隐喻,那么软件开发的流程创建和提炼的方式,应该与软件创建和提炼的方式相同;小窥一下,处理软件开发流程,只需构建需要的部分,而且总是通过迭代和测试驱动的方式。

大家都已经习惯于事先明确定义最佳流程,要想抛弃这种观念,也许有点让人胆战心惊,可是现实告诉我们:要想为一组特定的人制订软件开发的流程,不应事先进行流程的明确定义,而应将精力放在流程的演进上;这也是与人类大脑和软件本身最一致的方式。

posted @ 2008-08-22 16:27 锋出磨砺 阅读(173) | 评论 (0)编辑 收藏

      
      一条边界线把A镇分为两半,一边属墨西哥而另一边则是美国。尽管如此,小镇上的居民还是不受国别束缚自由往来。快乐的青年佛朗西斯科住在A镇的墨西哥一侧,他的唯一嗜好是喜爱杯中物,却经常囊中空空。为了一杯啤酒,佛朗西斯科整天在墨西哥和美国之间来回穿插寻找机会。终于,他发现了在墨西哥和美国之间存在着一种特殊的货币情况:在墨西哥,1美元只值墨西哥货币的90分;而在美国,1比索(1墨西哥比索=100分)只值90美分。

  一天,佛朗西斯科决定把他的发现付诸实践。他先走进一家墨西哥小酒吧,要了一杯价格为

  10个墨西哥分的啤酒。喝完之后,他用1个墨西哥比索付帐而要求找补美元。接着,他怀装找回的1美元(在墨西哥只值90个墨西哥分)越过边境又进了一家美国酒吧。这次,他仍旧要了一杯价格为10美分的啤酒喝起来,然后,他用刚才在墨西哥小酒吧找回的1美元付帐,根据他的要求又找回了1个墨西哥比索(在美国只值90美分)。

  现在,佛朗西斯科发现,当他喝完两杯啤酒之后,钱袋里的钱却1分也没有少,仍然有一个比索。于是,他继续不断地重复这一方法,整天在墨西哥和美国之间愉快地喝啤酒。

  问题是:谁在真正支付佛朗西斯科的啤酒帐?

posted @ 2007-08-30 17:40 锋出磨砺 阅读(223) | 评论 (1)编辑 收藏

 

 

 

一天,一只兔子在山洞前写文章,一只狼走了过来,问:“兔子啊,你在干什么?”答曰:“写文章。”问:“什么题目?”答曰:“《浅谈兔子是怎样吃掉狼的》。”狼哈哈大笑,表示不信,于是兔子把狼领进山洞。

  

  过了一会,兔子独自走出山洞,继续写文章。一只野猪走了过来,问:“兔子你在写什么?”答:“文章。”问:“题目是什么?”答:“《浅谈兔子是如何把野猪吃掉的》。”野猪不信,于是同样的事情发生。

      最后,在山洞里,一只狮子在一堆白骨之间,满意的剔着牙读着兔子交给它的文章,题目:“《一只动物,能力大小关键要看你的老板是谁》。”   

  这只兔子有次不小心告诉了他的一个兔子朋友,这消息逐渐在森林中传播;狮子知道后非常生气,他告诉兔子:“如果这个星期没有食物进洞,我就吃你。”于是兔子继续在洞口写文章.

        一只小鹿走过来,“兔子,你在干什么啊?”“写文章”“什么题目”““《浅谈兔子是怎样吃掉狼的》”“哈哈,这个事情全森林都知道啊,你别胡弄我了,我是不会进洞的”“我马上要退休了,狮子说要找个人顶替我,难道你不想这篇文章的兔子变成小鹿么”

  小鹿想了想,终于忍不住诱惑,跟随兔子走进洞里。过了一会,兔子独自走出山洞,继续写文章,一只小马走过来,同样是事情发生了。最后,在山洞里,一只狮子在一堆白骨之间,满意的剔着牙读着兔子交给它的文章题目是:《如何发展下线动物为老板提供食物

 

随着时间的推移,狮子越长越大,兔子的食物已远远不能填饱肚子。一日,他告诉兔子:“我的食物量要加倍,例如:原来4天一只小鹿,现在要2天一只,如果一周之内改变不了局面我就吃你。

  

  于是,兔子离开洞口,跑进森林深处,他见到一只狼“你相信兔子能轻松吃掉狼吗”狼哈哈大笑,表示不信,于是兔子把狼领进山洞。过了一会,兔子独自走出山洞,继续进入森林深处这回他碰到一只野猪----“你相信兔子能轻松吃掉野猪吗”野猪不信,于是同样的事情发生了。

  

  原来森林深处的动物并不知道兔子和狮子的故事最后,在山洞里,一只狮子在一堆白骨之间,满意的剔着牙读着兔子交给它的文章题目是:《如何实现由坐商到行商的转型为老板提供更多的食物》

  

  时间飞快,转眼之间,兔子在森林里的名气越来越大,因为大家都知道它有一个很历害的老板,这只小兔开始横行霸道,欺上欺下,没有动物敢惹它.时时想起和乌龟赛跑的羞辱,它找到乌龟说:“三天之内,见我老板!”扬长而去.

 

  乌龟难过的哭了这时却碰到了一位猎人.乌龟把这事告诉了他,猎人哈哈大笑.于是森林里发生了一件重大事情--猎人披着狮子皮和乌龟一起在吃兔子火锅,地下丢了半张纸片歪歪扭扭的写着:山外青山楼外楼,强中还有强中手啊!!

  在很长一段时间里森林里恢复了往日的宁静,兔子吃狼的故事似乎快要被大家忘记了,不过一只年轻的老虎在听说了这个故事后,被激发了灵感于是他抓住了一只羚羊,对羚羊说,如果你可以象以前的兔子那样为我带来食物那我就不吃你。

  

  于是,羚羊无奈的答应了老虎,而老虎也悠然自得的进了山洞。可是三天过去了,也没有见羚羊领一只动物进洞。他实在憋不住了,想出来看看情况。羚羊早已不在了,他异常愤怒。正在他暴跳如雷的时候突然发现了羚羊写的一篇文章题目是:《想要做好老板先要懂得怎样留住员工》

 

posted @ 2007-08-20 12:25 锋出磨砺 阅读(203) | 评论 (0)编辑 收藏

 

在软件开发中资源使用

 

老李(libaojian@infoer.com.cn)

 

在一个软件系统的开发中,每个团队成员都面临着资源不足的问题,如何权衡资源,让资源动态的适应情景,推进工作的进展,当显示出资源分配和控制者的能力。当拳头都合力打出,体现了资源的最大效用。

从一个项目酝酿的时候,到后期维护,一般不可能有很多的资源交给你支配。从多年的经验,分析出资源包括了4大类资源

Ø         时间资源(进度 周期 时间)

Ø         人力资源(角色 一个萝卜一个坑 或者一个萝卜多个坑)

Ø         能力资源(个人)

Ø         支持资源(特定问题的支持)

只有将这些资源 合理的搭配和使用 才会使的问题解决起来更加的容易一些,才会使一切在掌控之中。否则将会出现失控的局面。

下面将围绕这4个资源来展开问题的分析。

时间资源:

在国内软件系统开发的大环境下,基本没有让人满意的资源支持,一般的系统,在不规范的的环境下开发都面临时间不足的情况。作为项目责任人,只能是努力的去调配,使工作顺利开展,尽大可能推进进度。

我总结处理的方式步骤如下。

1,仔细分析系统的架构说明书(高层用例)和技术研究成果,尽可能的争取合理的时间资源。

2,当不能争取到合理的时间资源的时候,分析并缩减工作量,根据客户和市场的具体情况,进行合理的功能实现和产品的包装。

3,当2的解决方法不能争取到的时候,就要在资源分配上想办法了。一般的方式就是利用现成的工具,设计成果,快速开发工具等方法。总之,能节优时间的方式都采用。

从多年的经验 我总结出下面的方法,不一定合适,具体情况具体分析罗

 a, 充实人力(有相关经验的人) 缩短开发时间 同时提高能力资源

 b, 寻求各种方式进行培养 提高团队战斗力 同时提高能力资源

 c, 寻求已经有的好的设计 代码 拿来直接用 ;开发代码生成工具 节约时间 ;修改设计文档格式,达到crc目的即可,并且可以作为正式文档的元素和储备。

     在时间资源方面,总结就是省。寻求各种方式,省时间,依赖于其他资源进行时间的节约。

如何让所有的涉众目标快速达到一致

1,文档:

因为一个工程,所有的涉众不是同时介入的。这就导致了

对于工程的认识就不同。而要帮助后加入的成员很快的进入角色,

就必须有提纲性的文档作为引导。并且所有的描述语言都是所能够

领会的,比如uml就是一个很好的选择。

2,授课:

严肃的说不是授课,而是交流经验。广开言论,而后达成共识。

3,明确的核心骨架和规范

高层业务用例,高层测试用例,核心类构成,主要流程。这些都决定了

系统的主脉络。

  

人力资源:

以人为本是好多公司人性化的借口,当公司压榨团队成员的时候,如何将这个最难玩的资源掌控好学问很大。虽说用制度来衡量和管理是最科学的,但是人这种高级动物,想法太多。曾经总结了若干调动团队积极性的条条。只是人力资源管理的一个方面。

   

如何让团队成员保持激情

1,阶段性的成果

   让每个员工感受到阶段性的成果,是大家心血的结晶,而且是大家

   辛苦努力的结果。不是停留于语言上,而是让每个人真切的感受到

   确实是这样。并且对结果都是有十足的信心。

2,挑战性的工作

   在单调的工作中,寻找挑战性,寻找亮点。让每个人在团队中体现出

   个性,让每个人感受到她是不可获缺的。

3,时刻的进步

   对每个成员进行合理的规划,在工作的同时,提高每个人在自己领域的进步

   尽可能的和她的职业规划一致。时刻感受到她在进步。

4,实时的支持和鼓励

   风险和困难到处都是,此时,要有强有力的支持和鼓励以及帮助。要尽可能的

   寻找资源来帮助她,而不是将压力全部推给她。

5,成果的喜悦和物质的关怀

   我们成果了,职业生涯画了很好的一笔,精神享受的同时,将大家的打车费,加班费

   ,奖金等立刻兑现。走 high 哥们。

 如何让团队有凝聚力和自由的交流空间

1,成果分享

   在体现个人价值的同时,成果是大家分享的。当然 给予分享的人,她的个人魅力的提升就是一种收获。

   将这种价值观贯穿整个团队。鼓励大家分享。

2,有个安静的交流环境和小黑板

   如果有coffee更好不过。这里是灵感的来源地,解决问题的天堂。

3,有价值的培训和交流

   不说为项目做准备,就是提高个人能力和交流彼此思想。此时我们抛开目前的项目。

   我总结的原则是

1, 岗位不能缺失,不管是通过招聘,培养的方式,每个坑必须都有萝卜,可能会有一个萝卜多个坑的情况

2, 寻找各种方式,使每个萝卜达到最大的饱和战斗力。

3, 寻求各种方式,增强团队战斗力和凝聚力

能力资源:

1, 挖取个人潜在能力并快速培养

2, 增强个人自信心

支持资源:

1, 知识库 搜集各种知识资源,包括行业知识,分析设计知识,代码片断

2, 内部培训交流 挖取每个成员的优势 知识分享

3, 寻找外培机会 免费和付费的

4, 书本材料

5, 办公用品

6, 员工的家事和健康

 资源的分类

    可重用资源(模式,代码,方法) 不可重用资源(时间)

可重用资源的累计

当我们拥有第一桶金的时候,我们就开始了资源的累计。所有的成员都是资源的累计者和创造者,当给每个成员进行创造资源的任务的同时,将足够的支持资源尽力的给他,并且以合适的方式和合适的内容。创造的资源经过整理成为我们资源库的资源。

系统负责人就是控制资源,整理资源,分配资源,累计资源。使雪球越来越大。进而形成自己的模式,自己的风格,自己的资源库。一切形成习惯的时候,就向良性的发展走去。

办法总比问题多。

不可重用资源的节约

   提高效率 增强战斗力

 

posted @ 2007-08-20 12:24 锋出磨砺 阅读(618) | 评论 (0)编辑 收藏

作者:芒种 http://www.flash8.net/flash/16836.shtml

posted @ 2007-08-15 19:33 锋出磨砺 阅读(158) | 评论 (0)编辑 收藏

鸿鹄先生http://www.flash8.net/flash/35507.shtml
邮箱: fmxt@sina.com

posted @ 2007-08-15 19:20 锋出磨砺 阅读(151) | 评论 (0)编辑 收藏

posted @ 2007-08-14 12:49 锋出磨砺 阅读(245) | 评论 (0)编辑 收藏

发现了1975年《红旗》杂志的惊人预言 

1975年《红旗》杂志的惊人预言


下面这篇文章原载30多年前的《红旗》杂志一九七五年十一期,是关于教育问题的。 



  近年来,在苏修社会里,出现了一种新的行业。这种新行业,虽然没有被苏修叛徒集团列入他们“巨大成就”的栏目内,但倒真的搞得不坏,正在以很快的速度“发达”起来。这里,且举这种行业的几个小例子,使读者开开眼界。 

  先看“私人授课”业。此业现在盛行苏联全国,据说是专门为中学生进入大学而设立的。私人授课每小时可得五至十个卢布,相当于普通工人一天半以上的工资。在莫斯科街头,“圆柱上”、“墙壁上”,“大门道里”,到处是这种花花绿绿的广告,简直让人眼花缭乱。 

  再看“代人考试”业。据《莫斯科晚报》载,有一种“代人考试组织”,专门代人投考大专学校。这种组织业务繁忙,应接不暇。有一个成员上午到食品工业专门学校代人考试,下午又到纺织工业大学代考,第二天又到莫斯科大学代人投考经济系。考取后,每位收取代考费五百卢布。 

  其次看“论文出售”业。《共青团真理报》载,罗斯托夫铁路运输工程学院里有一种“联合组织”,专门“帮人做毕业设计、学习论文、测验作业、实验室作业”。一份设计,售价九十卢布,有的一百五十卢布。 

  再其次看“毕业证书制造”业。《消息报》介绍的一个“毕业证书制造所”,一张毕业证书售价一千卢布,两年中他们就销售了五十六张这样的毕业证书。 

  若问这种行业为什么如此兴隆,那就要看看苏修的教育制度了。随着资本主义的全面复辟,苏修的教育,特别是高等教育,早已成为进入特权阶级的阶梯。苏修总头目勃列日涅夫说:“国家主要是从经过高等学校培养的专家中吸收从事经济工作、党的工作、国家工作、外交工作、军事工作和从事一切社会活动的干部。”许多材料证明,大学文凭是选拔干部的决定性标准。有此文凭,即使是个**,也能捞个一官半职;无此文凭,即使你是“共产主义劳动突击手”,“从战争年代起”就做某项工作,并且“有这方面的专业知识”,但最后是“被裁掉”!勃列日涅夫的话以及无数事实告诉人们:只要一进了高等学校,或者干脆只要设法捞到一张大学文凭,那就能够得到高官厚禄,就有飞黄腾达的时机。要是进不去呢,那就对不起,只能“永远”当一个被人看不起的“执行者”。许多人为了达到“高升”的目的,当然就只有八仙过海,各显神通。于是各种稀奇古怪的行业都应运而生了。 

  可不能小看这种新行业。特权阶级要把自己的爵位和俸禄传给他们的子女,一个重要的办法就是通过教育一途。而这样做,没有上述行业的帮助,就有点儿难处。你说考试吧,“中学课程”并不完全包括大学“考试中应考的所有材料”,一般中学毕业生怎么去考?有了上述行业,苏联的资产阶级新贵们就不怕。他们有的是钱,可以雇请“家庭教师”,或使子女进各种学费昂贵的私人“补习班”之类。这样把子女塞进高等学府以后,总算放心了吧?可是还不行,有些公子小姐们一向吃喝玩乐,谁愿去死啃书本?不能毕业怎么办?还得依靠上述行业。 

  在“教育市场”上,只要不惜重金,什么毕业论文、毕业文凭,甚至“副博士”之类的头衔都可以买到。有了这些玩艺儿,就可以骑在劳动人民头上作威作福了。不难看出,苏修教育领域的新行业,完全是适应特权阶级对劳动人民实行资产阶级文化专制的需要而产生的。 

  “有钱,就可以进入高等学校”,这是苏修一家不大不小的官方报纸吐出来的一句很难得的真话。当然,苏修统治者“标准的提法”可不是这样。因为这么说,他们那个冒牌的“社会主义”不就露了底?你听,苏修《国民教育立法原则》说得多么堂皇:苏联全体公民不分财产和社会地位,“在受教育方面一律平等”。但事实呢?在苏修叛徒集团的统治下,劳动人民既没有那么多的钱去雇请“私人教师”,又没有那么高的地位来得到同僚们的“照顾”。他们的子女,无论在分数面前,还是在其他什么面前,怎么能同那些公子小姐们“一律平等”呢? 

  且以他们自己对新西伯利亚所作的调查为例,那里有近百分之九十的农民子女被排斥在大学门外,而城市知识分子(不要忘记,其中也包括官僚)的子女却有近百分之九十都钻进了高等学校。按照苏修的“立法原则”,或者可以这样说吧,百分之九十和百分之九十还不是“一律平等”么?其实,什么抽象的“自由”、“平等”,从来就是资产阶级的谎言。列宁曾说过:“只要阶级还没有消灭,任何关于一般自由和平等的谈论都是欺骗自己,或者是欺骗工人,欺骗全体劳动者和受资本剥削的人,无论如何,也是维护资产阶级的利益。”列宁的话,这样无情地揭露了一切关于一般自由、平等言论的虚伪性。可是,以“列宁主义者”自命的勃列日涅夫们,在明明不平等的事实面前,还在那儿高谈着“一律平等”之类的神话,这难道不正是为了欺骗苏联劳动人民吗! 

  学校商业化,知识商品化,这完全是苏修全面复辟资本主义给教育带来的必然结果。苏修统治者通过校内教育和校外宣传,公然要青年人树立“合理的利己主义”世界观,并且毫不隐讳地对他们说,“学习、掌握知识”是一本万利的买卖,“这是一个将能产生高额利钱的贮钱匣”。既然“知识”、“文凭”、“学衔”都可以用金钱买来,那么,这些东西一旦到手,当然就要立即投入“周转”,以谋取更大的利润。亏本的生意谁会去做?这种腐朽透顶的“教育”,是一个黑色染缸,别说特权阶级的子女,就是少数劳动人民的子女进校后,也必然要受到腐蚀和毒害。它只能培养那种以赚钱赢利为人生哲学的新资产阶级分子,即培养特权阶级的接班人。 

  苏修教育领域这种新行业,闹得乌烟瘴气,引起了劳动人民的愤怒,于是苏修报纸也不得不说上几句对此表示不满的话。这当然只是装装样子、骗骗群众而已。他们心里明白,擦掉主人身上一点儿浮油,根本不可能触伤老爷们那肥胖的躯体。那些真正敢于揭露这种丑恶现象的社会根源的,不仅文章登不出,恐怕连作者都早已被关进了“疯人院”。而经过精心筛选后登出的那些不疼不痒、避而不谈问题实质的文章,简直无异于莫斯科街头的广告,对这种行业只能起到提倡、鼓励以至“介绍经验”的作用。很显然,要彻底解决这些问题,那就意味着推翻苏修现存的社会制度,这是苏修统治者连想都不敢想的。然而,统治者不敢想的,苏联人民却要想,并且终究有一天还要行动起来,再一次扫除这些秽物。

posted @ 2007-07-18 21:29 锋出磨砺 阅读(584) | 评论 (0)编辑 收藏

 一碗牛肉面的思考 转帖
            推荐人:kitty 2007-1-30 10:11:40


               
              我跟朋友在路边一个不起眼的小店里吃面,由于客人不多,我们就顺便和小老板聊了会儿。谈及如今的生意,老板感慨颇多,他曾经辉煌过,于兰州拉面最红的时候在闹市口开了家拉面馆,日进斗金啊!后来却不做了。朋友心存疑虑地问他为什么。

              
                 “现在的人贼呢!”老板说,“我当时雇了个会做拉面的师傅,但在工资上总也谈不拢”。
              
              
              “开始的时候为了调动他的积极性我们是按销售量分成的,一碗面给他5毛的提成,经过一段时间,他发现客人越多他的收入也越多,这样一来他就在每碗里放超量的牛肉来吸引回头客”,“一碗面才四块,本来就靠个薄利多销,他每碗多放几片牛肉我还赚哪门子啊!”

              
              
              “后来看看这样不行,钱全被他赚去了!就换了种分配方式,给他每月发固定工资,工资给高点也无所谓,这样他不至于多加牛肉了吧?因为客多客少和他的收入没关系。”

              
              
              “但你猜怎么着?”老板有点激动了,“他在每碗里都少放许多牛肉,把客人都赶走了!”“这是为什么?”现在开始轮到我们激动了。“牛肉的分量少,顾客就不满意,回头客就少,生意肯定就清淡,他(大师傅)才不管你赚不赚钱呢,他拿固定的工钱巴不得你天天没客人才清闲呢!”

              
                 啊!结果一个很好的项目因为管理不善而黯然退出市场,尽管被管理者只有一个。
              
                 当我们把这个案例告诉给其他的朋友并讨论的时候,他们先是拍案叫绝,继而沉思,时而悲愤,时而慷慨陈辞。
              
               
              
                 下面是一个博士,一个研究生,和一个MBA对这个问题的激辩,请大家先谈自己的想法,这可是第一手的实战啊!
              
              
              1.首先我们考虑将小老板所用两种方案进行折中,即:底薪加提成的方法,提成根据每碗的利润分配。这样既可以防止他少放牛肉,又能防止他疯狂地多放牛肉。

              
              
              2.后来又想到这一条是有条件的。问题是每碗的利润界定后怎么个分配法?一碗面能挣多少是瞒不过大师傅的,如果不能让双方的利益在某个点达到平衡,一切又会回复原样。而要达到所说的那种平衡涉及到一个复杂的相关函数问题,说不定还要用到博弈论。

              
                 3.把面馆承包给大师傅,老板拿了提成后回家养花弄鸟去。当然,提出这个方案后大家都有过短暂的脸红,再否定!
              
              
              4.然后我们谈到了企业文化、正义、道德、人性,并一致认为:管理学博大精深,成为一个优秀的管理者非得经过百般磨练方能修得正果,再先进的管理理论也有不适用的时候。

              
               
              
                 是啊,就这个小小牛肉面的故事,却反映出了一个小企业管理中的种种问题。
               
              
              首先就是一个关于大师傅激励的问题。可以设计一个激励机制,就是在定额约束下的销量或利润累积奖励。首先根据每碗面的顾客可接受效用制订一个材料定额,大师傅的工资还是按照销售量提成,但是前题是月度的材料消耗不得偏离定额太多,例如允许波动幅度为20%,否则只有基本工资。或者说每碗面规定需要添加的牛肉克数,一批牛肉的总量是固定的,拉面的卖出量是可以计算的,多少碗面放多少斤牛肉限定住了,哪个加牛肉的要敢给我多加或者少加,工资就对不起了。还是底薪加提成工资,老板自己心里得算清楚一碗面的成本是多少?利润是多少?如果牛肉放多了,客户多了,以牛肉最大量为定量,以面条量为变量,控制一下放面条的多少使自己还有利润可赚,这个就得有一个取值的过程了!虽然现在都讲公司效益与员工利益进行挂钩,股权分配是个好法子,但对于一个小店,搞什么股权激励,有点不切实际了。

              
              
              其次,我想饭店也是制造,必须有工作程序、定额消耗以及制度规范,可以没有书面东西,但老板必须心中有数才行。对这个小老板的拉面店来说,其实就是师傅以技术入股的方式和老板利润分配,大家都双赢。两个人合伙做,费用两个人摊,进行规划化管理。在工作程序上:比如制订sop,包括面条的量,水的量,肉的量等bom明确规定,制造方法、工艺也请大师傅标准化;在定额消耗上,也与上述的激励密切相联;薪水报酬上:参考社会上的平均工资和本店的盈利水平,结合师傅的劳动量、劳动结果(营业额的增加降低、顾客的反馈等)进行综合评定。

              
              
              此外,将复杂的事情简单化:老板娘放牛肉不就得了?关键的资源一定要掌握在关键的人手里!关键资源才是最重要的。老板掌握了店面的所有权,才可能有大师傅为他打工;老板娘掌握了牛肉的分发权,才有可能防止材料的浪费和滥用。不过,老板还应该再掌握大师傅这一核心的人力资源,怎么掌握还是一个难题……唉,人力资源……而且,作为小规模店铺,老板要熟悉每一个环节,才能做好管理。如果牛肉拉面老板很熟悉牛肉面的制作,师傅也不敢乱来。有效的经营监督就是这样。

              
              
              另外,任何工作除了要有监督、控制,其余的事情都可以通过沟通来解决。我们认为本例中没有一种好的办法能一劳永逸地解决分配问题,在这种作坊式的小企业里,老板与员工每天有大量时间接触,关系是否和谐非常重要。惟有靠小老板良好的个人魅力并善待下属,才会让大师傅内心产生归属感及满足感,积极工作努力为老板创造利润,到那时候牛肉的多少就不成麻烦了。
              
                 通过以上的分析,我认为管理应该是这样的:
              
               1.底薪加提成,提高积极性;
              
               2.不能把全线流程的权利都下放给大师傅,比如加牛肉;
              
                3.建立有效的制度,包括奖赏和惩罚,制度根据顾客的满意程度和利润来 建立;
              
               4.大师傅的工资提成不能只和销量挂钩,应该和老板的利润挂钩,比如一碗面中老板利润的30%是大师傅的利润;
              
               5.有效的沟通、激励,平时给大师傅精神的奖励,让大师傅认为自己也是面馆的主人。
             

posted @ 2007-06-16 17:51 锋出磨砺 阅读(203) | 评论 (0)编辑 收藏

仅列出标题
共14页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last