現在來解釋前一篇文章,為什麼我覺得我的Project沒有成功。
之前在Local的軟體公司工作快兩年,一直深深覺得身為軟體人,大家的腦袋應該比很多行業都好一些,那為什麼有那麼多班要加 ? 是我們程度不夠嗎 ? 如果加班是加在有Value的事上,我還沒什麼話說,但是常常是在瞎忙,Project schedule的不合理,scope的不明確,管理者用製造業的心態在管理軟體業........等等問題。
後來除了專業技能外我也花了一些時間在研究軟體工程,念了幾本有關軟體工程的書,人月神話(The Mythical Man-Month: Essays on Software Engineering),最後期限(the deadline)以及Study RUP與Extreme programing...等等的一些方法論。
在一個我可以作主的Project中,我就很積極的想把一些想法落實,在方法論中我選擇了Extreme programing,為什麼選他呢 ? 因為我對UP的開發模式覺得太龐大了,要花不少時間,也許開發產品或是長達半年一年的大案子選擇UP是不錯的方式,至於做中小案子速度跟靈巧很重要,而且我對Agile的理念很多都很認同,尤其是減少垃圾文件的產生與測試先行等等概念。
我花了一些時間找資料,以及上一些技術論壇網站與前輩交換意見,架了一個站使用Xplanner來做為這次使用Extreme programing的管理工具,去大陸前還跟老闆報告我這"幼稚的雄心壯志",老闆也給了我一些意見。
我心中滿是樂觀的看待我這軟體工程的導入,看是不是真能提升品質,減少文件以及減少溝通成本。
漸漸的管理失控了,我歸類下列原因
1.習慣性: 大家都習慣透過mail電話作溝通,要工程師"主動"上系統看有哪些item要處理,然後點選開始處理,等到做完後還要進系統塡上Close,工程師覺得麻煩沒有這個習慣
2.管理層面: 我們公司是採用矩陣組織(Matrix structure)該軟體開發部門要support來自很多不同事業群的案子,如果只是做我的案子就要適應我想要的開發模式,每一個跟他們合作的人都提一個開發方式,那麼該單位的人就會被玩到死,所以對方的意願沒有很高,這種模式應該是由他們部門內部發起比較合理。
3.我的經驗不足當: 一開始出現問題時我沒有很堅持,第一個Iteration做完還算可以,但是第2次Iteration時開始就有一些工程師沒上系統,或是沒有回去增加他的test case寫test code直接開發起來,開發到一半我才發現,但是我為了進度妥協了,沒有強硬的要求他們馬上回去補那些test case,造成test case有缺,所以沒有測試碼的那些case就人工測試。
大家都知道案子做完大家拍拍屁股走人,叫工程師回頭把人工測試的部份補上測試程式是很困難的,所以我理想中的,將來要是有修改就不用人工測試把測試碼run一次就好的美夢並沒有發生。
雖然專案是成功,但是軟體工程的導入某些方面是失敗的,不過這次我也是學到了不少。
沒有留言:
張貼留言