圖書信息
原書名: Ship it! A Practical Guide to Successful Software Projects
原出版社: pragmatic Bookshelf作者: (美)Jared R. Richardson William A. Gwaltney Jr.
譯者: 蘇金國 王少軒
叢書名: 圖靈程式設計叢書
出版社:人民郵電出版社
ISBN:9787115259653
出版日期:2011 年8月
開本:16開
頁碼:181
內容簡介
作者以精煉、風趣的語言揭開了項目管理過程的神秘面紗。所涵蓋的內容涉及工具、使用項目技術、曳光彈開發以及常見問題的解決辦法,並提供大量實用建議,且總結出方方面面的“技巧”,幫助讀者在閱讀過程中快速消化所看內容。
《軟體項目成功之道》適合軟體研發專業人士閱讀,對軟體項目管理感興趣的社會各界人士也能從中獲益。
作者介紹
Jared R. Richardson是一名開發人員、演說家、作家和獨立顧問,是由開發人員逐步成長為研發經理的。他有著十多年豐富的工作經驗,擅長使用非定製技術來解 決疑難問題。他領導著SAS軟體研究所的一個開發和測試團隊,負責帶領整個公司提高了測試自動化的使用。
William A. Gwaltney Jr.有著二十多年軟體開發經驗,在網路、通信、知識表達及基於網路的計畫調度方面都很有造詣。他在SAS軟體研究所從事測試自動化方面的工作。
譯者序
說來也巧,拿到原書正在翻看時,我所在的一個項目組臨時召集開會。這個項目去年就已經啟動,甚至單位最高領導親自動員,其重要性可見一斑。開始時大家確實士氣高昂,成效明顯,每周例會都會匯報新的進展,可惜第一個演示版本提交後,這種勢頭就沒能再保持下去。大家都忙於處理自己手上其他的繁雜事務,在這個項目上投入的精力越來越少,每周例會也不再召開,已經成為回憶。由於中期檢查臨近,這才不得不召開“例會”了解目前工作狀態,並討論下一步工作安排。
會議開始後,一個同事的發言讓我覺得似曾相識。他負責的部分需要與外單位開發的4個模組集成,提交演示版本時,只有一個模組能成功集成,另外3個模組一直有問題。這期間改改停停,問題一直不能幹淨利落地得到解決。最近聯繫過一次聯調,經過幾天努力,終於搞定了這3個模組。可是最後一天外單位人員臨走時過於匆忙,不小心覆蓋了那幾天的成果。所以這位同事說,只好再安排一個時間重新聯調,不過時間還沒有定下來……我心裡想:這不正是我剛才在書里偶然看到的情況嗎?
這時另一位同事也表示出對這個單位合作態度的不滿,開始大談他們的種種不是,大家只能百無聊賴地聽著,不好意思打斷。接下來話題扯得越來越遠,一下午的會議結束後,儘管大家都很是辛苦,甚至頭昏腦脹,但還是不清楚目前到底有哪些新的進展,也沒有討論好接下來的具體安排。
回到自己的辦公室,重新拿起這本書,我發現這一切正是書中所說的一個真實場景的再現,當即把它推薦給了我們的項目負責人。現如今,我們的每周例會已經恢復(儘管沒有做到書中建議的每日例會),項目在有條不紊地向前推進。
關於這本書的內容,我不想多講,只想說:這本小書會帶給你實實在在的好處,如果你手上有遲遲無法交付的項目,也許這就是你的曙光!
“好風憑藉力,送我上青雲”!借著大師們的力量,站在巨人的肩上,我們會走得更遠!
全書主要由蘇金國、王少軒翻譯,並得到王小振、李璜、劉亮、李新宏的大力協助。若譯文有不當之處,敬請讀者批評指正。
前言
不論是對你自己還是對你的職業發展,最明智的一項投資就是讓你身邊有一些“合適”的人——他們會成為你能找到的最好的資源。這些人可能已經做過你打算做或者想學著做的事情。如果你想做一些事情,最好找到那些做過這些工作的人,或者至少找到一些真正睿智的人,能夠告訴你該怎樣完成這些工作。儘可能和他們多待些時間,通過相互幫助來向他們學習。與這些高水平的人相處,會讓你學到很多東西,不論你的工作是什麼,這都會讓你表現得更出色。
這是一個很好的想法,但是要想與那些頂尖人物接觸可能很困難。像Martin Fowler、Kent Beck和Pragmatic Programmers的作者等大師級人物,並不是我們大多數人有機會見到的,不過我們可以看到他們的書、文章和演示文稿。所以要開始讀書。一個月讀一本書應該不會太費勁。但是不要就此止步,接下來可以學習一種新的程式語言,或者研究一個不同的開發過程。在學習和讀書時,要想辦法把這些新思想套用到當前的工作中。這樣一來,你不僅能幫助你的公司提升,更重要的是,還可以讓你自己得到提高。
要讓自己開放地接受新思想。不要閉塞,應當想辦法把這些新思想套用到你現在的工作中。也許你會放棄,並聲稱某種新思想不適用,這樣做當然更輕鬆,不過我們的目標是學習採用另外一種不同的方式考慮問題。要打破條條框框(或者至少建一個更大的框框)。多學習掌握一些看似不太相關的概念和思想。
通過對環境和過程進行分析和評判,你可以找出弱點。也許這會幫助你對這個項目或者下一個項目做出改進。但同時你也練習了一種新的思維方式,不論在哪裡工作這對你都會有好處。大多數人從來不曾了解這個概念,擅長的人更是少之又少。
所以,讀完這本書的每個實踐後,請停下來,花5分鐘時間試著想想有沒有辦法在你今天做的工作中具體運用各個概念。你可能不假思索地回答:無法做到。這種回答當然最不費勁,不過要記住,不能這么懈怠,你應當更加努力!如果你自己找不出一種方法來套用這個概念,可以找一位同事來幫忙。如果僅憑自己的雙眼看不到,可以藉助別人的視角來了解。不論在什麼領域,知道如何利用同事的經驗,絕對是高手特有的標誌。
希望你掌握從本書(和整個Pragmatic Starter Kit系列)讀到的內容,想辦法在工作中套用每一個概念。你會看到讀這本書給你帶來的直接好處,其中最大的好處就是你會學習如何真正加以套用。
希望你喜歡!
致謝
首先要感謝Andy和Dave讓我們為Pragmatic Bookshelf寫一本書。能為你們寫一本書真是榮幸。Andy,你做的已經遠遠超出了你的份內職責,甚至花好幾個小時與我們一同修改手稿,給我們上了一堂寫作速成課,儘管有時對我們的寫作天份……有些發愁(我們確信你肯定失望過)。Dave,我們曾經問過很多關於圖書生成系統和標記語言細節的問題,感謝你花那么多時間回答這些郵件。非常感謝你們二位!
我們有很多非常棒的審校人員,另外還有很多人做出了貢獻,他們詳細而且有建設性的反饋確實意義重大。沒有你們投入的時間,沒有你們豐富的經驗,這本書不可能出版。Susan Henshaw和Jim Weiss花了大量時間審校我們粗糙的文字,而且讀過不止一遍。謝謝你們。
還要感謝Mike Clark、David Bock、Ken Pugh、Dominique Plante、Justin McCarthy、Al Chou、Bryan Ewbanks、Graham Brooks、Grant Bremer、Guerry Semones、Joe Fair、Mark Donoghue、Roberto Gianassi、Rob Sartin、Shae Erisson、Stefan Schmiedl和Andy Lester。你們當中很多人曾忍受過這本書很早的版本,最近我們重新讀了你們原先讀過的版本,對你們曾經遭受的“折磨”我們深表歉意。說真的,所有反饋都很棒,正是有了這些反饋,這本書才得到了如此顯著的改進。
在我們的職業生涯中,曾經與很多人共事過,其中有些人對我們的工作以及這本書產生了直接的影響。我們要特別感謝Jim Weiss、Randy Humes、Graham Wright、Flint O’Brien、Toby Segaran和John Wilbanks。還要感謝我們現在的經理Oita Coleman對我們的鼓勵和支持。我們很幸運,能夠在SAS這樣的世界級公司工作。
如果沒有敏捷開發社區的智慧,沒有大家出色的作品,這本書絕無可能問世。我們讀過XP、scrum、Crystal以及很多其他軟體領域專家的書和文章。沒有你們辛苦而忘我的工作,軟體行業可能還在黑暗歲月中掙扎。也許我們還沒有完全走出黑暗,不過起碼正朝著正確的方向前進。你們孜孜不倦的工作讓大家受益匪淺。
開源社區共同為全世界提供了這么多非凡的工具和想法,同樣要向你們表示感謝。正是因為全世界開發人員的無私奉獻,我們這裡討論的大多數工具才可以免費使用。在此要特別提到SourceForge團隊和Apache 軟體基金會。你們提供的服務和工具不僅讓我們提高了生產效率,還改變了整個世界。
最後,也是最重要的,要感謝我們的主,耶穌基督,願主永得榮耀!
Jared Richardson和William Gwaltney
我的妻子Debra為這本書投入了大量的時間和精力。甚至有好幾個星期Debra花在這本書上的時間比Will和我還要多。其餘的時間她既做母親又做父親,才讓我得以安心地完成這本書。我發自內心地相信,如果沒有她的幫助和支持,我絕對不可能完成這個工作。謝謝你!
我的孩子們,Hannah和Elisabeth,很多個夜晚和周末爸爸都把自己鎖在辦公室里一心撲在這本書上,感謝你們忍受了這一切。謝謝你們的理解和愛!
序言
你可能已經注意到了,書架上關於軟體開發的書並不只有這一本。
實際上,關於設計和構建軟體的書林林總總,多得讓人眼花繚亂,不僅如此,它們相互之間還不太一致。遺憾的是,這些方法上的分歧帶來的感受往往讓人“炙熱難當”:作為軟體行業的從業人員,我們體會到的不是光明,而是焦頭爛額的感覺。另外,我們的項目總是延期。
我們在不斷探尋更好的軟體開發方法,希望能找到適合自己和團隊的好辦法。不過,基於既有的教條,關於各種開發方法孰優孰劣的討論最終總會演變成激烈的爭吵。字典中教條的定義是“一種權威性觀點,但並沒有充分的依據”。我們經常會看到,各種方法的擁護者們都堅持認為自己的方法才是開發軟體唯一正確的方法。我們不斷聽到一些從業人員這么講,他們執著地採用某種方式開發軟體,即使這種方法明顯危害到團隊的其他人甚至整個組織,卻仍然固執己見。
事實上,開發軟體根本沒有所謂“絕對正確的方法”。倒是有很多錯誤的方法,不過沒有哪一種方法、觀點、哲學或工具能“以不變應萬變”,在所有時間、所有場合對所有項目和所有人都適用。軟體是人創建的,不會有兩個人完全一樣。
所以對於軟體開發實踐,我們還是沿用“務實”的觀點。我們要強調的是目標:你希望得到一堆簽名,還是希望所有人都能理解?你希望匆忙間隨便拋出一堆東西來,還是生成一個可以真正幫助別人完成工作的軟體?
我們想嘗試新鮮事物,並對我們的實踐不斷評價和修正;我們希望找到適用的方法。不過著手這個工作很費功夫:我們要做大量研究,需要耗費大量時間,而大多數參與實際工作的程式設計師根本沒有這么多時間。
這讓我萌生出一個想法:請Jared和Will寫這樣一本書。這是一本快速入門的指南,你能從中了解開發可靠代碼所需的基本、有效的工具和技術。
Jared和Will是《程式設計師修煉之道》最早的讀者,他們用心領會書中的道理,運用我們的方法和技術,並結合其他流行的敏捷方法實踐,形成了一種獨特的方法,讓他們不論在小的初創公司還是世界上最大的私營軟體公司,都能得心應手地開展工作。
這本書匯集了他們最鍾愛的技術和實踐。運用這些內容,你將在改善開發過程時如虎添翼,快速入手,當然可能還需要補充Pragmatic Starter Kit系列介紹的其他一些技術細節。隨著時間的推移,你可能希望進一步擴展,嘗試另外一些實踐和技術。畢竟,這正是務實之道——根據當務之急,找到最適用的方法。
希望這本書對你有幫助,能讓你輕輕鬆鬆地成功交付系統!
Andy Hunt
The Pragmatic Programmers公司
2005年4月
目錄
《軟體項目成功之道》
第1 章
緒論 1
1.1 習慣性優秀 2
1.2 務實觀點 3
1.3 路線圖 5
1.4 繼續前進 7
1.5 怎樣讀這本書 7
第2 章 工具和基礎設施 11
1 在沙箱中開發 15
2 管理資產 18
3 建立構建腳本 23
4 自動構建 27
5 跟蹤問題 32
6 跟蹤特性 36
7 使用自動化測試框架 39
8 選擇工具 46
9 何時結束試驗 48
第3 章 實用項目技術 51
10 按照任務清單工作 53