|
英文原文:My ten development principles
在從事軟件開發(fā)若干年之后,我已經(jīng)對“軟件應(yīng)該如何設(shè)計(jì)”有些心得。實(shí)際上,我有了這樣一個結(jié)論:所有的事情最后都濃縮成10個原則,如果我們很好地執(zhí)行這些原則,任何軟件開發(fā)都應(yīng)該會取得成功。
0. 客戶至上
“如果我們沒有關(guān)注客戶……其他人將會取代我們。”
從客戶的角度出發(fā),客戶首先會把焦點(diǎn)集中在產(chǎn)品開發(fā)的真正價(jià)值,其他方面(例如概念、需求、技術(shù)等等)在項(xiàng)目中是次要的。
不關(guān)注客戶,就是程序員常犯的5個非技術(shù)性錯誤的其中之一。
1. 代碼質(zhì)量
即使代碼質(zhì)量是一些非常主觀性的東西,(甚至有人說所有的代碼都有問題),它卻影響著很多重要的方面,比如:如何去維護(hù)應(yīng)用程序,或者如何去帶一個新手程序員。
在我看來,代碼質(zhì)量的指標(biāo)在于:簡單性、可讀性、健壯性和可測試性。其他特性,例如外觀或者可擴(kuò)展性,如果沒有要求的話,在你的應(yīng)用程序中可以靈活設(shè)計(jì)。
2. 授權(quán)
軟件開發(fā)過程中最重要的資源是人力,而非技術(shù)。人力決定產(chǎn)品的好壞,但他們需要得到授權(quán)。
授權(quán)是一個鼓勵開發(fā)者積極做事和制定決策的過程。一些高效的機(jī)構(gòu)的授權(quán)體現(xiàn)為:指導(dǎo)/配合或者委派。不知你是否也有過和Derek相同的經(jīng)歷,每隔5分鐘就有員工跑過來向他請示這個和那個問題?如果有,可以通過《管理者的困境:放權(quán)或者崩潰》這篇文章看看Derek如何解決這個問題的。
3. 持續(xù)集成
從我的經(jīng)驗(yàn)看來,集成是軟件開發(fā)的主要問題。在項(xiàng)目后期或者大型功能模塊完成后,等著集成是一個令人糾結(jié)的過程。
持續(xù)的集成是保證每部分委托的代碼在系統(tǒng)中自動集成的過程。請記住,持續(xù)集成優(yōu)先于持續(xù)編譯。
Martin Fowler的這篇文章是網(wǎng)上關(guān)于持續(xù)集成的最優(yōu)秀的參考文獻(xiàn)之一。
4. 迭代
迭代提供了持續(xù)的反饋信息。持續(xù)反饋很重要,因?yàn)樗档土塑浖_發(fā)的不穩(wěn)定性。
雖然迭代經(jīng)常與敏捷方法有關(guān)系,不過有其他方法例如RUP,也使用迭代,他們卻不是敏捷方法家族中的一員,記住這一點(diǎn)很重要。
5. 自動化測試
允許重構(gòu)和遞歸,給開發(fā)者帶來自信,如果得到有效貫徹的話,會提高最終產(chǎn)品的正確性。對于自動化測試,你可以考慮與測試有關(guān)的一些情況和如何編寫一個良好測試組件的建議。
6. 重構(gòu)
不管你如何關(guān)注編碼,在你邁出第一步的時候,你將會走錯路。重構(gòu)是我們用來保持代碼修改的做法,以滿足系統(tǒng)說明的必要更迭。
7. 非正式架構(gòu)
前期的大型設(shè)計(jì),除非你是NASA,能夠把項(xiàng)目50-60%的時間花在這上面,否則這完全是浪費(fèi),毫無準(zhǔn)備去編碼情形也一樣。非正式架構(gòu)是一種折衷解決方案,它在項(xiàng)目發(fā)展的基礎(chǔ)上進(jìn)行討論,并存留于文件,留言板或者類似的物件之中。
8. 溝通
軟件開發(fā)只與溝通有關(guān)。客戶向軟件開發(fā)團(tuán)隊(duì)闡述他想要達(dá)到的目標(biāo),以便于軟件開發(fā)團(tuán)隊(duì)能通過編碼形式向計(jì)算機(jī)解釋。
9. 避免浪費(fèi)
浪費(fèi)是軟件開發(fā)過程的主要生產(chǎn)力殺手之一。毫無必要的會議、毫無必要的要求、毫無必要的過程和毫無必要的文件成為最常見和最危險(xiǎn)的浪費(fèi)。
譯文出處:伯樂在線- 職場博客 - 程序員
譯文鏈接:http://www.jobbole.com/entry.php/996
原文:Alberto Gutierrez 翻譯:敏捷翻譯 - 李盛暉
如需轉(zhuǎn)載,但請注明原文/譯文出處、譯文超鏈接和譯者等信息,否則視為侵權(quán),謝謝合作!
it知識庫:我的10個開發(fā)原則,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。