出版時(shí)間:2007-12 出版社:電子工業(yè)出版社 作者:麥克康內(nèi)爾 頁(yè)數(shù):324 字?jǐn)?shù):420000 譯者:宋銳
Tag標(biāo)簽:無(wú)
內(nèi)容概要
在《軟件估算——“黑匣子”揭秘》一書中,著名的軟件開(kāi)發(fā)書籍的作者Steve McConnell揭開(kāi)了圍繞在軟件估算周圍的層層迷霧。作者在深入淺出地介紹了與軟件估算有關(guān)的主要概念之后,深入、全面地介紹了與軟件估算有關(guān)的多種估算方法?! ”緯闹饕獌?nèi)容包括:估算與計(jì)劃和項(xiàng)目控制,以及估算與目標(biāo)和承諾之間的關(guān)系;不確定性錐與估算中的誤差來(lái)源以及影響估算的各種因素;先計(jì)數(shù)、再計(jì)算,無(wú)法可想時(shí)才依靠判斷的基本估算原則;用于估算軟件項(xiàng)目的三個(gè)重要部分——規(guī)模、工作量和進(jìn)度估算的基本方法;與規(guī)模、工作量和進(jìn)度估算有關(guān)的特殊問(wèn)題;估算的概率論觀點(diǎn)以及如何采用適當(dāng)?shù)姆绞絹?lái)表達(dá)估算結(jié)果中的不確定性;如何進(jìn)行與估算有關(guān)的溝通,從而使技術(shù)人員和非技術(shù)人員達(dá)成共識(shí)。 本書主要面向軟件開(kāi)發(fā)項(xiàng)目中要進(jìn)行估算的開(kāi)發(fā)人員和技術(shù)管理人員。但本書所涉及的與軟件估算有關(guān)的背景知識(shí),以及有關(guān)估算談判和表達(dá)方式的討論,對(duì)于非技術(shù)人員出身的主管和項(xiàng)目的其他有關(guān)人員同樣大有裨益。
作者簡(jiǎn)介
Steve McConnell是Construx Software公司的首席軟件工程師,負(fù)責(zé)監(jiān)督該公司的軟件工程實(shí)踐。Steve是軟件工程知識(shí)體(SWEBOK,Software Engineering Body of Knowledge)項(xiàng)目的構(gòu)造知識(shí)領(lǐng)域(Construction Knowledge Area)的負(fù)責(zé)人。Steve在微軟、波音以及西雅圖地區(qū)的其他公司也從事過(guò)軟件項(xiàng)目方面的工作。他是Construx Estimate和SPC Estimate Professional項(xiàng)目開(kāi)發(fā)的負(fù)責(zé)人,后一個(gè)項(xiàng)目獲得過(guò)Software Development雜志的生產(chǎn)力大獎(jiǎng)(Productivity Award)。 Steve是Rapid Development(1996)、Software Project Survival Guide(1998)、Professional Software Development(2004)和Code Complete, Second Edition(2004,《代碼大全,第2版》)等書的作者。他的著作曾兩次獲得過(guò)Software Development雜志的年度卓越軟件開(kāi)發(fā)書籍震撼大獎(jiǎng)(Jolt Product Excellence Award)。Steve還是SPC Estimate Professional的開(kāi)發(fā)負(fù)責(zé)人,該產(chǎn)品獲得了軟件開(kāi)發(fā)生產(chǎn)力大獎(jiǎng)(Software Development Productivity Award)。1998年,Software Development雜志的讀者們把Steve選為軟件行業(yè)最有影響力的三個(gè)人之一,另外兩人分別是Bill Gates(微軟公司的創(chuàng)辦人)和Linus Torvalds(Linux的作者)?! teve在惠特曼學(xué)院獲得了學(xué)士學(xué)位,在西雅圖大學(xué)獲得了軟件工程碩士學(xué)位。他現(xiàn)在居住在華盛頓州的貝爾維尤市。 如果想對(duì)本書提出任何評(píng)論或疑問(wèn),請(qǐng)通過(guò)steve.mcconell@construc.com或通過(guò)www.stevemcconnell.com網(wǎng)站聯(lián)系他。
書籍目錄
第一部分 估算的關(guān)鍵概念 第1章 “估算”的含義 第2章 你的估算水平如何 第3章 準(zhǔn)確估算的價(jià)值 第4章 估算誤差的來(lái)源 第5章 影響估算的因素 第二部分 基本估算方法 第6章 估算方法概述 第7章 計(jì)數(shù)、計(jì)算和判斷 第8章 估算校準(zhǔn)和歷史數(shù)據(jù) 第9章 專家的個(gè)人判斷 第10章 分解和重組 第11章 類比估算 第12章 基于代理的估算 第13章 專家小組判斷法 第14章 軟件估算工具 第15章 使用多種估算方法 第16章 獲得良好估算的軟件項(xiàng)目中的估算流程 第17章 標(biāo)準(zhǔn)化估算規(guī)程 第三部分 特定的估算挑戰(zhàn) 第18章 規(guī)模估算中的特殊問(wèn)題 第19章 工作量估算中的特殊問(wèn)題 第20章 進(jìn)度估算中的特殊問(wèn)題 第21章 計(jì)劃參數(shù)的估算 第22章 估算結(jié)果的表達(dá)方式 第23章 政治、談判和解決問(wèn)題 附錄A 估算合理性檢查 附錄B 第2章“你的估算水平如何?”測(cè)驗(yàn)的答案 附錄C 軟件估算提示 參考文獻(xiàn) 索引
媒體關(guān)注與評(píng)論
中文版引言 對(duì)于軟件項(xiàng)目管理,“坊間”流傳著一個(gè)經(jīng)典的“六拍”黑色幽默,如圖1所示。在此我略做演繹:在項(xiàng)目開(kāi)始之前,你總是先“拍腦袋”得出進(jìn)度和成本的承諾;在開(kāi)工大會(huì)上領(lǐng)導(dǎo)“拍拍你肩膀”,是那樣的語(yǔ)重心長(zhǎng)、充滿期待;而小酒剛下肚、春風(fēng)正得意時(shí),你不由得“拍胸脯”以表決心和能力;但在項(xiàng)目進(jìn)展過(guò)程中遇到這樣、那樣的困難時(shí),客戶和業(yè)主不能不“拍桌子”了;這時(shí)充滿悔意的你,只能“拍大腿”以示自責(zé);而到了一切都腹水難收時(shí),恐怕也只能“拍屁股”另謀高就了;不過(guò)卻也總能夠重新找個(gè)地方東山再起,再“拍腦袋”去了?! ∪缟纤镜牧摹肮秩ψ印币呀?jīng)將尚顯稚嫩的軟件行業(yè)折磨得心焦力竭,如何才能沖破這個(gè)行業(yè)的“緊箍咒”呢? ? 從業(yè)人員敬業(yè)精神不高?非也!雖然拍屁股走人后總能夠再次上崗,一則因?yàn)檐浖?xiàng)目成功率本來(lái)就不高,二則因?yàn)榇蠹覍?shí)際上“已盡人事”了?! ? 項(xiàng)目經(jīng)理們不思進(jìn)取?非也!每當(dāng)遇到項(xiàng)目超期、成本失控時(shí),項(xiàng)目經(jīng)理大凡都會(huì)真心地“拍大腿”,都不愿意自己的苦心最終收獲苦果?! ? 項(xiàng)目過(guò)程監(jiān)控管理不足?不全是!沒(méi)有過(guò)程數(shù)據(jù)、沒(méi)有中間管理,哪能會(huì)有人半道“拍桌子”?另則,大多失敗的項(xiàng)目也并非源于大家不夠努力?! ? 項(xiàng)目經(jīng)理經(jīng)驗(yàn)技能不足?不全是!“沒(méi)有金剛鉆,不攬瓷器活”,敢“拍胸脯”的項(xiàng)目經(jīng)理,絕不會(huì)都是紙上談兵的趙括吧! ? 各種所需資源投入不足?也不全是!“拍拍你肩膀”的人恐怕也絕不會(huì)讓你一個(gè)人獨(dú)自承擔(dān)所有的問(wèn)題吧! 那么問(wèn)題在哪里?顯然最為核心的問(wèn)題就出在“拍腦袋”上,在軟件項(xiàng)目管理中缺乏有效的估算方法與過(guò)程,一直以來(lái)是業(yè)界的心頭之痛!那又是什么原因?qū)е逻@個(gè)大家都意識(shí)到的問(wèn)題,長(zhǎng)期以來(lái)卻處于“無(wú)解”的狀態(tài)呢? 也許“規(guī)劃規(guī)劃全是糊話,計(jì)劃計(jì)劃全是鬼話”這一說(shuō)法從另一個(gè)側(cè)面道出了從業(yè)人員的無(wú)奈,計(jì)劃情況與實(shí)際情況的嚴(yán)重偏離導(dǎo)致整個(gè)行業(yè)對(duì)“軟件估算”產(chǎn)生了不信任感,高級(jí)管理人員不敢采用,項(xiàng)目管理者也不愿意把時(shí)間花在軟件估算這個(gè)“黑匣子”上。幸運(yùn)的是,Steve McConnell在本書中打開(kāi)了這個(gè)潘多拉之盒背后的秘密?! ∪绻闶且幻芾砣藛T 如果你是一名管理人員,相信對(duì)“財(cái)務(wù)預(yù)算表”不陌生吧,雖然財(cái)務(wù)預(yù)算也從來(lái)沒(méi)有準(zhǔn)確過(guò),但它卻總能夠?yàn)楣芾硖峁┮粋€(gè)范圍。對(duì)于業(yè)務(wù)管理、軟件項(xiàng)目而言,其道理也是相同的,戴明博士在TQM理論中提出的管制圖(如圖2所示)就高度概括了這一思想: 管理層的合理預(yù)期是使軟件估算結(jié)果在一個(gè)可以控制的范圍之內(nèi),即管理下限和管理上限之間。如果今后的項(xiàng)目執(zhí)行情況都能夠落在這個(gè)區(qū)域,那么就意味著是可控的;而如果有大量的數(shù)據(jù)點(diǎn)都落在管理上限之上,或管理下限之下,就意味著控制性很差?! ∥蚁胗兄S富管理理論的你,當(dāng)從項(xiàng)目經(jīng)理那里聽(tīng)到整個(gè)項(xiàng)目需要35.2個(gè)人月的估算時(shí),你的理解可能是類似于“需要30~40個(gè)人月”的概念吧!鬼才相信一開(kāi)始就能夠給出如此精確的估算值哩?! ∧憧隙ㄖ溃?xiàng)目的估計(jì)準(zhǔn)確度是隨著項(xiàng)目進(jìn)展而不斷提高的,是一個(gè)“瞄準(zhǔn)靶心”的過(guò)程,一開(kāi)始要做的是確定出“1環(huán)”和“脫靶”之間的邊界,然后才能確定“2環(huán)、3環(huán)、…、10環(huán)”,這種被Steve McConnell定義為“不確定性錐”的理念是使軟件估算有意義的基礎(chǔ)。但項(xiàng)目經(jīng)理似乎沒(méi)有發(fā)現(xiàn)這種“觀念”,這就讓問(wèn)題從一開(kāi)始就深深埋下了,因此你該告訴他!本書就能夠完成這個(gè)任務(wù),因?yàn)樗鼑@著這一觀念展開(kāi)了有效、深入的講解。 當(dāng)然如果你有時(shí)間翻閱本書,就能夠更深入地理解特定于軟件估算所遇到的困難,更好地理解諸如軟件開(kāi)發(fā)人員產(chǎn)能不穩(wěn)定、不同軟件項(xiàng)目存在很大差異等特殊因素,以便為項(xiàng)目團(tuán)隊(duì)的估算提供更好的行政支持。 如果你是一名項(xiàng)目經(jīng)理 如果你是一名項(xiàng)目經(jīng)理,首先要理解在項(xiàng)目初期,估算的結(jié)果是一個(gè)靶子,而不是馬上給出一個(gè)靶心,也就是說(shuō)得到的結(jié)果應(yīng)該是“需要30~40個(gè)人月,最可能的值是36個(gè)人月”,而不是精確的35.2個(gè)人月。如果對(duì)這個(gè)概念還有些模糊,建議你回頭看看上一小節(jié),理解理解“管制圖”的概念,不管怎么說(shuō)你也是一個(gè)“經(jīng)理”,算是個(gè)管理崗位吧! 除此之外,還需要建立以下幾個(gè)關(guān)鍵的理念,而如果你開(kāi)始有了點(diǎn)感覺(jué),那么就不要等待,馬上翻開(kāi)正文,讓自己接受一次全新的思維洗禮吧?! ?.總估算值不能談判,只對(duì)單個(gè)估算項(xiàng)進(jìn)行修改 你向高級(jí)管理人員匯報(bào),整個(gè)項(xiàng)目要5個(gè)月的時(shí)間,但卻被要求只能3個(gè)月完成!然后基于這個(gè)數(shù)字展開(kāi)的討價(jià)還價(jià)的場(chǎng)景,怎么聽(tīng)怎么像在菜市場(chǎng)。這既不是一個(gè)嚴(yán)謹(jǐn)態(tài)度,也沒(méi)有采用科學(xué)的方法! 問(wèn)題出在哪里呢?想想工程預(yù)算(諸如家裝)時(shí),你要調(diào)整整體造價(jià)時(shí),不會(huì)直接修改總價(jià)吧!該怎么做,誰(shuí)都知道應(yīng)該修改某個(gè)單項(xiàng)預(yù)算,因?yàn)榭們r(jià)是用公式自動(dòng)累加出來(lái)的嘛。因此要想避免前面說(shuō)到的問(wèn)題,就應(yīng)該提供包含各種單項(xiàng)預(yù)算的表格,當(dāng)高級(jí)管理人員需要減少時(shí)間時(shí),要商量的就是去掉哪些單項(xiàng)。放心吧,高級(jí)管理人員早在年度預(yù)算會(huì)上就適應(yīng)這種模式了。 2.估算不是玄學(xué) 《軟件工程經(jīng)濟(jì)學(xué)》之類的里程碑性著作為軟件估算學(xué)奠定了堅(jiān)實(shí)的基礎(chǔ),但同時(shí)也將許多道行尚淺的項(xiàng)目經(jīng)理帶到萬(wàn)米高空,使估算活動(dòng)徹底與開(kāi)發(fā)實(shí)踐脫節(jié)了?! ∠鄬?duì)于COCOMO、FP之類高深的估算學(xué)模型而言,無(wú)數(shù)一線的開(kāi)發(fā)人員更需要的是學(xué)以致用、能夠解決實(shí)際問(wèn)題的方法,這些方法在本書中被稱為“估算術(shù)”,而且多到幾乎占據(jù)了全書所有的篇幅,沒(méi)有給這些大名鼎鼎的模型留下一點(diǎn)篇幅?! ≡陂喿x本書時(shí),其中列舉的各種精致、有效、小巧的估算方法總讓我聯(lián)想到“瑞士軍刀”,相信大家也會(huì)有相似的感覺(jué)?! ?.經(jīng)驗(yàn)數(shù)據(jù)是提升估算準(zhǔn)確率的關(guān)鍵 經(jīng)歷并不意味著經(jīng)驗(yàn),這是我常掛在嘴邊的一句話,放在估算領(lǐng)域也是如此。許多項(xiàng)目經(jīng)理、開(kāi)發(fā)人員雖然早已身經(jīng)百戰(zhàn),但每當(dāng)遇到新的開(kāi)發(fā)任務(wù)時(shí),卻仍然由于沒(méi)有經(jīng)驗(yàn)數(shù)據(jù)而難以給出較好的估算,甚至連自己的產(chǎn)能都不太了解?! 」浪愕慕Y(jié)果需要進(jìn)行校準(zhǔn),才能夠更加準(zhǔn)確。而最無(wú)奈之舉則是使用估算模型提供的行業(yè)平均數(shù)據(jù)進(jìn)行校準(zhǔn),要想真正有效就必須收集、記錄自己的經(jīng)驗(yàn)數(shù)據(jù)。本書不僅指出了應(yīng)該收集、記錄哪些數(shù)據(jù),還指出了項(xiàng)目初期的數(shù)據(jù)能夠用來(lái)修正項(xiàng)目中、后期的計(jì)劃,這一理念必將為你的“經(jīng)驗(yàn)數(shù)據(jù)收集工程”注入強(qiáng)有力的引擎。 4.分解是復(fù)雜性的克星 對(duì)于任何復(fù)雜的問(wèn)題,都可以借助“分解”這一偉大的工具來(lái)應(yīng)對(duì)。因此WBS(Work Breakdown Structure,工作分解結(jié)構(gòu))分解的質(zhì)量對(duì)于估算而言意義重大,而僅從軟件開(kāi)發(fā)過(guò)程的階段、活動(dòng)來(lái)劃分是不足以支撐估算的;因此必須從軟件開(kāi)發(fā)的產(chǎn)物(諸如用例、用戶故事)的角度進(jìn)行分解,這樣才能夠?yàn)楣浪愕於己玫幕A(chǔ)?! ∫虼藢⑿枨箝_(kāi)發(fā)的輸出作為WBS的基礎(chǔ),讓負(fù)責(zé)具體實(shí)現(xiàn)的開(kāi)發(fā)人員對(duì)每個(gè)單項(xiàng)進(jìn)行估算,然后在此基礎(chǔ)上進(jìn)行累加、考慮緩沖、重組,最后才能夠得到真正合理的估算結(jié)果?! ?.估算的問(wèn)題不僅困擾你一個(gè) 在多年的職業(yè)生涯中,老聽(tīng)到諸如“中國(guó)的客戶水平差,連需求都說(shuō)不清”、“這種東西放到中國(guó)來(lái)是行不通的”……之類的“國(guó)情托詞”。其實(shí)不然,在規(guī)模估算、工作量估算、進(jìn)度估算、計(jì)劃參數(shù)估算、估算結(jié)果表達(dá)以及圍繞著估算結(jié)果的談判等活動(dòng)中,全世界的開(kāi)發(fā)團(tuán)隊(duì)都將公平地遇到相似的問(wèn)題,Steve McConnell特意用了很大的篇幅講解他在實(shí)踐中總結(jié)出來(lái)的解決之道?! ≡趺礃?,是否感到有點(diǎn)興趣盎然呀!不要輕易放過(guò)“興趣”這一最好的老師,現(xiàn)在就開(kāi)始愉快的閱讀之旅吧,相信全書簡(jiǎn)潔且充滿哲理的文字會(huì)給你帶去好的心情和收獲?! ∪绻闶情_(kāi)發(fā)團(tuán)隊(duì)的一員 嗨,開(kāi)發(fā)團(tuán)隊(duì)中的普通一員!別走開(kāi),這里同樣歡迎你!估算并非是頭銜中帶有“經(jīng)理”字樣的那些人的特權(quán)。對(duì)于每個(gè)開(kāi)發(fā)活動(dòng)而言,都需要你對(duì)其進(jìn)行估算,如果你的估算結(jié)果偏離太遠(yuǎn),那么整個(gè)項(xiàng)目估算就是在浮沙之上筑高臺(tái)?! 》e累反映自己產(chǎn)能的經(jīng)驗(yàn)數(shù)據(jù),以便正確地對(duì)完成任務(wù)所需時(shí)間進(jìn)行估算,從而對(duì)團(tuán)隊(duì)做出現(xiàn)實(shí)的承諾,才能夠使自己直正遠(yuǎn)離“無(wú)休止”加班的困擾,畢竟加班要解決的就是那些不應(yīng)該設(shè)置的最后期限,是對(duì)不負(fù)責(zé)任的進(jìn)度承諾的懲罰! 學(xué)會(huì)記錄自己的時(shí)間,掌握基本的估算方法,這些是使自己成長(zhǎng)為具有專業(yè)素養(yǎng)的開(kāi)發(fā)人員所必備的過(guò)程。而從本書中,你可以獲得你想要的東西?! 「醒浴 ≡谖铱赐暾緯?,腦海里便浮現(xiàn)出了金庸筆下的兩門絕世武功。用它們作類比,既顯得十分貼近,卻又有幾分不像之處: ? 它好像是“易筋經(jīng)”,能夠幫你打通奇經(jīng)八脈,讓你建立系統(tǒng)、清晰的估算知識(shí)體系;它也不像是“易筋經(jīng)”,因?yàn)樗鼪](méi)有那么神秘、晦澀,不必非得“有緣人”才可練就?! ? 它好像是“降龍十八掌”,每招每式都那么有氣勢(shì),有威力;它也不像是“降龍十八掌”,因?yàn)槭褂盟娜瞬⒉恍枰薪^頂?shù)膬?nèi)力?! “パ?!不知不覺(jué)將你擋在這本“睿智小書”之前好長(zhǎng)時(shí)間了,我還是趕快躲開(kāi)吧,不影響你享受閱讀之趣了。 徐 鋒 2007年10月于廈門 譯者序 軟件估算是是項(xiàng)目計(jì)劃和控制的基礎(chǔ)。任何一個(gè)軟件項(xiàng)目在開(kāi)始實(shí)施之前和實(shí)施的過(guò)程中,都需要對(duì)軟件的規(guī)模、成本、工作量和進(jìn)度,等等方面進(jìn)行估算。但是由于軟件開(kāi)發(fā)是一個(gè)非常復(fù)雜的過(guò)程,故軟件估算具有極高的復(fù)雜性和不確定性,以至于估算過(guò)程往往被看做是一種“黑匣子過(guò)程”。在本書之前,還沒(méi)有哪本書籍能夠如此全面、深入地闡述如何才能對(duì)軟件項(xiàng)目進(jìn)行有效和準(zhǔn)確的估算。以往那些涉及軟件估算的書更多的是對(duì)一些相當(dāng)成熟的開(kāi)發(fā)組織的估算方法進(jìn)行理論分析。這些開(kāi)發(fā)組織采用的方法雖然很科學(xué),但是對(duì)大多數(shù)開(kāi)發(fā)組織而言可能并不具有很高的效費(fèi)比?! ”緯淖髡逽teve McConnell是資深的軟件開(kāi)發(fā)人員和久負(fù)盛名的軟件開(kāi)發(fā)書籍作家,他領(lǐng)導(dǎo)開(kāi)發(fā)的軟件曾榮獲Software Development雜志的生產(chǎn)力大獎(jiǎng),他的著作也曾兩度榮獲Software Development雜志的軟件開(kāi)發(fā)書籍震撼大獎(jiǎng)。在《軟件估算——“黑匣子”揭秘》一書中,他為軟件開(kāi)發(fā)組織和開(kāi)發(fā)人員獲得基本的估算技能提供了有效的實(shí)踐指南,并為他們指出了持續(xù)提高估算能力的基本途徑。本書雖然涉及一些數(shù)學(xué)計(jì)算(這在估算中是不可避免的),但它盡可能地避免了過(guò)于復(fù)雜的公式推導(dǎo),并提供眾多的提示,以幫助讀者通過(guò)建立較少的工作來(lái)獲得更準(zhǔn)確的估算結(jié)果。用作者的話說(shuō),本書關(guān)注的重點(diǎn)是實(shí)用的估算術(shù),而不是復(fù)雜的估算學(xué)方法?! 【驮诒緯姆g過(guò)程中,還傳來(lái)了本書榮獲Software Development雜志2007年生產(chǎn)力大獎(jiǎng)的消息。這再次肯定了本書提供的那些實(shí)際的、經(jīng)過(guò)作者驗(yàn)證的親身經(jīng)驗(yàn)的價(jià)值?! ”緯饕伤武J翻譯,如果廣大讀者需要對(duì)本書的內(nèi)容或與軟件估算有關(guān)的問(wèn)題進(jìn)行討論,可以發(fā)送電子郵件至coldmoon75@163.com。Be Flying工作室負(fù)責(zé)人肖國(guó)尊負(fù)責(zé)本書譯員的確定,翻譯質(zhì)量和進(jìn)度的控制與管理。此外,本書的出版離不開(kāi)電子社編輯許艷所做的大量協(xié)調(diào)工作,沒(méi)有她的積極推動(dòng),本書有可能延遲半年以上出版,在此予以特別感謝。敬請(qǐng)廣大讀者提供反饋意見(jiàn),讀者可以將意見(jiàn)E-mail至be-flying@sohu.com,我們會(huì)仔細(xì)查閱讀者發(fā)來(lái)的每一封郵件,以求進(jìn)一步提高今后譯著的質(zhì)量。
編輯推薦
在《軟件估算:"黑匣子"揭秘》一書中,著名的軟件開(kāi)發(fā)書籍的作者Steve McConnell揭開(kāi)了圍繞在軟件估算周圍的層層迷霧。作者在深入淺出地介紹了與軟件估算有關(guān)的主要概念之后,深入、全面地介紹了與軟件估算有關(guān)的多種估算方法。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載