影響可擴展性的組織因素
- 編輯:admin -受組織結構影響的重要因素有溝通、效率、標準、質量和所有權。讓我們逐看看各個因素,分析組織是如何影響它們的以及這些因素為什么對可擴展性很重要,從而在組織和可擴展性之間建立一一種關系。
受組織結構影響的重要因素有溝通、效率、標準、質量和所有權。讓我們逐看看各個因素,分析組織是如何影響它們的以及這些因素為什么對可擴展性很重要,從而在組織和可擴展性之間建立一一種關系。溝通是所有流程的核心。組織溝通不暢,一定會導致應用故障。如果沒有清晰的溝通,那么組織架構的設計、運行中斷范圍的控制、客戶投訴的處理成者產品的修改都將慘不忍睹。如果一個團隊有50個人,沒有定義任何分工或層級,那么極有可能每個人都不知道其他所有人在做什么。團隊中的成員也很有可能不知道應該問誰什么問題,或者把什么信息發(fā)送給誰。這樣的溝通不暢,在大多數(shù)時間中,也許只會造成一-些小問題,比如可能需要問50個人才能得到一個問題的答案。但終會有一天,當一個工程師被與她無關的問題打擾了一年后,會錯過一個關鍵請求,而答復這個請求或許可以防止運行中斷的發(fā)生,或者幫助一個中斷迅速地恢復運行。那么這時是錯在這個工程師忙中出錯,還是錯在組織架構有問題導致不能清楚有效地溝通呢?

當組織架構使工作流順暢時,個人和整個團隊的效率(即輸出和輸人的比)都會提高;而當項目陷人不必要的組織層級時,效率就會降低。在敏捷軟件開發(fā)方法中,產品責任人通常應該和工程師坐在一起,以便立即解答有關產品的問題,而不是通過電子郵件進行冗長的解釋。如果工程師在開發(fā)過程中遇到需要得到澄清的地方,她有兩個選擇:一是自己猜測可以行進的方向,二是詢向產品責任人并等待答案。在得到產品責任人的答復前,工程師只能止步不前,或者轉而做其他不相干的事情,比如浪費許多時間搭建環(huán)境和重新研究資料,或者去游戲室,浪費幾個小時打電視游戲。讓產品責任人和工程師坐在一起, 這樣就可以快速答 復問題,不讓工程師有機會在電視游戲上得高分,從而提高效率。對于可擴展性來說,效率降低意味著組織可用資源減少,這時資源更傾向于投向短期的面向客戶的特性而非長期的提高可擴展性的項目。這雖然有助于實現(xiàn)季度目標,卻損害了平臺長期的發(fā)展能力。
在一個組織內,唯一有意義的標準,就是組織遵守的那些標準。如果在編碼、文檔、規(guī)格說明書以及部署方面,一個組織沒有制定、推廣并遵守一系列的標準,那么一定 會降低工作效率、降低產品質量、增加發(fā)生重大生產問題的風險。以一個采用矩陣式架構的組織為例,在每個組中與產品經(jīng)理、項目經(jīng)理和業(yè)務責任人合作的工程師都非常少,可能只有一名。由于沒有非常重視標準的溝通,所以這個唯的工程師很 容易會不遵守以前建立的準則。又由于沒有其他的工程師或經(jīng)理來檢查這個工程師是不是忘記了提交自己的文檔,他在效率方面得到了短期收益,這樣做在他看來是利大于弊。但是一個組織應該幫助工程師理解并且遵守已經(jīng)建立且大部分人同意遵守的準則、原則和規(guī)范。至于不遵守準則而對可擴展性可能產生的影響,不妨想象一下,假如一個工程師對于所有服務都要在三個或更多個不同的物理實例上運行的架構原則不以為然,于是等到部署服務時,人們才發(fā)現(xiàn)這個服務只能在一個服務器上運行。這無疑會增加發(fā)生服務中斷的可能性,而且也不能把這個服務擴展到超出一臺服務器的產能。
如前所述,不能遵守規(guī)范和標準的組織,只會降低產品的質量。一個小例子是,一個具有固定的單元測試框架和流程的組織,由于團隊規(guī)模或團隊構成的問題,導致這種單元測試框架沒有被接受和實施。前面討論過的那位唯一的工程師,也許發(fā)現(xiàn)這種偷懶的舉動太過誘人,于是對那些為所有特性建立單元測試的請求置之不理,不再進行單元測試。這很可能會導致代碼質量低下,從而使大小缺陷的數(shù)量增加。這樣還會進一步導致應用發(fā) 生故障停機,或者造成其他可用性問題。由于bug增多和產品問題,部分軟件開發(fā)資源會被分流,從而用于編碼或擴展項目 (如數(shù)據(jù)庫要的特性以支持長期的提高可擴展性項目。分區(qū))的資源也就少了。正如我們在前面見到過的,當資源短缺時,就更難以推遲短期的客戶需最后一個可以直接影響應用或服務的可擴展性的主要因素是所有權。假如某個組織內的團隊由50個工程師組成,既沒有職責分工也不分層級,那么我們很可能會發(fā)現(xiàn)許多工程師都在開發(fā)同.段代碼。 當許多人都在開發(fā)同一段代碼, 并且沒有明確或模糊的層級時,沒有人覺得這段代碼是自己的責任。這樣就沒有人會去檢查別人的代碼是否遵守了標準、是否構造了要求的功能或者是否維持了產品所需的高質量。這進而會導致前面提到的資源利用率不高、更多的生產問題以及溝通不足等問題,從而影響到應用的可擴展性。
綜上所述,我們可以看到,組織確實對影響APP開發(fā)應用的可擴展性的關鍵因素有所影響。既然我們已經(jīng)對從可擴展性的角度考慮組織有了基本的認識,接下來該了解組織的決定性因素,即規(guī)模和架構。
