• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

              C++博客 :: 首頁(yè) :: 聯(lián)系 ::  :: 管理
              163 Posts :: 4 Stories :: 350 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(48)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            積分與排名

            • 積分 - 399041
            • 排名 - 59

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            這些研究表明,效率高和效率低的實(shí)施者之間個(gè)體差異非常大,經(jīng)常能夠達(dá)到數(shù)量級(jí)的水平。

            —— Sackman,EriksonGrant[1]

            These studies revealed large individual differences between high and low performers, often by an order of magnitude.

            SACKMAN, ERIKSON, AND GRANT1

            在計(jì)算機(jī)領(lǐng)域的會(huì)議中,常常聽(tīng)到年輕的軟件經(jīng)理聲稱,他們喜歡由一流人才組成的小型、精干的隊(duì)伍,而不是那些幾百人的大型團(tuán)隊(duì),這里的“人”當(dāng)然暗指平庸的程序員。其實(shí)我們也經(jīng)常有相同的看法。

            但這種幼稚的觀點(diǎn)回避了一個(gè)很困難的問(wèn)題—— 如何在有意義的進(jìn)度安排內(nèi)創(chuàng)建大型的系統(tǒng)?那么就讓我們現(xiàn)在來(lái)仔細(xì)討論一下這個(gè)問(wèn)題的各個(gè)方面。

            問(wèn)題

            軟件經(jīng)理很早就認(rèn)識(shí)到優(yōu)秀程序員和較差程序員之間生產(chǎn)率的差異,但實(shí)際測(cè)量出的差異還是令我們所有的人吃驚。 在他們的一個(gè)研究中,Sackman、Erikson和Grant曾對(duì)一組具有經(jīng)驗(yàn)的程序人員進(jìn)行測(cè)量。在該小組中,最好的和最差的表現(xiàn)在生產(chǎn)率上平均為 10∶1;在編程速度和空間上具有5∶1的驚人差異!簡(jiǎn)言之,20 000美元/年的程序員的生產(chǎn)率可能是10 000美元/年的程序員的10倍。反之亦然。數(shù)據(jù)顯示,經(jīng)驗(yàn)和實(shí)際的表現(xiàn)沒(méi)有相互聯(lián)系(我懷疑這種現(xiàn)象是否普遍成立)。

            我常常重復(fù)這樣的一個(gè)觀點(diǎn),需要協(xié)作溝通的人員數(shù)量影響著開(kāi)發(fā)成本,因?yàn)槌杀镜闹饕M成部分是相互的溝通和交 流,以及更正溝通不當(dāng)所引起的不良結(jié)果(系統(tǒng)調(diào)試)。這一點(diǎn),也暗示系統(tǒng)應(yīng)該由盡可能少的人員來(lái)開(kāi)發(fā)。實(shí)際上,絕大多數(shù)大型編程系統(tǒng)的經(jīng)驗(yàn)顯示出,一擁而 上的開(kāi)發(fā)方法是高成本的、速度緩慢的、低效的,開(kāi)發(fā)出的是無(wú)法在概念上進(jìn)行集成的產(chǎn)品。OS/360、Exec 8、Scope 6600、Multics、TSS、SAGE等等—— 這個(gè)列表可以不斷地繼續(xù)下去。

            得出的結(jié)論很簡(jiǎn)單:如果在一個(gè)200人的項(xiàng)目中,有25個(gè)最能干和最有開(kāi)發(fā)經(jīng)驗(yàn)的項(xiàng)目經(jīng)理,那么開(kāi)除剩下的175名程序員,讓項(xiàng)目經(jīng)理來(lái)編程開(kāi)發(fā)。

            現(xiàn)在我們來(lái)驗(yàn)證一下這個(gè)解決方案。一方面,這個(gè)開(kāi)發(fā)隊(duì)伍不是通常所說(shuō)的不超過(guò)10個(gè)人的、理想的小型精干的隊(duì)伍,該團(tuán)隊(duì)的規(guī)模如此之大,以至于至少需要兩個(gè)層級(jí)的管理,或者大約5名管理人員。另外,它需要額外的財(cái)務(wù)、人員、空間、文秘和機(jī)器操作方面的支持。

            另一方面,如果采用一擁而上的開(kāi)發(fā)方法,那么原有的200人的隊(duì)伍仍然不足以開(kāi)發(fā)真正的大型系統(tǒng)。例如,在 OS/360項(xiàng)中,當(dāng)項(xiàng)目進(jìn)行到頂峰時(shí),有超過(guò)1?000人在為它工作—— 程序員、文檔編制人員、操作人員、職員、秘書(shū)、管理人員、支持小組等等。從1963年到1966年,設(shè)計(jì)、編碼和文檔工作花費(fèi)了大約5 000個(gè)人年。如果人月可以等量置換的話,我們所假設(shè)的200人隊(duì)伍需要25年的時(shí)間,才能使產(chǎn)品達(dá)到現(xiàn)有的水平。

            這就是小型、精干隊(duì)伍概念上的問(wèn)題:對(duì)于真正意義上的大型系統(tǒng),它太慢了。設(shè)想OS/360的工作由一個(gè)小 型、精干的團(tuán)隊(duì)來(lái)解決,譬如一個(gè)10人團(tuán)隊(duì)。作為一個(gè)尺度,假設(shè)他們都非常能干,比一般的編程人員在編程和文檔方面的生產(chǎn)率高7倍。 同時(shí)假設(shè)OS/360原有開(kāi)發(fā)人員是一些平庸的編程人員(這與實(shí)際情況相差很遠(yuǎn))。同樣作為一個(gè)尺度,假設(shè)另一個(gè)生產(chǎn)率的改進(jìn)因子提高了7倍,因?yàn)檩^小的 隊(duì)伍所需的溝通和交流較少。同時(shí)假設(shè)同樣的隊(duì)伍完成的是同樣的工作。那么,5 000/(10×7×7)= 10,他們需要10年來(lái)完成5 000人年的工作。一個(gè)產(chǎn)品在最初設(shè)計(jì)的10年后才出現(xiàn),還有人會(huì)對(duì)它感興趣嗎?或者它是否會(huì)隨著軟件開(kāi)發(fā)技術(shù)的快速進(jìn)步,而顯得過(guò)時(shí)呢?

            這種進(jìn)退兩難的境地是非常殘酷的。對(duì)于效率和概念的完整性來(lái)說(shuō),最好由少數(shù)干練的人員來(lái)設(shè)計(jì)和開(kāi)發(fā),而對(duì)于大型系統(tǒng),則需要大量的人手,以使產(chǎn)品能在時(shí)間上滿足要求。如何調(diào)和這兩方面的矛盾呢?


            Mills的建議

            Harlan Mills的提議提供了一個(gè)嶄新的、創(chuàng)造性的解決方案[2, 3]。Mills建議大型項(xiàng)目的每一個(gè)部分由一個(gè)團(tuán)隊(duì)解決,但是該隊(duì)伍以類(lèi)似外科手術(shù)的方式組建,而并非一擁而上。也就是說(shuō),同每個(gè)成員截取問(wèn)題某個(gè)部分的做法相反,由一個(gè)人來(lái)完成問(wèn)題的分解,其他人給予他所需要的支持,以提高效率和生產(chǎn)力。

            簡(jiǎn)單考慮一下,如果上述概念能夠?qū)嵤坪跛梢詽M足迫切性的需要。很少的人員被包含在設(shè)計(jì)和開(kāi)發(fā)中,其他許 多人來(lái)進(jìn)行工作的支持。它是否可行呢?誰(shuí)是編程隊(duì)伍中的麻醉醫(yī)生和護(hù)士,工作如何劃分?讓我們繼續(xù)使用醫(yī)生的比喻:如果考慮所有可能想到的工作,這樣的隊(duì) 伍應(yīng)該如何運(yùn)作?

            外科醫(yī)生。Mills稱之為首席程序員。他親自定義功能和性能技術(shù)說(shuō)明書(shū),設(shè)計(jì)程序,編制源代碼,測(cè)試以及書(shū) 寫(xiě)技術(shù)文檔。他使用例如PL/I的結(jié)構(gòu)化編程語(yǔ)言,擁有對(duì)計(jì)算機(jī)系統(tǒng)的訪問(wèn)能力;該計(jì)算機(jī)系統(tǒng)不僅能進(jìn)行測(cè)試,還存儲(chǔ)程序的各種版本,以允許簡(jiǎn)單的文件更 新,并對(duì)他的文檔提供文本編輯能力。首席程序員需要極高的天分、十年的經(jīng)驗(yàn)和應(yīng)用數(shù)學(xué)、業(yè)務(wù)數(shù)據(jù)處理或其他方面的大量系統(tǒng)知識(shí)和應(yīng)用知識(shí)。

            副手。他是外科醫(yī)生的后備,能完成任何一部分工作,但是相對(duì)具有的經(jīng)驗(yàn)較少。他的主要作用是作為設(shè)計(jì)的思考 者、討論者和評(píng)估人員。外科醫(yī)生試圖和他溝通設(shè)計(jì),但不受到他建議的限制。副手經(jīng)常在與其他團(tuán)隊(duì)討論有關(guān)功能和接口問(wèn)題時(shí)代表自己的小組。他需要詳細(xì)了解 所有的代碼,研究設(shè)計(jì)策略的備選方案。顯然,他充當(dāng)外科醫(yī)生的保險(xiǎn)機(jī)制。他甚至可能編制代碼,但對(duì)代碼的任何部分,不承擔(dān)具體的開(kāi)發(fā)職責(zé)。

            管理員。外科醫(yī)生是老板,他必須在人員、薪酬、辦公空間等方面具有決定權(quán),但他決不能在這些事務(wù)上浪費(fèi)任何時(shí) 間。因而,他需要一個(gè)控制財(cái)務(wù)、人員、工作地點(diǎn)和辦公設(shè)備的專(zhuān)業(yè)管理人員,該管理員充當(dāng)與組織中其他管理機(jī)構(gòu)的接口。Baker建議僅在項(xiàng)目具有法律、合 同、報(bào)表和財(cái)務(wù)方面的需求時(shí),管理員才具有全職責(zé)任。否則,一個(gè)管理員可以為兩個(gè)團(tuán)隊(duì)服務(wù)。

            編輯。外科醫(yī)生負(fù)責(zé)文檔的生成—— 出于最大透明度的考慮,他必須創(chuàng)建各種文檔。無(wú)論是對(duì)內(nèi)部描述還是外部描述。而編輯根據(jù)外科醫(yī)生的草稿或者口述,進(jìn)行分析和重新組織,提供各種參考信息和書(shū)目,對(duì)多個(gè)版本進(jìn)行維護(hù),并監(jiān)督文檔生成的機(jī)制。

            兩個(gè)文秘。管理員和編輯每個(gè)人需要一個(gè)文秘。管理員的文秘負(fù)責(zé)項(xiàng)目的協(xié)作一致和非產(chǎn)品文件。

            程序職員。他負(fù)責(zé)維護(hù)編程產(chǎn)品庫(kù)中所有團(tuán)隊(duì)的技術(shù)記錄。該職員接受文秘性質(zhì)的培訓(xùn),承擔(dān)機(jī)器碼文件和可讀文件的相關(guān)管理責(zé)任。

            所有的計(jì)算機(jī)輸入?yún)R集到這個(gè)職員處。如果需要,他會(huì)對(duì)它們進(jìn)行記錄或者標(biāo)識(shí)。輸出列表會(huì)提交給程序職員,由他進(jìn)行歸檔和編制索引。另外,他負(fù)責(zé)將任何模型的最新運(yùn)行情況記錄在狀態(tài)日志中,而所有以前的結(jié)果則按時(shí)間順序進(jìn)行歸檔保存。

            Mills概念的真正關(guān)鍵是“從個(gè)人藝術(shù)到公共實(shí)踐”的編程觀念轉(zhuǎn)換。它向所有的團(tuán)隊(duì)成員展現(xiàn)了所有計(jì)算機(jī)的運(yùn)行和產(chǎn)物,并將所有的程序和數(shù)據(jù)看作是團(tuán)隊(duì)的所有物,而非私人財(cái)產(chǎn)。

            程序職員的專(zhuān)業(yè)化分工,使程序員從文書(shū)等雜事中解放出來(lái),同時(shí)還可以對(duì)那些經(jīng)常被忽視的雜事進(jìn)行系統(tǒng)整理,確保了它們的質(zhì)量,并強(qiáng)化了團(tuán)隊(duì)最有價(jià)值的財(cái)富—— 工作產(chǎn)品。上述概念顯然考慮的是批處理程序。當(dāng)使用交互式終端,特別是在沒(méi)有紙張輸出的情況下,程序職員的職責(zé)并未消失,只是有所更改。他會(huì)記錄小組程序和私有工作拷貝之間的更新,依然控制所有程序的運(yùn)行,并使用自己的交互式工具來(lái)控制產(chǎn)品逐步增長(zhǎng)的完整性和有效性。

            工具維護(hù)人員。現(xiàn)在已經(jīng)有很多文件編輯、文本編輯和交互式調(diào)試等工具,因此團(tuán)隊(duì)很少再需要自己的機(jī)器和機(jī)器操 作人員。但是這些工具使用起來(lái)必須毫無(wú)疑問(wèn)地具備令人滿意的反應(yīng)和可靠性。外科醫(yī)生則是對(duì)這些工具的服務(wù)是否充分可用的唯一評(píng)判人員。他需要一個(gè)工具維護(hù) 人員,保證所有基本服務(wù)的可靠性,以及承擔(dān)團(tuán)隊(duì)成員所需要的特殊工具(特別是交互式計(jì)算機(jī)服務(wù))的構(gòu)建、維護(hù)和升級(jí)責(zé)任。即使已經(jīng)擁有非常卓越的、可靠的 集中式服務(wù),每個(gè)團(tuán)隊(duì)仍然要有自己的工具維護(hù)人員。因?yàn)樗墓ぷ魇菣z查他的外科醫(yī)生所需要的工具,而不是其他團(tuán)隊(duì)的需要。工具維護(hù)人員常常要開(kāi)發(fā)一些實(shí)用 程序、編制具有目錄的函數(shù)庫(kù)以及宏庫(kù)。

            測(cè)試人員。外科醫(yī)生需要大量合適的測(cè)試用例,用來(lái)對(duì)他所編寫(xiě)的工作片段,以及對(duì)整個(gè)工作進(jìn)行測(cè)試。因此,測(cè)試人員既是為他的各個(gè)功能設(shè)計(jì)系統(tǒng)測(cè)試用例的對(duì)手,同時(shí)也是為他的日常調(diào)試設(shè)計(jì)測(cè)試數(shù)據(jù)的助手。他還負(fù)責(zé)計(jì)劃測(cè)試的步驟和為單元測(cè)試搭建測(cè)試平臺(tái)。

            語(yǔ)言專(zhuān)家。隨著Algol語(yǔ)言的出現(xiàn),人們開(kāi)始認(rèn)識(shí)到,在大多數(shù)計(jì)算機(jī)項(xiàng)目中,總有一兩個(gè)樂(lè)于掌握復(fù)雜編程語(yǔ) 言的人。這些專(zhuān)家非常有幫助,很快大家會(huì)向他咨詢。這些天才不同于外科醫(yī)生,外科醫(yī)生主要是系統(tǒng)設(shè)計(jì)者以及考慮系統(tǒng)的整體表現(xiàn)。而語(yǔ)言專(zhuān)家則尋找一種簡(jiǎn) 潔、有效的使用語(yǔ)言的方法來(lái)解決復(fù)雜、晦澀或者棘手的問(wèn)題。他通常需要對(duì)技術(shù)進(jìn)行一些研究(2~3天)。通常一個(gè)語(yǔ)言專(zhuān)家可以為兩個(gè)到三個(gè)外科醫(yī)生服務(wù)。

            以上就是如何參照外科手術(shù)隊(duì)伍對(duì)10人的編程團(tuán)隊(duì)進(jìn)行專(zhuān)業(yè)化的角色分工。

            如何運(yùn)作

            文中定義的開(kāi)發(fā)團(tuán)隊(duì)在很多方面滿足了迫切性的需要。十個(gè)人,其中七個(gè)專(zhuān)業(yè)人士在解決問(wèn)題,而系統(tǒng)是一個(gè)人或者最多兩個(gè)人思考的產(chǎn)物,因此客觀上達(dá)到了概念的一致性。

            要特別注意傳統(tǒng)的兩人隊(duì)伍與外科醫(yī)生-副手團(tuán)隊(duì)架構(gòu)之間的區(qū)別。首先,傳統(tǒng)的隊(duì)伍將工作進(jìn)行劃分,每人負(fù)責(zé)一部分工作的設(shè)計(jì)和實(shí)現(xiàn)。在外科手術(shù)團(tuán)隊(duì)中,外科醫(yī)生和副手都了解所有的設(shè)計(jì)和全部的代碼。這節(jié)省了空間分配、磁盤(pán)訪問(wèn)等的勞動(dòng)量,同時(shí)也確保了工作概念上的完整性。

            第二,在傳統(tǒng)的隊(duì)伍中大家是平等的,出現(xiàn)觀點(diǎn)的差異時(shí),不可避免地需要討論和進(jìn)行相互的妥協(xié)和讓步。由于工作 和資源的分解,不同的意見(jiàn)會(huì)造成策略和接口上的不一致,例如誰(shuí)的空間會(huì)被用作緩沖區(qū),而事實(shí)上最終它們必須整合在一起。而在外科手術(shù)團(tuán)隊(duì)中,不存在利益的 差別,觀點(diǎn)的不一致之處可以由外科醫(yī)生單方面來(lái)統(tǒng)一。這兩種團(tuán)隊(duì)組建上的差異—— 對(duì)問(wèn)題不進(jìn)行分解和上下級(jí)的關(guān)系—— 使外科手術(shù)隊(duì)伍可以達(dá)到客觀的一致性。

            另外,團(tuán)隊(duì)中剩余人員職能的專(zhuān)業(yè)化分工是高效的關(guān)鍵,它使成員之間采用非常簡(jiǎn)單的交流模式成為可能,如圖3-1所示。

            Baker的文章[3]提出了專(zhuān)一的、小規(guī)模的測(cè)試隊(duì)伍。在那種情況下,它能按照所預(yù)期的進(jìn)行運(yùn)作,并具有良好的效果。


            圖3-1  10人程序開(kāi)發(fā)隊(duì)伍的溝通模式


            團(tuán)隊(duì)的擴(kuò)建

            就目前情況而言,還不錯(cuò)。然而,現(xiàn)在所面臨的問(wèn)題是如何完成5?000個(gè)人年的項(xiàng)目,而不是20或30個(gè)人年 規(guī)模的系統(tǒng)。如果整個(gè)工作能控制在范圍之內(nèi),10人的團(tuán)隊(duì)無(wú)論如何組織,總是比較高效的。但是,當(dāng)我們需要面對(duì)幾百人參與的大型任務(wù)時(shí),如何應(yīng)用外科手術(shù) 團(tuán)隊(duì)的概念呢?

            擴(kuò)建過(guò)程的成功依賴于這樣一個(gè)事實(shí),即每個(gè)部分的概念完整性得到了徹底的提高—— 決定設(shè)計(jì)的人員是原來(lái)的1/7或更少。所以,可以讓200人去解決問(wèn)題,而僅僅需要協(xié)調(diào)20個(gè)人,即那些“外科醫(yī)生”的思路。

            對(duì)于協(xié)調(diào)的問(wèn)題,還是需要使用分解的技術(shù),這在后續(xù)的章節(jié)中會(huì)繼續(xù)進(jìn)行討論。在這里,可以認(rèn)為整個(gè)系統(tǒng)必須具 備概念上的完整性,要有一個(gè)系統(tǒng)結(jié)構(gòu)師從上至下地進(jìn)行所有的設(shè)計(jì)。要使工作易于管理,必須清晰地劃分體系結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)之間的界線,系統(tǒng)結(jié)構(gòu)師必須一絲不 茍地專(zhuān)注于體系結(jié)構(gòu)。總的說(shuō)來(lái),上述的角色分工和技術(shù)是可行的,在實(shí)際工作中,具有非常高的效率。


            posted on 2007-12-22 15:22 sdfasdf 閱讀(414) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 軟件工程
            亚洲欧美伊人久久综合一区二区| 色播久久人人爽人人爽人人片aV | 九九久久99综合一区二区| 久久w5ww成w人免费| 青青青国产成人久久111网站| 久久精品无码专区免费 | 好久久免费视频高清| 久久久黄片| 精品久久久久久亚洲精品| 丁香久久婷婷国产午夜视频| 色狠狠久久综合网| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区| 精品无码久久久久久国产| 久久综合香蕉国产蜜臀AV| 久久精品亚洲乱码伦伦中文 | 国产精品永久久久久久久久久| 久久性生大片免费观看性| 国产精品久久久久影院嫩草| 亚洲人成无码网站久久99热国产| 久久精品嫩草影院| 久久亚洲AV成人无码电影| 午夜精品久久久久久影视riav| 国产2021久久精品| 狠狠色丁香久久婷婷综合五月 | 中文字幕精品久久| 久久99精品综合国产首页| 热re99久久6国产精品免费| 亚洲精品tv久久久久| 久久综合九色综合欧美就去吻| 日本一区精品久久久久影院| 精品无码久久久久久午夜| 亚洲va久久久噜噜噜久久天堂| 亚洲精品第一综合99久久 | 69久久夜色精品国产69| 欧美一区二区三区久久综合| 精品多毛少妇人妻AV免费久久| 亚洲国产精品嫩草影院久久| 久久99精品久久久久久水蜜桃 | 久久人人添人人爽添人人片牛牛 | 国产精品99精品久久免费| 国产精品久久永久免费|