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

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