<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一切皆可抽象

    大而無形 庖丁解牛 厚積薄發 滌慮玄覽
       ::  ::  ::  ::  :: 管理

    作者 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 鋒出磨礪 閱讀(219) | 評論 (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 鋒出磨礪 閱讀(181) | 評論 (0)編輯 收藏

          
          一條邊界線把A鎮分為兩半,一邊屬墨西哥而另一邊則是美國。盡管如此,小鎮上的居民還是不受國別束縛自由往來。快樂的青年佛朗西斯科住在A鎮的墨西哥一側,他的唯一嗜好是喜愛杯中物,卻經常囊中空空。為了一杯啤酒,佛朗西斯科整天在墨西哥和美國之間來回穿插尋找機會。終于,他發現了在墨西哥和美國之間存在著一種特殊的貨幣情況:在墨西哥,1美元只值墨西哥貨幣的90分;而在美國,1比索(1墨西哥比索=100分)只值90美分。

      一天,佛朗西斯科決定把他的發現付諸實踐。他先走進一家墨西哥小酒吧,要了一杯價格為

      10個墨西哥分的啤酒。喝完之后,他用1個墨西哥比索付帳而要求找補美元。接著,他懷裝找回的1美元(在墨西哥只值90個墨西哥分)越過邊境又進了一家美國酒吧。這次,他仍舊要了一杯價格為10美分的啤酒喝起來,然后,他用剛才在墨西哥小酒吧找回的1美元付帳,根據他的要求又找回了1個墨西哥比索(在美國只值90美分)。

      現在,佛朗西斯科發現,當他喝完兩杯啤酒之后,錢袋里的錢卻1分也沒有少,仍然有一個比索。于是,他繼續不斷地重復這一方法,整天在墨西哥和美國之間愉快地喝啤酒。

      問題是:誰在真正支付佛朗西斯科的啤酒帳?

    posted @ 2007-08-30 17:40 鋒出磨礪 閱讀(229) | 評論 (1)編輯 收藏

     

     

     

    一天,一只兔子在山洞前寫文章,一只狼走了過來,問:“兔子啊,你在干什么?”答曰:“寫文章。”問:“什么題目?”答曰:“《淺談兔子是怎樣吃掉狼的》。”狼哈哈大笑,表示不信,于是兔子把狼領進山洞。

      

      過了一會,兔子獨自走出山洞,繼續寫文章。一只野豬走了過來,問:“兔子你在寫什么?”答:“文章。”問:“題目是什么?”答:“《淺談兔子是如何把野豬吃掉的》。”野豬不信,于是同樣的事情發生。

          最后,在山洞里,一只獅子在一堆白骨之間,滿意的剔著牙讀著兔子交給它的文章,題目:“《一只動物,能力大小關鍵要看你的老板是誰》。”   

      這只兔子有次不小心告訴了他的一個兔子朋友,這消息逐漸在森林中傳播;獅子知道后非常生氣,他告訴兔子:“如果這個星期沒有食物進洞,我就吃你。”于是兔子繼續在洞口寫文章.

            一只小鹿走過來,“兔子,你在干什么啊?”“寫文章”“什么題目”““《淺談兔子是怎樣吃掉狼的》”“哈哈,這個事情全森林都知道啊,你別胡弄我了,我是不會進洞的”“我馬上要退休了,獅子說要找個人頂替我,難道你不想這篇文章的兔子變成小鹿么”

      小鹿想了想,終于忍不住誘惑,跟隨兔子走進洞里。過了一會,兔子獨自走出山洞,繼續寫文章,一只小馬走過來,同樣是事情發生了。最后,在山洞里,一只獅子在一堆白骨之間,滿意的剔著牙讀著兔子交給它的文章題目是:《如何發展下線動物為老板提供食物

     

    隨著時間的推移,獅子越長越大,兔子的食物已遠遠不能填飽肚子。一日,他告訴兔子:“我的食物量要加倍,例如:原來4天一只小鹿,現在要2天一只,如果一周之內改變不了局面我就吃你。

      

      于是,兔子離開洞口,跑進森林深處,他見到一只狼“你相信兔子能輕松吃掉狼嗎”狼哈哈大笑,表示不信,于是兔子把狼領進山洞。過了一會,兔子獨自走出山洞,繼續進入森林深處這回他碰到一只野豬----“你相信兔子能輕松吃掉野豬嗎”野豬不信,于是同樣的事情發生了。

      

      原來森林深處的動物并不知道兔子和獅子的故事最后,在山洞里,一只獅子在一堆白骨之間,滿意的剔著牙讀著兔子交給它的文章題目是:《如何實現由坐商到行商的轉型為老板提供更多的食物》

      

      時間飛快,轉眼之間,兔子在森林里的名氣越來越大,因為大家都知道它有一個很歷害的老板,這只小兔開始橫行霸道,欺上欺下,沒有動物敢惹它.時時想起和烏龜賽跑的羞辱,它找到烏龜說:“三天之內,見我老板!”揚長而去.

     

      烏龜難過的哭了這時卻碰到了一位獵人.烏龜把這事告訴了他,獵人哈哈大笑.于是森林里發生了一件重大事情--獵人披著獅子皮和烏龜一起在吃兔子火鍋,地下丟了半張紙片歪歪扭扭的寫著:山外青山樓外樓,強中還有強中手啊!!

      在很長一段時間里森林里恢復了往日的寧靜,兔子吃狼的故事似乎快要被大家忘記了,不過一只年輕的老虎在聽說了這個故事后,被激發了靈感于是他抓住了一只羚羊,對羚羊說,如果你可以象以前的兔子那樣為我帶來食物那我就不吃你。

      

      于是,羚羊無奈的答應了老虎,而老虎也悠然自得的進了山洞。可是三天過去了,也沒有見羚羊領一只動物進洞。他實在憋不住了,想出來看看情況。羚羊早已不在了,他異常憤怒。正在他暴跳如雷的時候突然發現了羚羊寫的一篇文章題目是:《想要做好老板先要懂得怎樣留住員工》

     

    posted @ 2007-08-20 12:25 鋒出磨礪 閱讀(208) | 評論 (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 鋒出磨礪 閱讀(624) | 評論 (0)編輯 收藏

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

    posted @ 2007-08-15 19:33 鋒出磨礪 閱讀(163) | 評論 (0)編輯 收藏

    鴻鵠先生http://www.flash8.net/flash/35507.shtml
    郵箱: fmxt@sina.com

    posted @ 2007-08-15 19:20 鋒出磨礪 閱讀(156) | 評論 (0)編輯 收藏

    posted @ 2007-08-14 12:49 鋒出磨礪 閱讀(248) | 評論 (0)編輯 收藏

    發現了1975年《紅旗》雜志的驚人預言 

    1975年《紅旗》雜志的驚人預言


    下面這篇文章原載30多年前的《紅旗》雜志一九七五年十一期,是關于教育問題的。 



      近年來,在蘇修社會里,出現了一種新的行業。這種新行業,雖然沒有被蘇修叛徒集團列入他們“巨大成就”的欄目內,但倒真的搞得不壞,正在以很快的速度“發達”起來。這里,且舉這種行業的幾個小例子,使讀者開開眼界。 

      先看“私人授課”業。此業現在盛行蘇聯全國,據說是專門為中學生進入大學而設立的。私人授課每小時可得五至十個盧布,相當于普通工人一天半以上的工資。在莫斯科街頭,“圓柱上”、“墻壁上”,“大門道里”,到處是這種花花綠綠的廣告,簡直讓人眼花繚亂。 

      再看“代人考試”業。據《莫斯科晚報》載,有一種“代人考試組織”,專門代人投考大專學校。這種組織業務繁忙,應接不暇。有一個成員上午到食品工業專門學校代人考試,下午又到紡織工業大學代考,第二天又到莫斯科大學代人投考經濟系。考取后,每位收取代考費五百盧布。 

      其次看“論文出售”業。《共青團真理報》載,羅斯托夫鐵路運輸工程學院里有一種“聯合組織”,專門“幫人做畢業設計、學習論文、測驗作業、實驗室作業”。一份設計,售價九十盧布,有的一百五十盧布。 

      再其次看“畢業證書制造”業。《消息報》介紹的一個“畢業證書制造所”,一張畢業證書售價一千盧布,兩年中他們就銷售了五十六張這樣的畢業證書。 

      若問這種行業為什么如此興隆,那就要看看蘇修的教育制度了。隨著資本主義的全面復辟,蘇修的教育,特別是高等教育,早已成為進入特權階級的階梯。蘇修總頭目勃列日涅夫說:“國家主要是從經過高等學校培養的專家中吸收從事經濟工作、黨的工作、國家工作、外交工作、軍事工作和從事一切社會活動的干部。”許多材料證明,大學文憑是選拔干部的決定性標準。有此文憑,即使是個**,也能撈個一官半職;無此文憑,即使你是“共產主義勞動突擊手”,“從戰爭年代起”就做某項工作,并且“有這方面的專業知識”,但最后是“被裁掉”!勃列日涅夫的話以及無數事實告訴人們:只要一進了高等學校,或者干脆只要設法撈到一張大學文憑,那就能夠得到高官厚祿,就有飛黃騰達的時機。要是進不去呢,那就對不起,只能“永遠”當一個被人看不起的“執行者”。許多人為了達到“高升”的目的,當然就只有八仙過海,各顯神通。于是各種稀奇古怪的行業都應運而生了。 

      可不能小看這種新行業。特權階級要把自己的爵位和俸祿傳給他們的子女,一個重要的辦法就是通過教育一途。而這樣做,沒有上述行業的幫助,就有點兒難處。你說考試吧,“中學課程”并不完全包括大學“考試中應考的所有材料”,一般中學畢業生怎么去考?有了上述行業,蘇聯的資產階級新貴們就不怕。他們有的是錢,可以雇請“家庭教師”,或使子女進各種學費昂貴的私人“補習班”之類。這樣把子女塞進高等學府以后,總算放心了吧?可是還不行,有些公子小姐們一向吃喝玩樂,誰愿去死啃書本?不能畢業怎么辦?還得依靠上述行業。 

      在“教育市場”上,只要不惜重金,什么畢業論文、畢業文憑,甚至“副博士”之類的頭銜都可以買到。有了這些玩藝兒,就可以騎在勞動人民頭上作威作福了。不難看出,蘇修教育領域的新行業,完全是適應特權階級對勞動人民實行資產階級文化專制的需要而產生的。 

      “有錢,就可以進入高等學校”,這是蘇修一家不大不小的官方報紙吐出來的一句很難得的真話。當然,蘇修統治者“標準的提法”可不是這樣。因為這么說,他們那個冒牌的“社會主義”不就露了底?你聽,蘇修《國民教育立法原則》說得多么堂皇:蘇聯全體公民不分財產和社會地位,“在受教育方面一律平等”。但事實呢?在蘇修叛徒集團的統治下,勞動人民既沒有那么多的錢去雇請“私人教師”,又沒有那么高的地位來得到同僚們的“照顧”。他們的子女,無論在分數面前,還是在其他什么面前,怎么能同那些公子小姐們“一律平等”呢? 

      且以他們自己對新西伯利亞所作的調查為例,那里有近百分之九十的農民子女被排斥在大學門外,而城市知識分子(不要忘記,其中也包括官僚)的子女卻有近百分之九十都鉆進了高等學校。按照蘇修的“立法原則”,或者可以這樣說吧,百分之九十和百分之九十還不是“一律平等”么?其實,什么抽象的“自由”、“平等”,從來就是資產階級的謊言。列寧曾說過:“只要階級還沒有消滅,任何關于一般自由和平等的談論都是欺騙自己,或者是欺騙工人,欺騙全體勞動者和受資本剝削的人,無論如何,也是維護資產階級的利益。”列寧的話,這樣無情地揭露了一切關于一般自由、平等言論的虛偽性。可是,以“列寧主義者”自命的勃列日涅夫們,在明明不平等的事實面前,還在那兒高談著“一律平等”之類的神話,這難道不正是為了欺騙蘇聯勞動人民嗎! 

      學校商業化,知識商品化,這完全是蘇修全面復辟資本主義給教育帶來的必然結果。蘇修統治者通過校內教育和校外宣傳,公然要青年人樹立“合理的利己主義”世界觀,并且毫不隱諱地對他們說,“學習、掌握知識”是一本萬利的買賣,“這是一個將能產生高額利錢的貯錢匣”。既然“知識”、“文憑”、“學銜”都可以用金錢買來,那么,這些東西一旦到手,當然就要立即投入“周轉”,以謀取更大的利潤。虧本的生意誰會去做?這種腐朽透頂的“教育”,是一個黑色染缸,別說特權階級的子女,就是少數勞動人民的子女進校后,也必然要受到腐蝕和毒害。它只能培養那種以賺錢贏利為人生哲學的新資產階級分子,即培養特權階級的接班人。 

      蘇修教育領域這種新行業,鬧得烏煙瘴氣,引起了勞動人民的憤怒,于是蘇修報紙也不得不說上幾句對此表示不滿的話。這當然只是裝裝樣子、騙騙群眾而已。他們心里明白,擦掉主人身上一點兒浮油,根本不可能觸傷老爺們那肥胖的軀體。那些真正敢于揭露這種丑惡現象的社會根源的,不僅文章登不出,恐怕連作者都早已被關進了“瘋人院”。而經過精心篩選后登出的那些不疼不癢、避而不談問題實質的文章,簡直無異于莫斯科街頭的廣告,對這種行業只能起到提倡、鼓勵以至“介紹經驗”的作用。很顯然,要徹底解決這些問題,那就意味著推翻蘇修現存的社會制度,這是蘇修統治者連想都不敢想的。然而,統治者不敢想的,蘇聯人民卻要想,并且終究有一天還要行動起來,再一次掃除這些穢物。

    posted @ 2007-07-18 21:29 鋒出磨礪 閱讀(621) | 評論 (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 鋒出磨礪 閱讀(209) | 評論 (0)編輯 收藏

    僅列出標題
    共14頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 中文无码日韩欧免费视频| 久久国产精品成人片免费| 亚洲va久久久噜噜噜久久狠狠 | 免费国产va在线观看| 亚洲精品无码专区久久久| 69堂人成无码免费视频果冻传媒| 亚洲精品中文字幕无乱码麻豆| 亚洲AV无码乱码在线观看| 久久亚洲免费视频| 亚洲国产精品成人午夜在线观看 | 24小时日本电影免费看| 免费大片黄在线观看| 亚洲免费在线视频观看| 国产亚洲精品看片在线观看| 99久久免费国产香蕉麻豆| yellow免费网站| 亚洲熟女精品中文字幕| 久久精品国产精品亚洲艾草网| 日韩视频免费在线| 青青草无码免费一二三区| 黄色一级免费网站| 亚洲w码欧洲s码免费| 精品亚洲综合久久中文字幕| 国产又长又粗又爽免费视频| 95老司机免费福利| 抽搐一进一出gif免费视频| 亚洲国产精品日韩av不卡在线| 亚洲福利一区二区三区| 亚洲一区精品无码| 亚洲国产日韩女人aaaaaa毛片在线| 免费亚洲视频在线观看| 国产免费AV片在线播放唯爱网| 成人电影在线免费观看| 久久精品亚洲视频| 亚洲国产午夜福利在线播放| 在线视频免费观看高清| 免费无码毛片一区二区APP| 国产午夜无码片免费| 免费人成动漫在线播放r18 | 在线91精品亚洲网站精品成人| 亚洲国产精品人久久电影|