軟件工程第零原則,簡稱第0原則:所有的軟件工作項都有唯一的最佳解決方案。
這里,先定義幾個名詞:
1、最佳解決方案。比如:在需要使用“懶惰策略”的時候(優(yōu)化后置),使用“懶惰策略”就是最佳方案;不使用就不是最佳方案。2種方案的區(qū)別,關(guān)鍵在于,開發(fā)的進度和風(fēng)險,2種方案的成本是不一樣的。
2、團隊最佳解決方案:團隊最佳解決方案有時也是最佳解決方案,是團隊能夠提出的最佳方案,雖然不是該問題的最佳方案,但該方案如果可以滿足問題的需求,團隊又有能力實施,同時,相比向外部請求協(xié)助的代價要低的多,此時,基本可以認定該方案是團隊最佳方案。這種情況下,采用“團隊最佳方案”是最好的解決方法,理由是:滿足需求,開發(fā)成本低,風(fēng)險小。
在長期的軟件工作實踐中,軟件小組成員之間經(jīng)常出現(xiàn)意見不一致的時候。
具體出現(xiàn)的情況分類如下:
1、所有人的意見都是最佳方案的;
2、有一個或者幾個人的意見是最佳方案的,有幾個或者一個人的意見是不太合適的,或者是錯誤的;
3、所有人的意見都不是最佳方案,但有一個或者幾個人的意見是“團隊最佳解決方案”;
4、所有人的意見都不合適,或者都沒有解決方案;
出現(xiàn)意見不一致時,容易造成團隊內(nèi)部爭執(zhí),或者使團隊進入到其他低效狀態(tài);為了提高團隊工作效率,降低開發(fā)成本,需要減少這類低效狀態(tài)的出現(xiàn),采用合理的方式,是可以減少這類狀態(tài)的;正面解決問題是其中的一種較好的方式;
在實際工作中發(fā)現(xiàn),正面解決問題是較好的方法;即找到當前的最佳方案,并且讓團隊成員經(jīng)過談?wù)摚纬梢恢乱庖姡蛘撸谡也坏阶罴逊桨笗r,把該問題記錄下來,后續(xù)解決,不影響當前工作;
采用這種工作方法的前提條件就是團隊所有成員對“問題具有唯一正確的解決方案”的原則形成一致的認識:所有的軟件工作項都有唯一正確的解決方案。由于該原則是軟件工作的基本原則,所以,命名該原則為:“軟件工程第零原則”,簡稱“第0原則”。
以下對該原則做說明:
1、軟件工作中所有工作項都有最佳解決方案:由于,計算機理論基于數(shù)學(xué),軟件工作中的所有工作項的根本基礎(chǔ)是數(shù)學(xué),可以說軟件工作中的所有問題都可以轉(zhuǎn)化為相應(yīng)的數(shù)學(xué)問題,而數(shù)學(xué)問題是有最佳解決方案的,所以,軟件工作中的所有工作項都有最佳解決方案;(這里,還有,成本進度等的量化計算與管理);
2、不同解決方案合適程度是不一樣的:有時,幾個方案都可行,但,其中是有區(qū)別的,區(qū)別在于,風(fēng)險和成本,具體來說在于工作量、工期、運行性能、團隊技術(shù)熟練程度等;
3、該原則的用途:學(xué)習(xí)軟件知識時,明白所有問題有最佳解決方案,避免一葉障目;團隊工作時,減少無效討論;
該隨筆的觀點不太成熟,多提寶貴意見。謝謝!
posted on 2007-07-22 19:34
石正 閱讀(331)
評論(0) 編輯 收藏