2013-05-01

[Weinberg - Quality Software Management][Book 1][Ch 7]

書名:溫柏格的軟體管理學,第一卷,第七章
Title:把穩軟體的方向

概要
軟工發展多年,已有許多方法論可協助軟體開發,例如waterfull process model,或是近年很流行的WBS、agile,無論如何,這些都只是方法,最重要是執行專案的是人,而不是方法;所以首先我們要了解純然規律性的方法不能完全適用這個道理,更糟糕的是方法論往往為扼殺創意,當然,保守的作法也往往比較安全。

方法論講了好幾頁,都不作者要表達的重點,最後他點出人為決定才是對專案造成關鍵干預且會脫離方法論造成多種不可見狀態。所謂不可見狀態,舉例說明如下:
  • 寫出來的程式有大量難以修正的錯誤
  • 專案成員對不該有自信的事情卻充滿了自信
  • 高階管理層員誤認專案就快完工了
  • 有一個重要程式設計師生病了,無法加班
  • 一個程式設計師和專案小組的技術負責人成為死敵

搞軟體的人或許對各種方法論都很熟悉(?!,個人認為這點有個很大的前提,必須是真正搞軟體的人,那些自以為在搞得不算數),但對效應模型不夠熟悉。

身為專案負責人必須要認知到的一點是,系統中每當遇到人為決定時間點,能夠決定下一事件會如何發展的不是事件本身,而是某人對該事件所做的反應。對某些模式2的讀者來說,此格言會是本書中所提及的所有觀念中最難接受的一個。

那些對自己的員工心懷畏懼的經理人對於此類的想法會特別感到欣慰,因為這意味著他們可以躲在自己的辦公室裡對計畫動動手腳,而不必去處理真正人的問題


如果您想要成為一個可以把穩軟體專案方向的人,必須學會把注意力放在分辨兩者的差異上:
  1. "自然界的"定律,我們必須學會接受
  2. "與人為決定有關的"定律,我們必須學會如何加以控制

經常人們會說出類似這樣的話:"我們必得如期交出產品"、"專案已經落後,因此我們把測試的速度加快",這些話表面上聽來好像他們在說的是什麼自然界的定律,其實不是,若是聽到了,您可以有禮貌的問:"你可以告訴我你這段話背後的推理過程嗎?"

個人回饋:
這個章節討論的是只懂用方法論但不懂人為效應模型的專案會面臨的可能傷害,那反過來不違反人為效應模型,卻濫用方法論呢?這樣的專案往往出現幾項特徵:
  • 團隊誤用方法論,何謂誤用,就是指照抄方法論可能的文件產出,但不了解方法論背後的涵義跟想要達到的目的。導致專案成員的工作目標永遠配合方法論撰寫,但永遠不會依照進度執行。
  • 有1/3的人力資源時間浪費在執行所謂的方法論,原因是有方法就會有漏洞,厲害的工程人員背負過多責任,其他人員則依靠方法論規則填補工作進度。
  • 有1/3的工作方法依照方法論執行,但沒有經過專案特性經過客製化,導致架構設計不良連帶造成大量人力資源耗費在不必要且routine的作業消耗上。
  • 換言之,1/3的人力就足足有餘,但這樣的結果其實負責人難以交代(或自己不知)因方法論使用錯誤,導致即使專案成員嚴重以加班配合進度開發,卻還是難以達成預期成果,在績效不彰卻又提不出實質改善效益(或不能提出、或不能親口提出)的結果下,就只能用加班時數來作為查核點搪塞。

沒有留言:

張貼留言