來(lái)自于 Rational Edge:遵循軟件開(kāi)發(fā)中一個(gè)協(xié)調(diào)一致的過(guò)程的價(jià)值是確定無(wú)疑的。但是究竟需要什么樣的過(guò)程呢?究竟有多復(fù)雜呢?需要什么樣規(guī)模的團(tuán)隊(duì)?Gary Pollice教授考慮到企業(yè)中對(duì)多樣化過(guò)程的需求情況,詳細(xì)回答了這些問(wèn)題。
在我參加 2006 年敏捷年會(huì),這個(gè)會(huì)議討論關(guān)于方法和技術(shù)的問(wèn)題,之前。我已經(jīng)開(kāi)始編寫(xiě)這個(gè)月的理論與實(shí)踐專(zhuān)欄中的文章,這篇文章是關(guān)于測(cè)試過(guò)程中使用和創(chuàng)建模擬對(duì)象的問(wèn)題的。哦,我聽(tīng)到你說(shuō)“天啦,這是唯一關(guān)于敏捷的論文!蔽铱梢韵蚰惚WC這不是我的意圖。我與其他幾個(gè)人在這次會(huì)議上的觀點(diǎn)介紹與討論使我想到總體過(guò)程的問(wèn)題,以及過(guò)程在軟件開(kāi)發(fā)中扮演角色的問(wèn)題。
當(dāng)然,參加會(huì)議與沒(méi)有參加會(huì)議的人們所真正關(guān)心的問(wèn)題是找到能夠幫助他們完成軟件開(kāi)發(fā)的銀彈。這使我開(kāi)始明白這次會(huì)議討論的中心是組織中特定的成功水平,一個(gè)與公司規(guī)模、軟件開(kāi)發(fā)團(tuán)隊(duì)規(guī)模、以及用來(lái)確保成功過(guò)程的范圍相關(guān)的水平。我開(kāi)始嘗試將這些挑選出來(lái),并認(rèn)為我自己已經(jīng)有了幾種有助于思考軟件開(kāi)發(fā)中過(guò)程中角色的方法。
對(duì)于初試者來(lái)說(shuō),當(dāng)一個(gè)小的組織逐漸成長(zhǎng)成為一個(gè)大的企業(yè)組織時(shí),事情變化了,你的過(guò)程也必須相應(yīng)變化。敏捷社區(qū)夠很快指出了敏捷的基本原則之一就是,它可以反映在你為了改進(jìn)工作方法所表現(xiàn)的行為上。但是這個(gè)原則與RUP中的或者任何一個(gè)其他現(xiàn)代的方法中的原則沒(méi)有什么區(qū)別。因此就產(chǎn)生這樣一個(gè)問(wèn)題:“過(guò)程還重要嗎?”
“過(guò)程還重要嗎?”這個(gè)問(wèn)題看起來(lái)是一個(gè)反問(wèn)句,尤其是出自于先前的一個(gè)“RUP怪老頭”的口中,這是我在離開(kāi)Rational組織從事理論生涯之前的昵稱(chēng)。事實(shí)上,這個(gè)問(wèn)題只是稍微帶點(diǎn)反問(wèn),過(guò)程當(dāng)然重要。有些情況下它是十分重要的――比如當(dāng)已經(jīng)選擇的過(guò)程超過(guò)了這個(gè)團(tuán)隊(duì)的能力,使團(tuán)隊(duì)不能夠滿足顧客的需求的時(shí)候。如果我們將滿足顧客的需求與質(zhì)量等同看待,那么過(guò)程就會(huì)對(duì)質(zhì)量產(chǎn)生潛在的負(fù)面作用。
或許這樣的問(wèn)題會(huì)更好一點(diǎn),“特殊的過(guò)程重要嗎?” ; 在前一個(gè)專(zhuān)欄中我討論了將過(guò)程與項(xiàng)目匹配的重要性,定制并裁剪過(guò)程以適應(yīng)一個(gè)項(xiàng)目的需要已經(jīng)是目前被公認(rèn)的軟件開(kāi)發(fā)最佳實(shí)踐。此外,能夠有效支持一個(gè)項(xiàng)目團(tuán)隊(duì)或者一個(gè)組織的過(guò)程并不止一個(gè),可能有很多。我可以設(shè)想,幾乎任何過(guò)程(不管是否是定義明確的)都會(huì)對(duì)一個(gè)團(tuán)隊(duì)的成功有所幫助。
我認(rèn)為有兩個(gè)主要因素中的任何一個(gè)存在,都可能會(huì)影響適用于特殊情形過(guò)程的數(shù)量:1)團(tuán)隊(duì)的規(guī)模和 2)在大的團(tuán)體背景中過(guò)程的作用范圍。我將調(diào)查這些因素,然后考慮過(guò)程層面的需求,在較大的組織中存在多個(gè)過(guò)程。
一個(gè)定義
在我們進(jìn)入細(xì)節(jié)之前,讓我們確保對(duì)“過(guò)程”的概念有一個(gè)共同的理解。我將查閱我最喜愛(ài)的資源,詞典,然后采用其中的一個(gè)過(guò)程定義:“一系列將產(chǎn)生結(jié)果的行為、變化或者功能!2 這是一個(gè)簡(jiǎn)單的描述性的定義,在我看來(lái),這是過(guò)程的本質(zhì)。過(guò)程是我們?yōu)榱送瓿晌覀兊墓ぷ鞫扇〉囊幌盗胁襟E。它不是我們編寫(xiě)的如何計(jì)劃我們工作的設(shè)計(jì),也不是一系列我們必須盲目遵守的規(guī)則。它是我們要做什么,不管是否被記下來(lái),也不管是否被詳細(xì)說(shuō)明。
團(tuán)隊(duì)規(guī)模與溝通
一個(gè)有效的過(guò)程是支持有效溝通的過(guò)程,有效的溝通與項(xiàng)目團(tuán)隊(duì)的規(guī)模是直接相關(guān)的。這對(duì)任何在不同規(guī)模項(xiàng)目團(tuán)隊(duì)工作過(guò)的人來(lái)說(shuō)并不陌生。
對(duì)于那些讀者來(lái)說(shuō)他們可能喜歡更嚴(yán)格的證據(jù),僅僅考慮基于團(tuán)隊(duì)規(guī)模的可能有的溝通渠道的數(shù)量。一個(gè)兩人項(xiàng)目,A和B,只有一個(gè)溝通連接。如果我們?cè)黾右粋(gè)C到這個(gè)項(xiàng)目中,我們就有三個(gè)溝通連接,A-B,B-C,C-A。當(dāng)D加入這個(gè)團(tuán)隊(duì)時(shí),我們就有六個(gè)溝通連接,當(dāng)加入E時(shí),我們的溝通連接達(dá)到10個(gè)。一個(gè)十人團(tuán)隊(duì)將會(huì)有45個(gè)溝通連接。由于有如此多的可能性,同步與關(guān)鍵信息的傳送就變得相當(dāng)困難而且容易出錯(cuò)。
決定溝通連接數(shù)量的公式就是你從數(shù)量n中挑選出配對(duì)數(shù)量的公式,不必考慮順序。公式如下所示:
當(dāng)我們尋找配對(duì)時(shí),它可以減少為
圖1中顯示了一些重要特征,在那你可以看到增長(zhǎng)并不是線性的。當(dāng)你的團(tuán)隊(duì)規(guī)模增長(zhǎng),你需要通過(guò)決定捕獲什么信息以及如何捕獲,從而找到溝通渠道公式的方法。
圖1. 團(tuán)隊(duì)規(guī)模對(duì)溝通的影響:當(dāng)團(tuán)隊(duì)規(guī)模增長(zhǎng),溝通連接的數(shù)量并不是呈線性增長(zhǎng)的。
團(tuán)隊(duì)規(guī)模的大小不僅僅影響到溝通渠道的數(shù)量,它還影響團(tuán)隊(duì)過(guò)程的各個(gè)部分。一個(gè)兩人團(tuán)隊(duì)一起從事于一個(gè)小項(xiàng)目會(huì)采用一些機(jī)制來(lái)分配工作,管理他們的資源代碼,給他們的工作歸檔等等。這對(duì)工作人員的確不需要很多指導(dǎo)方針告訴他們改如何完成他們的工作。他們幾乎都是告訴對(duì)方,一天好幾次地要么親自告訴對(duì)方,要么通過(guò)電子郵件的方式傳達(dá)。的確,這就是溝通,但是來(lái)自外界的噪音很少有機(jī)會(huì)來(lái)干擾這個(gè)溝通。因?yàn)樗麄冎挥袃蓚(gè)人,他們不需要將他們的信息提交給一種更持久的形式,就像隱藏在一個(gè)工具或者詳細(xì)用例描述中的統(tǒng)一建模語(yǔ)言(UML)。幾乎任何“微不足道的”過(guò)程都會(huì)對(duì)他們倆起作用。5