我心中的軟體工程師
A. 早上9:00 + X (X=0,1,2)到辦公室,喚醒MacBook Pro外接27寸蘋果顯示器。
B. 開啟Safari/Chrome,登陸到公司的系統,檢查昨晚的NightlyBuild/NightlyTest的結果,看看今天的Todo List:裡面80%內容是根據專案經理的計劃生成的,20%的內容是自己安排的。(如果NightlyBuild/NightTest有自己造成的錯誤,這些內容會填滿20%的時間,並且系統已經通知同組其他同事,我請他們吃飯。因為我的錯誤讓NightlyBuild/NightlyTest失敗了^_^)
C. 開啟終端iTerm,登陸到Linux/BSD/Solaris伺服器,進到自己的
D. 從Git上pull最新的原始碼,建立自己的分支。然後看看Todo List,開始分析問題,然後coding;然後Make/Debug。當然其中包括修改config,讀Log。這之間可以聽聽自己喜歡的音樂,這些音樂是正版的,單位付費的:)
E. 然後開始寫Unit Test, Mock和Module Test。然後Test。這一步可以是pair programming。
F. check in程式碼,在自己的分支上打上標籤。等待自己分支AutoBuild/AutoTest的結果。
H. 去拿一個蘋果,或者是自己喜歡的咖啡,威士忌。回來開啟Google Reader,閱讀最喜歡的RSS。如果有好玩的技術,可以稍微深入瞭解一下。
I. 當AutoBuild/AutoTest有結果了,Mac會彈出一個視窗。如果Case全過了,就恭喜一下你;如果有問題就給你一個問題清單。(這個通過包括程式碼風格,測試覆蓋率還有Lint結果) 這個時間不會太長,因為公司有很好的基礎服務。雲Build和雲Test,呵呵。
J. 發現累了,去樓下臺球廳,打上幾桿。可以自己一個人玩14+1,也可以和好朋友打9 Ball或者8 Ball。如果今天嗓子癢,就進KTV,吼上幾句。或者發現殺人遊戲或者三國殺很激烈,進去湊個數。
K. 突然有個好的idea,立馬回到位置上。開啟Screen的另外一個Session,來到公司內部的開源專案。check out程式碼,把自己的idea實現進去,然後測試,check in。
L. 專案經理召集大家開會,10分鐘。告訴大家都不錯,程式碼質量很好,想法也都很好。檢查一下下面N個任務(我們不叫做scrum,不過比scrum還敏捷吧)。會上大家有些好的主意,大家討論立馬弊掉一些,因為太沒有想法了。然後義無反顧的接受一些,因為太吸引人了。
M. 散會。專案經理把會議記錄簡短的記錄在專案的Wiki上面,大家都可以更新它。
N. 經理批評你,說你晚上加班太多。明天強制你休息一天。你很不爽,因為這麼好的環境,誰願呆在家裡。但是沒辦法,這種命令不聽,經理是可以扣你獎金的。
N. 18:00 + X (X = 0,1,2)下班。如果你是個工作狂,開啟你的iPhone/Android/BlackBerry的程式,然後進入公司的程式。然後你所有的screen資訊,加密資訊都在你的手機裡,你到任何一臺電腦上(Linux/Mac/Windows),都可以進入公司的網路,絕對安全。