負責一個小型軟件開發項目跟掉層皮似的,其需要花費的心力不亞于負責一個大型的軟件開發項目。近期公司讓我做一個小型軟件開發項目的主管,由于在資源、人力、管理水平等各種方面都有所欠缺,使我所負責的小型開發項目走了很多的彎路。為什么小型軟件開發也有那么多的麻煩事情,到底問題在哪里呢?
初期的開發失敗給我很大的打擊,對此我做了許多反思和總結。后來,我終于明白到是由于缺乏切實可行的開發制度來為開發過程保駕護航,致使開發人員和測試人員不知項目該如何穩步地往下走,對于出現的異常情況也不知如何預防和規避,而且在出現問題時也未能有步驟的及時進行快速反應。簡單的說,缺乏制度化管理是這次開發暫時失利的重要原因。
開發受挫源于對制度化的誤解
所謂開發制度化,是指在軟件開發過程中大量使用的口頭的或文字化的規章、標準或約定等。開發制度化對于軟件開發項目來說,像規矩對于畫方圓一樣,其重要性不言而喻。但目前許多小型軟件開發團隊對于開發制度化卻有不少的誤解。
(1)開發制度流于形式,缺乏實質性操作
目前許多軟件開發的管理制度都是為大中型開發項目制定的開發制度與規范,如CMM、ISO9000等。因此在實際操作中,許多小型軟件開發團隊以這些為大中型軟件開發項目制定的開發管理流程為基準的、模仿制定的規范制度,不但未起到明顯效果,有時還會落得個"東施效顰"的罵名。
原因并不是這些制度化的管理規范本身有什么問題,而是許多小型軟件開發團隊模仿所制定的開發管理制度,并沒有針對小型軟件開發項目的實際配置進行合理優化。因此,許多小型軟件開發團隊花大心血建立的開發制度只流于形式,缺乏實質性操作,在一定程度上導致了項目的失誤,終形成東施效顰,差之千里。
(2)過猶不及,患上制度迷信病
制度迷信病是小型軟件開發團隊在其開發管理過程中另一個常見的問題。原因是有些曾在大中型團隊或項目工作過的開發人員,在負責小型開發項目時,也往往喜歡套用大中型開發項目的經驗,強調要用"制度"管人,用"制度"去指導開發。但由于缺乏對小型軟件開發活動特點的深入理解,這些開發人員往往會不自覺地形成簡單問題復雜化的僵硬化思維。久而久之,會產生了一種叫做"制度依賴或制度迷信"的病態不健康思維方式。
這些開發人員在開發過程中過分的期望通過制度來實現對人的有效管束,但卻忽視了小型開發項目的特點,結果是執行力越來越差,效率越來越低,抱怨卻越來越多。這個時候,有制度比沒有制度還糟糕,這是患上了我們熟知的"制度病"。
(3)過分人本管理,卻欠缺制度化管理
許多小型軟件開發主管在處理開發活動和制度化管理關系過程中,常犯的通病是沒有或不善于將人本管理與制度化管理有機地結合起來,使開發過程中過分傾向于人本管理,而忽視了制度化、規范化的管理。他們只著眼于單純地、或過份地依賴其個人的管理能力,結果反而造成許多對開發質量穩定性不利的影響。
(4)制度執行不力,使其成為一紙空文
許多小型軟件開發團隊在開發過程中并不缺少文件化的制度,但往往卻容易陷入另一個困境,是執行不力。究其原因有三個:一是開發制度太多太濫令人無所適從;二是泛濫的制度化帶來了大量的額外煩瑣的管理工作量;三是對違反開發制度的行為缺乏相應的制裁措施。結果使開發制度無法有效執行,使其成為一紙空文,后束之高閣。因此有一句大實話是值得小型軟件開發團隊重視的,是有制度不執行等于沒制度,執行不到位也等于沒有制度。
為什么小型軟件開發更需要制度化管理?
俗話說:沒有規矩,則不成方圓,要想畫出合乎要求的方和圓,要有矩和規的幫助。目前,中國軟件行業中大量存在的仍然是中小型軟件開發團隊。這些小型軟件開發團隊雖然資金有限、人力有限、管理水平和技術有限,但卻是麻雀雖小,五臟俱全。因此,對于小型軟件開發項目來說,要想比較順暢的完成任務,必須要提高軟件開發過程的管理素質。換句話說,是必須要有相應的制度框架給予支持。
(1)制度化管理可把開發活動導向正軌
軟件開發工作有一條不變的原則是--開發總會遇到方方面面的阻力,使到開發計劃總是在變。變化如果在項目預期內,在預設的軌道內運行,軟件開發是可控的。否則,項目會脫軌變得不可控。因此,無論是大型還是小型軟件開發項目,只有有"軌道"可依才能實現高效率的項目管理。實質上,制度化管理不但是軟件開發從"低文本文化"向"高文本文化"過渡的具體表現,而且還是軟件開發過程實現"法治軌道"的具體表現。簡單的說,是軟件開發制度化不但是落實開發計劃以達到規范管理的過程,也是把紛繁復雜的開發活動導向"法治軌道"的管理過程。
(2)制度化管理可規范開發活動
小型軟件開發活動有一個大的弊病,是隨心所欲的個人行為太多。因此,小型軟件開發需要大大的減少隨心所欲的個人行為。當在軟件開發過程中通過各種制度來規范員工的行為時,當員工更多的依據開發制度來處理各種事務時,當開發人員不再象以往隨心所欲時,能使開發過程逐步趨于規范化和標準化。
(3)可強化項目執行力,減少開發風險
建立有效的制度可以強化項目開發的執行力,如:項目推進制度、工作管理制度、項目會議制度、項目過程管理、項目考核制度。同時,制度化管理也意味著開發活動程序化、標準化、透明化。因此,開發制度化可讓開發人員迅速明確本崗位的工作職責,也便于在軟件開發過程中對員工的工作進行監控和考核,從而促進員工不斷改善和提高工作效率。