
	《軟件工藝》針對軟件開發,提出了一些相當棘手和敏感的問題,并給出了頗具爭議性的結論:從一個數百年來一直興旺發達的系統——工藝學中獲得啟示,尋找答案。《軟件工藝》用5個部分共19章的篇幅,系統地闡述作者的觀點,并試圖回答一直困擾著軟件行業的難題——我們應該如何重組軟件構造的過程,使其能夠如我們所愿地有效運轉?第1部分共4章,對傳統的觀點提出質疑——軟件工程真的是解決軟件開發問題的靈丹妙藥嗎?第2部分共2章,這一部分提出了本書的觀點,即以軟件工藝的視角看待軟件開發。第3部分以7章的篇幅,從不同的角度全面地展現了軟件工藝理論所帶來的主要變化,以及如何實踐這個觀念。第4部分共3章,對比了軟件工藝與軟件工程,并為各自適用的范疇重新劃定了界限。第5部分共3章,分別討論軟件開發中的權宜之計和長期問題。
	《軟件工藝》榮獲2002年度Jolt圖書大獎。閱讀本書,有助于引發讀者在軟件開發問題上的獨立思考,《軟件工藝》適合軟件行業的所有從業人員閱讀參考。
	本書證明了優秀程序員對于成功軟件開發的決定性影響!它告訴我們: ·技術人員迫切需要轉變觀念。 ·技術不權是技術本身,更應該是為客戶提供價值的基礎。 ·我們該如何培養程序員對技術的精通? ·如何發展小型開發團隊中創造的協作? ·如何加強與客戶的溝通?如果你是一位渴望讓自己的技藝出類拔萃的程序員……如果你是一位渴望雇用的優秀開發的項目經理……這本《軟件工藝》就是為你準備的!
	本書針對軟件開發,提出了一些相當棘手和敏感的問題,并給出了頗具爭議性的結論:從一個數百年來一直興旺發達的系統——工藝學中獲得啟示,尋找答案。 本書用5個部分共19章的篇幅,系統地闡述作者的觀點,并試圖回答一直困擾著軟件行業的難題——我們應該如何重組軟件構造的過程,使其能夠如我們所愿地有效運轉?第1部分共4章,對傳統的觀點提出質疑——軟件工程真的是解決軟件開發問題的靈丹妙藥嗎?第2部分共2章,這一部分提出了本書的觀點,即以軟件工藝的視角看待軟件開發。第3部分以7章的篇幅,從不同的角度全面地展現了軟件工藝理論所帶來的主要變化,以及如何實踐這個觀念。第4部分共3章,對比了軟件工藝與軟件工程,并為各自適用的范疇重新劃定了界限。第5部分共3章,分別討論軟件開發中的權宜之計和長期問題。 本書榮獲2002年度Jolt圖書大獎。閱讀本書,有助于引發讀者在軟件開發問題上的獨立思考,本書適合軟件行業的所有從業人員閱讀參考。
	Pete McBreen 是一名獨立顧問,對軟件開發情有獨鐘,盡管將很多時間用于寫作、教學和顧問工作,但他仍然堅持每年至少在一個真實項目親手從事編程工作。他特別善于為軟件開發者面臨的問題找到創造性的解決方案。在過去的很多的中,他參與了各種正式和非正式的過程改進活動
	第一部分 置疑軟件工程
	第 1 章 理解軟件工程 3
	軟件工程的悖論 4
	等待硬件開發時,軟件開發者在干什么? 5
	得到可用的硬件之后,軟件開發者如何
	加快交付的速度? 5
	傳統開發過程的內蘊 6
	軟件工程的當代解讀 7
	“足夠好”的軟件—庶民的軟件工程 9
	軟件工程適合你的項目嗎? 10
	第 2 章 軟件工程的困境 11
	“有組織的、可計量的”軟件開發過程現
	實嗎? 14
	我們當然可以將軟件開發中的某些部分
	自動化,不是嗎? 16 第一部分 置疑軟件工程
	第 1 章 理解軟件工程 3
	軟件工程的悖論 4
	等待硬件開發時,軟件開發者在干什么? 5
	得到可用的硬件之后,軟件開發者如何
	加快交付的速度? 5
	傳統開發過程的內蘊 6
	軟件工程的當代解讀 7
	“足夠好”的軟件—庶民的軟件工程 9
	軟件工程適合你的項目嗎? 10
	第 2 章 軟件工程的困境 11
	“有組織的、可計量的”軟件開發過程現
	實嗎? 14
	我們當然可以將軟件開發中的某些部分
	自動化,不是嗎? 16
	“足夠好”的軟件開發方法的危害 17
	誰能取代軟件工程? 19
	第 3 章 理解軟件開發 21
	軟件資產 23
	軟件開發需要團隊協作 25
	軟件開發的分工有用嗎? 26
	沒有一勞永逸 27
	尋找比“軟件工程”更合用的隱喻 30
	第 4 章 尋找一個比軟件工程更好的隱喻 33
	軟件開發的工藝 35
	與傳統工藝學的比較 37
	軟件開發工藝的復興 38
	第二部分 軟件工藝
	第 5 章 重拾軟件開發 45
	工藝學致力于改善軟件開發的現狀 46
	工藝學鼓勵開發者編寫優秀的軟件 47
	吹響號角 48
	第 6 章 無須執照的工藝學 51
	工藝是私人性的 51
	同行認可和推薦是獲得更好軟件的辦法 52
	執照只是假象 53
	執照是在向風車開戰 55
	工藝學關注個人 57
	軟件開發者不是太少,而是太多 57
	第三部分 軟件工藝隱含的意味
	第 7 章 工藝學對系統的用戶有何影響 65
	軟件容易拷貝,所以軟件工藝能夠有效 66
	批量市場的難題 67
	工匠與用戶有一種不同的關系 69
	但是,請記住:購買者很可能不是
	使用者 70
	優秀的軟件應該簽上開發者的名字 71
	為作品簽名會使情況發生變化 72
	工匠應當對作品負責 72
	工匠需要挑剔的用戶 73
	更小、更堅固的軟件更有利于用戶 73
	軟件工藝帶來協作式開發 74
	第 8 章 顧客與工匠的關系 75
	給我一個真實的交付日期 75
	揭穿“足夠好的軟件”的謬論 76
	另一種選擇 78
	不要只考慮出價最低的開發者 79
	差勁的客戶將很難吸引優秀的開發者 80
	讓軟件工匠因為自己的作品而獲得榮譽 80
	要求開發者對作品負責 81
	利用開發者之間的差異 81
	雇傭優秀開發者組成的小團隊 82
	優秀的開發者究竟值多少? 83
	但我們如何知道開發者有多優秀呢? 84
	根據交付的成果來衡量開發者的水平 85
	在選擇工匠時,客戶在成本和質量之間作
	出權衡 87
	軟件工匠的專業分工 88
	客戶與軟件工匠有長期的聯系 90
	維護者是一個榮耀的身份 90
	軟件工藝有益于長期使用的軟件 92
	客戶與軟件工匠志趣相投 92
	第 9 章 工匠的管理 95
	軟件工匠不是雇工 96
	好的開發者比管理者更有價值 96
	軟件開發的實際過程無法詳細定義 97
	軟件工匠與管理者的關系 98
	以管理優秀的開發者為樂為榮 98
	優秀的管理者理解項目的節奏 99
	軟件工匠喜歡創造軟件 100
	軟件開發的根本從來沒有改變過 100
	家有一老,如有一寶 101
	軟件工藝要求全新的管理方式 103
	軟件工藝不是“有計劃報廢” 103
	軟件工匠堅持自己的要求 104
	第10章 成為軟件工匠 107
	軟件工藝拒絕精細的分工 107
	過度的專業化會延誤開發、導致錯誤 108
	軟件工匠建造能夠理解的系統 109
	工藝學需要獻身精神 109
	如何成為軟件工匠? 110
	學徒是比學校教育更有效的學習方式 111
	技師是工藝學傳統的關鍵 111
	工藝學傳統已經延續多年 112
	第11章 工藝的掌握 115
	軟件工藝大師是什么樣子? 116
	善用你的老員工 116
	“掌握技藝”意味著使用穩定的技術 117
	軟件工匠不會僅僅因為工具“最新最好”
	而使用它 118
	軟件工程對COBOL的謀殺 119
	技藝需要花時間去掌握 120
	“掌握”意味著承担起傳遞工藝的責任 121
	工匠挑選學徒和技師 122
	第12章 學徒開發者 123
	我們必須扭轉開發者培訓質量下滑的局面 123
	大學文憑與項目開發無關 125
	會編程不等于會開發軟件 125
	如果必須送初學者去培訓,選擇好的
	培訓課程 127
	工藝的掌握,學徒比培訓更有效 127
	成為學徒是重要的一步 128
	為了降低對工作的影響,工匠慎選
	學徒 128
	重要的是學,不是教 129
	學徒不是學校 129
	活到老學到老 130
	學徒審查師傅的作品,并從中學習 131
	學徒的角色 132
	從低風險的任務開始 133
	晉升到產品開發 133
	因為能力而晉升 134
	學徒不是廉價勞動力 134
	學徒期是時間和精力的投資 136
	學徒如何成為技師 137
	第13章 技師開發者 139
	技師在工藝學傳統中的位置 140
	技師開發者 140
	技師很少單獨工作 141
	技師關注應用程序的交付 141
	技師在軟件工藝中扮演關鍵角色 143
	第四部分 重新定位軟件工程
	第14章 軟件工程項目 149
	軟件工程的目標是大型系統項目 150
	軟件工程需要專業分工 151
	軟件工程項目依舊使用瀑布過程 151
	編程是一項刻板的工作 152
	軟件開發不是軟件工程項目的瓶頸 152
	形形色色的軟件工程項目 153
	敏捷方法代替縝密的軟件工程 154
	第15章 “軟件工程”隱喻的危害 155
	無法以低成本實施軟件工程 155
	魚與熊掌可以兼得? 156
	相信估算軟件工程項目的確需要
	很長的時間 156
	軟件工程鼓勵“科學管理” 157
	軟件工程輕視不精確的討論 159
	軟件工廠:軟件的生產線 160
	跨項目復用極難實現 161
	冒險的“長時間復用” 162
	“標準軟件開發過程”的迷思 164
	傳統的分工無助于軟件開發 165
	“最佳實踐”是“科學管理”的遺毒 166
	最佳實踐使人墨守成規 166
	最佳實踐阻礙了過程革新 167
	軟件工程強迫我們忽視個人 168
	軟件開發者不是可替換的資源 169
	偽造一個“理想的開發過程” 169
	開發過程,不嫌其多 170
	拋棄軟件工程的瀑布式過程 171
	瀑布方法需要大型團隊來實施 172
	小型團隊絕不要嘗試軟件工程 173
	第16章 學習軟件工程的經驗 175
	尺度和復雜度 175
	做軟件,不容易 176
	應用程序需要良好的結構 177
	變化的代價很高——如果你不允許變化
	的話 178
	交流至關重要 179
	文檔總是錯的 180
	用增量式開發來控制風險 180
	精確的估算很難得到 181
	借用這些經驗 183
	第五部分 星期一的早上
	第17章 經驗——項目成功的指示燈 189
	根據聲望選擇軟件工匠 189
	信任工匠的推薦 190
	最后,開始大范圍搜索 191
	根據聲望和作品來評價工匠 191
	考察工匠的作品 192
	工匠的試演 193
	由軟件工匠來組建開發團隊 194
	根據個人了解和推薦挑選團隊成員 194
	年富力強的開發團隊 195
	為低預算團隊担心 196
	通力協作 196
	使用增量式開發 197
	盡早解決問題 198
	任何人都能學會協作式開發 198
	回避極端技術 199
	經驗的價值 200
	他們去年在哪里? 201
	獎勵優秀開發者 201
	想要人才,就得付高薪 202
	我們付得起那么多錢嗎? 203
	做好吃驚的準備 204
	第18章 為測試和維護而設計 207
	是軟件應用,不是軟件項目 208
	應用程序只會退休,不會結束 208
	維護團隊理應拒絕丑陋的軟件 209
	可維護軟件需要有自動測試 209
	使應用程序能夠被測試 210
	為維護而設計 211
	創建可維護軟件需要經驗豐富的
	開發者 212
	可維護軟件能夠生存多年 213
	長壽的應用程序需要長壽的開發工具 213
	開放源碼,軟件工藝的最愛 214
	Java對項目的健康有害 214
	可維護軟件需要穩定的基礎設施 215
	優秀的軟件是全球性的 216
	保證軟件的全球性 217
	拒絕“有計劃報廢” 218
	優秀的軟件需要優秀的用戶界面 218
	能夠安全使用的軟件 219
	可維護軟件易于診斷 220
	外包的危害 221
	外包忽視了軟件開發的本質 222
	在外包中堅持軟件工藝 223
	借助外來的工匠 224
	維護是軟件生命中最重要的部分 224
	提高維護者的地位 225
	維護者當受賞 226
	并非所有軟件都必須可維護 226
	“為測試和維護設計”不能一蹴而就 227
	第19章 活到老,學到老 229
	創造學習的環境 229
	用內部研討創造學習環境 230
	邀請所有人參加講座 231
	學習時間是一種投資 231
	掌握軟件開發的技藝 231
	鼓勵參加用戶組和技術會議 233
	慎選培訓課程 234
	課前聯系 234
	課后跟蹤 235
	亡羊補牢 235
	鼓勵員工活躍于開發者社群中 236
	鼓勵出席技術會議 236
	鼓勵開發者担任講師 237
	鼓勵開發者寫書 237
	沉思的實踐者 238 
            
            
            
            網載  2014-07-15 13:47:06