軟件生產(chǎn)的3要素:功能、品質(zhì)、生產(chǎn)力,我們?cè)陧?xiàng)目開(kāi)發(fā)管理過(guò)程中所做的工作也是為了保證這3個(gè)方面。針對(duì)項(xiàng)目實(shí)施過(guò)程中的風(fēng)險(xiǎn),如何來(lái)管理和控制,筆者粗淺地談幾點(diǎn)經(jīng)驗(yàn)。 1、針對(duì)項(xiàng)目需求分析工作的風(fēng)險(xiǎn)
(1)界面原型法
應(yīng)對(duì)的風(fēng)險(xiǎn):
l 需求反復(fù)
l 用戶需求不明確,不知道做成什么樣子
l 需求理解不一致
方法:
采用HTML構(gòu)建系統(tǒng)原型,和用戶進(jìn)行講解、引導(dǎo)、討論。
優(yōu)點(diǎn):
l 需求溝通
l 需求引導(dǎo),引導(dǎo)用戶的隱含需求
l 需求確認(rèn)
l 項(xiàng)目組下階段的設(shè)計(jì)工作輸入
(2)結(jié)對(duì)分析,業(yè)務(wù)與技術(shù)人員一對(duì)一進(jìn)行需求分析
應(yīng)對(duì)的風(fēng)險(xiǎn):
l 需求理解不一致
l 溝通不順暢
方法:
借鑒結(jié)對(duì)編程做法,業(yè)務(wù)人員與技術(shù)人員一對(duì)一進(jìn)行需求分析
2、針對(duì)設(shè)計(jì)與編碼的不一致的風(fēng)險(xiǎn)
(1)模型驅(qū)動(dòng)開(kāi)發(fā)(MDD)
應(yīng)對(duì)的風(fēng)險(xiǎn):
l 設(shè)計(jì)與編碼不一致
l 各角色:架構(gòu)師、設(shè)計(jì)師、編碼人員溝通問(wèn)題
l 設(shè)計(jì)文檔更新困難,不及時(shí)
l 生產(chǎn)力不高,缺乏有效的工具
做法:基于角色、貫穿生命期的工具,設(shè)計(jì)完畢正向自動(dòng)生成代碼框架,后期對(duì)于代碼的修改可反向體現(xiàn)到設(shè)計(jì)的模型當(dāng)中。
優(yōu)點(diǎn):
l 實(shí)現(xiàn)模型與代碼的雙向同步,提高生產(chǎn)力
l 有效解決各角色的溝通
l 軟件文檔保持一致性,做到實(shí)時(shí)更新
3、針對(duì)進(jìn)度、質(zhì)量方面的風(fēng)險(xiǎn)
(1)持續(xù)集成
應(yīng)對(duì)的風(fēng)險(xiǎn):
l 在監(jiān)控過(guò)程中,每個(gè)成員的進(jìn)度都是100%,但是為什么最后卻產(chǎn)生進(jìn)度落后?缺乏一種機(jī)制來(lái)保證質(zhì)量
l 集成階段的時(shí)間長(zhǎng)、工作量大、問(wèn)題多
l 本應(yīng)早該發(fā)現(xiàn)的問(wèn)題沒(méi)有發(fā)現(xiàn),以致帶到最后階段,加大了排除BUG成本、時(shí)間
做法:以一定的頻率進(jìn)行整個(gè)系統(tǒng)的構(gòu)建、保證可執(zhí)行、自動(dòng)測(cè)試(JUNIT)。關(guān)鍵是自動(dòng)化,簡(jiǎn)單易操作:?jiǎn)我淮a源(cc)-〉代碼歸還(早期3天,中后期每天。前提:本地創(chuàng)建成功)-〉專人創(chuàng)建(每天)-〉反饋(有錯(cuò)誤,通知開(kāi)發(fā)人員修改)
優(yōu)點(diǎn):
l 有效規(guī)避遺留“尾巴”問(wèn)題,導(dǎo)致最后問(wèn)題越積越多
l 及時(shí)發(fā)現(xiàn)各模塊之間的相互影響,
l 變相地提高了生產(chǎn)力
(2)代碼走查
保證:軟件的品質(zhì)
走查重點(diǎn):
l 標(biāo)準(zhǔn)和規(guī)范
l 事務(wù)、異常、日志、安全等非功能性關(guān)鍵點(diǎn)
走查做法:
l 制定CheckList
l 質(zhì)量經(jīng)理負(fù)責(zé),全員參與
l 溝通、反饋機(jī)制
l 可以采用工具