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