本來想等讀完之后再來寫讀后感的,不過由于引起的共鳴或者說帶來的感想確實不少,還是決定先寫寫,免得以后有所忘記,^_^
Joel on software不愧是jolt的得獎書籍之一,寫的非常的不錯,不過建議大家直接看E文版,不要看中文版,中文版翻譯的實在不怎么樣,給人的感覺根本就是直譯的方法,象其中體現出不夠專業的翻譯的詞到處都是,象連編、內用軟件等等詞,里面翻譯的很多話都翻譯的很晦澀,估計如果對joel講的那個方面不懂的話,看中文版反而會完全看不懂...
Joel on software是本很薄的書,講的主要是joel在軟件方面的一些經驗、想法、實踐,joel是以前Microsoft Excel團隊的領導之一。
目前看了大概一半,流水帳式的記錄下讀書的筆記:
1、Joel測試:改進代碼的12個步驟
????? Joel測試,業內非常知名的對于軟件團隊的一種評價手段,12個步驟都點中要害,雖然估計大家都了解,還是決定在這里再次列出:
?????
§ 使用源代碼版本控制嗎?
??????
§ 能一步完成系統構建嗎?
??????
§?做日構建嗎?
?????
§ 有Bug庫嗎?
?????
§ 在編寫新代碼之前修復Bug嗎?
?????
§ 有最新的進度表嗎?
?????
§ 有功能規格說明書嗎?
?????
§ 程序員擁有安靜的工作環境嗎?
?????
§ 你用到了你資金能力內可買到的最好工具嗎?
??????
§ 有測試人員嗎?
?????
§ 新聘人員在試用期寫代碼嗎?
?????
§ 進行走廊可用性測試嗎?
?????? 以上12點就是著名的Joel測試了,你可以試著對你的團隊打打分,只有得到11分或12分的才是比較好的軟件團隊,而10分以及10分以下的團隊都存在這樣那樣的問題。
?????? Joel舉了個例子是微軟中的軟件團隊都在12分以上.........
?????? 其實自己看了下,確實,這12點都是對于團隊來講很基本的要求,但是你的團隊能得幾分呢?
2、Unicode與字符集知識
????? Joel認為每個程序員都應該了解Unicode與字符集知識,java界的程序員由于基本都會碰到編碼問題,所以我覺得這個部分對于java程序員來說通常都不是大問題,不過我從這章節中仍然是學到了更為底層的編碼知識,^_^
3、功能規格說明書
????? 這個部分一直就認為至關重要,無論是產品性質還是項目性質,功能規格說明書其實和平時寫需求規格說明書還是有些不同的,功能規格說明書其實通常都已經向用戶展現了一套真實的系統,joel在書中說的一點給我感觸頗深,就是寫這種書的時候應該寫的帶有些趣味性,這點看似容易,做起來難,就像XP中的系統隱喻一樣。
4、每日構建
??????這個相信大部分業內人士都已經認同了,但有多少團隊在真正的執行呢?
????? 這個章節給我帶來的最大的體會不是每日構建的好處的學習,這個我都已經知道了,最大的體會是當joel講到編譯器是為了提升edit-compile-test這個環,給我帶來的最大的感想就是要提升團隊能力、效率其實同樣也是這樣,去尋找這個環,就像jira這樣的工具就可以幫助提升report-fix-test這個環的效率。
5、Bug修復
????? 這個章節讓人體會到了做軟件各個環境還是要想到軟件的本質的,軟件的本質是商業性質的服務,所以即使在進行Bug修復要有去考慮商業性質上的因素。
6、稿紙原型開發
??????^_^,這個章節帶來的共鳴來源于我很多時候都傾向于用紙、白板來表達我的設計思路,而不是用visio、rose去繪制那些受N多規范約束的圖,更討厭別人在看這些圖的時候首先看的是這些圖是否符合這種、那種規范。
????? 稿紙原型這種方法其實同樣,更容易進行快速的交流....
7、自動獲取用戶故障報表
????? 這個我想是N多軟件人員都想做到的,^_^,自動的獲取用戶的故障報表,這樣對于修復bug會有很大的幫助,多么的希望有這樣的記錄方式:對于出現異常的部分就會有操作過程的完整錄像,同時提供相關的環境信息等,這樣的話對于bug的修復會有很大的幫助。
8、面試游擊指南
????? 面試絕對是個很大的學問,要求在很短的時間較準確的去評估一個人是否適合某個職位,joel給出了他的面試步驟:
?????
§ 介紹自己
?????
§ 詢問應聘人員最近從事的項目情況
?????
§ 問不可能回答的問題。(如北京有多少個公交車站)
?????
§ 程序設計提問
??????????? 這個環節很重要,目前情況來看,還是能現場讓面試者在機器上寫點代碼比較好.....
?????
§ 你滿意嗎?
?????
§ 你有任何問題嗎?
?????? joel表達的重要思想和我之前寫的一篇blog一樣,面試人員應該給應聘者創造一個輕松的環境,讓應聘者盡量的展示他自己的能力,joel認為對于應聘者他最看重的是機敏和成事這兩個方面,機敏表明了joel很重視應聘者的學習和適應能力,成事則表明joel很重視應聘者的實戰能力,而不是純粹的理論水平。
9、不配備測試人員的五個首要(錯誤)原因
????? 這個環節給我很大的體會,至少在我經歷過的幾個公司都沒有做到配備測試人員的條件,而且測試人員到底需要什么樣的水準,在現在的業界也沒個準,反正我是一直認為合格的測試人員應該是由高程、系統設計師這樣的人發展過去的。
10、任務換人有害無益
??????? 這點深有體會,在這個章節中joel講的重點是同時面對多任務的現象,這里他舉了個例子,是多線程處理的例子,我們都知道,一直以來都認為多線程處理方式的支持是業界的重大發展,joel舉了個例子去說明多線程處理的時候效率遠比順序執行的時候慢,當然,其實我覺得這是joel舉的一種特例,他主要還是為了去表達人去面對多任務通常來講是不如讓這個人按順序的完成任務的好,這點我是非常同意的,至少我自己就是這樣,就像joel書中所說的一樣,當面對一個任務的時候我基本都會較好的完成,但當同時面對兩個任務的時候很容易造成兩個都完成的很慢或者一個完成的較好,而另一個則根本就沒怎么做,主要是在任務切換的時候需要花費很長的切換時間,joel在書中所說,本來一天八小時的有效工作搞不好會變成兩小時,^_^,我就經歷過這樣的現象。
BTW:
Joel網站:
http://www.joelonsoftware.com