又適應(yīng)變化的設(shè)計,是對軟件設(shè)計高手們的一大考驗。
質(zhì)量投資
“質(zhì)量第一”是很多軟件公司的口號,而且僅僅是口號而已,你們的項目有這樣的一些問題嗎?
代碼沒有經(jīng)過簡單的冒煙測試,甚至不進行是否通過編譯的測試,就直接提交。
為了趕時間不寫設(shè)計或者寫了不能指導(dǎo)編碼的設(shè)計文檔。
開發(fā)進度推遲,測試時間被壓縮,為了保證軟件發(fā)布的時間,在不充分測試情況下交付軟件,更甚者不測試軟件,直接讓客戶測試。
開發(fā)過程中發(fā)現(xiàn)的問題,只要能不解決的就不解決,進度優(yōu)先!
測試中發(fā)現(xiàn)的易用性方面的缺陷,因不會嚴重影響使用,一律不解決!
質(zhì)量投資要求我們有零缺陷的意識,零缺陷意識要貫穿在全部的工作中,包括:
零缺陷文檔
計劃、需求、設(shè)計等開發(fā)過程中產(chǎn)生的文檔,要用一次寫好的決心來編寫,所有文檔都應(yīng)該發(fā)揮它的價值,而不是為了寫文檔而寫文檔。要讓相關(guān)的小組成員對該文檔發(fā)表意見,重視他們的意見并修改文檔。
零缺陷代碼
要用一次把代碼寫好,不讓測試發(fā)現(xiàn)缺陷的態(tài)度來寫好代碼,寫出垃圾代碼是不負責任的行為。
零缺陷發(fā)布
用質(zhì)量投資的態(tài)度對待所有缺陷,包括自己代碼產(chǎn)生的缺陷,對用戶負責,不滿足質(zhì)量要求的軟件堅決不發(fā)布。
全體小組成員都應(yīng)該同步達到零缺陷里程碑,本著一步一個腳印、不斷追求高質(zhì)量的態(tài)度來完成全部工作。
學(xué)習(xí)所有的經(jīng)驗
象Windows這樣的一些偉大的軟件,都是經(jīng)過很多人通過很長的時間做出來的,工作量之大、難度之大不亞于一些偉大的建筑工程。軟件工程與建筑工程最大的優(yōu)勢就是,如果軟件做得不好,可以推倒重來,但建筑工程就不能這樣做了。
我拿軟件工程與建筑工程比較,目的就是想強調(diào)做軟件是很強調(diào)學(xué)習(xí)的,很強調(diào)不斷改進的(當然建筑工程也重視學(xué)習(xí))。我們應(yīng)該慶幸,我們這些做軟件的要比做建筑工程的要幸福的多了,我們不太可能犯一些不可以彌補的錯誤。
我們要讓大家從自己或者別人的失敗和成功中學(xué)習(xí),要幫助小組成員再次獲得成功,捕捉和共享技術(shù)的或者非技術(shù)的最佳實踐,并想辦法讓學(xué)習(xí)制度化。
學(xué)習(xí)制度化的辦法很多,如項目總結(jié)、例會等,但要注意的是學(xué)習(xí)應(yīng)該是隨時進行的,抱著學(xué)習(xí)一切可以學(xué)習(xí)的態(tài)度來工作。
微軟的項目團隊結(jié)構(gòu)
談了微軟MSF的八大基本原理,我們來看看,微軟的團隊是怎樣組成的?
很多軟件公司的開發(fā)團隊,大部分是由一名項目經(jīng)理,若干項目成員組成,項目成員包括需求分析、架構(gòu)設(shè)計、編碼、測試等角色。
而微軟的團隊非常特別是沒有項目經(jīng)理的,由6類角色組成,分別是產(chǎn)品經(jīng)理(Product Management)、程序經(jīng)理(Program Management)、開發(fā)(Development)、測試(Test)、發(fā)布管理(Release Management)、用戶體驗(User Experience)。
各類角色負責的職責如表1所示。
微軟的團隊模型中的6種角色,不代表團隊最少要6個人組成,一個人可以兼任多種角色,也不代表每一種角色只有一個人,可以多個人公擔一個角色。
微軟這種團隊結(jié)構(gòu)與我們常見的團隊結(jié)構(gòu)相比,有這樣的特點:
扁平對等的團隊結(jié)構(gòu),強調(diào)每個人的價值。這種團隊結(jié)構(gòu),是“賦予小組成員權(quán)力”、“清晰的責任和共同的職責”、“推動開放式溝通”這三個原理的表現(xiàn)。這樣的結(jié)構(gòu),讓每位小組成員都感受得到自己的重要性,項目的成敗與每位成員直接相關(guān)。這樣的結(jié)構(gòu)更容易調(diào)動每位成員的工作積極性,更容易讓團隊激發(fā)工作熱情,產(chǎn)生更多的創(chuàng)造性成果。
微軟很重