
忽略這個(gè)三角形的任何一條邊都會(huì )使你交付的產(chǎn)品低劣。 如果你忽略了產(chǎn)品的質(zhì)量,就會(huì )造成開(kāi)發(fā)出的功能不能滿(mǎn)足想要的或要求的特征和功能,或者造成產(chǎn)品中有很多bug,導致它不能使用。如果你選擇忽略速度,那么你的競爭對手很可能會(huì )在市場(chǎng)上打敗你,你會(huì )失去先行者的優(yōu)勢,還會(huì )失去被看作創(chuàng )新者而不是追隨者的認知度。項目的范圍越大,項目的成本就會(huì )越高,上市速度越慢,達到質(zhì)量標準所需的工作量越多。如果你要認真思考你和你的組織如何才能積極地平衡這些約束條件,那么這些場(chǎng)景中的任何一個(gè)都夠你煩惱的。
要完全明白為什么會(huì )存在這些權衡以及如何管理它們,首先你必須理解它們的定義。我們把成本定義為一個(gè)項目使用的或者需要的所有相關(guān)花費或資本投人。成本包括按照為項目工作的工程師人數、駐留新的服務(wù)所需的服務(wù)器數量、宣傳新服務(wù)的營(yíng)銷(xiāo)活動(dòng)等計算的直接費用。此外,它還包括間接成本,例如增加了一組新的數據庫,造成了工作量增加,從而需要一個(gè)新的數據庫管理員,或者客戶(hù)使用某個(gè)功能需要額外的帶寬。你也許會(huì )問(wèn),為什么要把這些成本算到該功能的成本中呢?答案是,如果你在這個(gè)功能上花費的時(shí)間越多,那么你越有可能找到辦法縮減新硬件、額外的帶寬以及各種雜項的成本。因此,在某件事情上花費的時(shí)間與之相關(guān)的最終成本之間顯然有種權衡。
對于質(zhì)量的定義,我們不僅加人了常見(jiàn)的理解,即bug的數量,還加入了功能的完整性。如果發(fā)布的功能只有指定功能的一半,相對于完整的功能來(lái)說(shuō),就不太可能引起客戶(hù)的興趣,也不會(huì )從客戶(hù)那里收到錢(qián)。因此,決定盡快發(fā)布一個(gè)功能,通常會(huì )由于功能不完整而造成質(zhì)量不合格。同樣地,一個(gè)項目可用的工程師人數少,或者給原本需要高級工程師的項目分配的大多是初級工程師,也會(huì )造成這樣的問(wèn)題。如你所料,質(zhì)量還包括為質(zhì)量保證過(guò)程中所提供的時(shí)間和資源。質(zhì)量保證所需的資源不只包括測試工程師,還包括相應的環(huán)境和測試工具。在測試工具上節省的組織,是不能有效地利用它們的測試工程師的。
對于速度的定義,我們將使用一個(gè)功能或項目從產(chǎn)品開(kāi)發(fā)生命周期的第一步起到把產(chǎn)品發(fā)布到生產(chǎn)環(huán)境為止所花費的時(shí)間。我們知道,產(chǎn)品開(kāi)發(fā)的生命周期不是到把產(chǎn)品發(fā)布到生產(chǎn)環(huán)境就停止了,事實(shí)上接下來(lái)還有支持階段和最終的折舊階段。不過(guò)這些階段通常是由早期決策決定了的。例如,如果一個(gè)匆忙開(kāi)發(fā)的功能,沒(méi)有安排足夠的時(shí)間進(jìn)行設計或質(zhì)量保證測試,那么在生產(chǎn)環(huán)境中支持它所需的時(shí)間將會(huì )大大增加。如果你在聯(lián)合架構設計流程中沒(méi)有足夠的時(shí)間設計一個(gè)功能,然后在架構評審委員會(huì )中沒(méi)有足夠的時(shí)間審查它的設計,那么這個(gè)功能注定質(zhì)量較低,或者成本較高,或者兩者兼具。
對于范圍的定義,我們將考慮要開(kāi)發(fā)的產(chǎn)品功能的數量以及開(kāi)發(fā)每個(gè)產(chǎn)品功能所需的工作量,實(shí)現個(gè)辦值的業(yè)名標所需的需求不同,常你會(huì )洲烈地改變該功他的花用大小,知板 客戶(hù)市冊的功值,這功他的目標是把完成注冊客戶(hù)的數量批高10%,也就船說(shuō),在開(kāi)始生冊值利的客聲中,要使完期的客戶(hù)數服州m10這個(gè)功他服初的范用可能規定 了嬰把它和分一 個(gè)服務(wù)南機供的單M化k功他集成在心但通過(guò)用戶(hù)測試,負責該功他的團隊決定這種單點(diǎn)登錄的功他不是必需的,因此它的范圍就大大縮小了。在圖19中,我們用等邊的項目三角表示這些約束是同等重要的。而在圖192中,改變了項
量,這必然造成了成本增加。這種項目可能是為了阻止競爭對手。因此,在月底之前就發(fā)布它,目的側承M和范圍。左右網(wǎng)圖表示r不同項目的不同側重點(diǎn)。左邊的項目側重于快速度和高質(zhì)而兒還要具有完備的功他,這樣才能在市場(chǎng)上擊敗具有相似產(chǎn)品的競爭對手。為了在市場(chǎng)上贏(yíng)得一席之地,增加工程師,可能是增加高級工程師和測試工程師,所花費的成本還是值得的。
有邊項目的側重點(diǎn)在于用較低的成本和降低的產(chǎn)品質(zhì)量,加快產(chǎn)品的上市速度。這種項目可能是為了實(shí)現承諾,以趕上截止日期,避免受罰。這種功能不太可能產(chǎn)生利潤,因此,有必要保持成本盡可能低。這種項目有點(diǎn)像“千年蟲(chóng)”bug,即不必全面展開(kāi)修復工作,只需在特定的日期,用最小的成本,執行基礎的功能即可。
任何人只要有過(guò)商界經(jīng)歷,對于處處要做權衡決策,就會(huì )毫不感到意外。不難想見(jiàn),在商界,領(lǐng)導者每天都要做決策,決定如何分配他們寶貴的資源(工程師、資金和時(shí)間)。這些決策通常都是通過(guò)精心設計的流程來(lái)做出的,這樣可以了解給某個(gè)項目多分配些或少分配些時(shí)間、資金或人員的優(yōu)缺點(diǎn)。正如我們將在本章后面的小節中所討論的,有幾個(gè)流程可以用于分析這些決策,其中有些比其他的更為正式。我們知道商業(yè)就是要不斷地權衡,而產(chǎn)品開(kāi)發(fā)生命周期也是權衡決策的一部分。 我們必須決定給功能分配工程師的數量,當一個(gè)功能被證明估計錯誤時(shí),必須決定是否刪除它,而當候選的發(fā)布版本中還有已知的bug時(shí),還必須決定是否讓這個(gè)版本通過(guò)。
整體上看,構成網(wǎng)站設計項目三角的四種約束因素,成本、質(zhì)量、速度和范圍,同等重要,但就它們對具體某個(gè)項目的重要性和管理所需的工作來(lái)說(shuō),不同項目之間可能有很大的不同。對質(zhì)量要求到要求。因此,只是因為我們需要項目的質(zhì)量更高,并不代表該項目的成木與質(zhì)量直接就星線(xiàn)性較高的項目并不定會(huì )實(shí)現比其他項目更高的質(zhì)量。同樣,項目的成本較高,也并不定就能達能就需要增加10%。因此,每個(gè)項目都要根據自己的項目三角標明的側重點(diǎn)分配資源。如果你認關(guān)系。例如,質(zhì)量提高1%,可能需要成本增加5%但如果質(zhì)量改善超過(guò)T20%,那相應成本可想而知,你做權衡決策也可以不用這個(gè)圖。為這個(gè)圖能為參與項目的每個(gè)人都提供有用的信息,那么可以在項目的規格說(shuō)明書(shū)中加人它。
本文地址:http://havencoinwallet.com//article/3861.html