www.国产麻豆,超碰调教在线黄色,亚洲无码不卡高清,欧美一区二区在线观看免费高清

項(xiàng)目管理資源網(wǎng)

您的位置:項(xiàng)目管理資源網(wǎng) >> IT通信項(xiàng)目管理

只有好代碼的項(xiàng)目能成功嗎?

2011/1/28 10:32:41 |  2201次閱讀 |  來(lái)源:網(wǎng)友轉(zhuǎn)載   【已有0條評(píng)論】發(fā)表評(píng)論

Simon Brown,集開(kāi)發(fā)者、架構(gòu)師及作家于一身,他認(rèn)為成功的項(xiàng)目需要的不僅僅是好代碼。在他的演講《好代碼是不夠的》中,Brown討論了項(xiàng)目成功所需的所有元素,從前期設(shè)計(jì)到操作文檔。

Brown認(rèn)為好代碼是一個(gè)好的開(kāi)始,但要取得成功,人們需要知道要構(gòu)建什么、要發(fā)布什么以及它可以運(yùn)作起來(lái)。

要知道構(gòu)建什么,需要一套需求。收集完需求之后,要有一個(gè)“大局觀”,軟件架構(gòu)代表了當(dāng)前對(duì)該產(chǎn)品的認(rèn)識(shí)。然后,大問(wèn)題需要被分解成更小的解決方案,其中包含了組件、組件之間的交互以及用到的服務(wù)。隨后,估計(jì)實(shí)現(xiàn)這個(gè)解決方案需要多少成本。據(jù)Brown說(shuō),所有這一切,從確定需求到做出估算,只要1-2天。這不是一個(gè)人的工作,應(yīng)該是所有直接參與的人共同完成,這樣才能群策群力。

如果做得好,一個(gè)輕量級(jí)的軟件架構(gòu)能為項(xiàng)目引入結(jié)構(gòu)——“什么是組件以及它們?nèi)绾位ハ鄿贤ā薄c指導(dǎo)方針——“源自文檔模式、模板和原則”,這能帶來(lái)一致性——“以標(biāo)準(zhǔn)的方法來(lái)解決常見(jiàn)問(wèn)題”——與清晰性——人們能知道自己的方向,因?yàn)樗小按缶钟^”。作為一個(gè)反例,Brown提到一個(gè)項(xiàng)目,其中使用了三種持久化解決方案:Spring、EJB和Hibernate。這是因?yàn)闆](méi)有人事先決定使用什么持久化框架。

接下來(lái)的步驟是確定優(yōu)先級(jí)。除非是一個(gè)小項(xiàng)目,否則不該試圖一步到位構(gòu)建并發(fā)布整個(gè)項(xiàng)目,而是應(yīng)該確定什么是最重要的,首先完成這部分。這需要完善并挑戰(zhàn)需求范圍,決定實(shí)現(xiàn)需求的一個(gè)子集,它足以滿(mǎn)足最初設(shè)想的愿景的一部分內(nèi)容。

其次是跟蹤進(jìn)度。跟蹤進(jìn)度有不同的方法,例如電子表格或看板。Brown指出,這些方法都是用來(lái)了解迭代進(jìn)行到目前為止的進(jìn)度完成情況的,它們并不跟蹤已發(fā)布的軟件。

架構(gòu)是否可以運(yùn)作起來(lái)?如果作為結(jié)果的解決方案無(wú)法如預(yù)期那樣運(yùn)作,那一切都是徒勞的。Brown認(rèn)為,對(duì)于一個(gè)可用的解決方案而言,它必須滿(mǎn)足以下要求:

  • 它能滿(mǎn)足架構(gòu)需要:功能和非功能性需求、環(huán)境約束和所采用的原則
  • 它為代碼提供了一個(gè)堅(jiān)實(shí)的基礎(chǔ),人們可以在此之上進(jìn)行構(gòu)建
  • 它為解決解決方案中試圖描述的初始業(yè)務(wù)問(wèn)題提供了一個(gè)平臺(tái)

構(gòu)建一個(gè)原型。無(wú)論架構(gòu)有多偉大,代碼看起來(lái)有多漂亮,沒(méi)人真正知道系統(tǒng)是否能令人滿(mǎn)意,是否可以擴(kuò)展。原型正是人們所需要的。原型是對(duì)概念的一個(gè)驗(yàn)證,包含系統(tǒng)的垂直切片、主要需求和基礎(chǔ)部分,剛好用于模擬實(shí)際運(yùn)作,通過(guò)負(fù)載測(cè)試將整個(gè)系統(tǒng)至于壓力之下。用于原型的代碼后期可用于生產(chǎn)環(huán)境,也可丟棄。

負(fù)載測(cè)試是這樣實(shí)現(xiàn)的,“模擬典型使用場(chǎng)景中的多個(gè)用戶(hù),并且環(huán)境越接近生產(chǎn)越好”。原型和負(fù)載測(cè)試要在項(xiàng)目的早期階段進(jìn)行,用于驗(yàn)證架構(gòu)。

源碼控制提供了:源代碼備份、代碼變更日志、恢復(fù)到不同版本的機(jī)制、經(jīng)簡(jiǎn)化的并行開(kāi)發(fā)方式,使用源碼控制是構(gòu)建解決方案中的重要一步。

自動(dòng)化測(cè)試也是必不可少的一塊。剛加入的新代碼會(huì)破壞什么東西嗎?對(duì)項(xiàng)目某個(gè)部分的變更可能會(huì)對(duì)其他部分產(chǎn)生負(fù)面影響。為了限制變更可能造成的破壞,單元測(cè)試和集成測(cè)試是必須的,否則就要在每次變更后手動(dòng)測(cè)試整個(gè)系統(tǒng)的功能。要做多少測(cè)試呢?Brown認(rèn)為,100%的測(cè)試覆蓋率是很難做到的,非常不切實(shí)際,他建議80%,覆蓋代碼最重要的部分。

自動(dòng)化構(gòu)建。代碼經(jīng)過(guò)測(cè)試后,需要在目標(biāo)機(jī)上進(jìn)行構(gòu)建和部署。但很多時(shí)候,系統(tǒng)在其他機(jī)器上無(wú)法進(jìn)行構(gòu)建,構(gòu)建腳本需要保證該系統(tǒng)可在任意目標(biāo)機(jī)上正常構(gòu)建。

Brown認(rèn)為還有一個(gè)有用的步驟,即使用持續(xù)集成。持續(xù)集成服務(wù)器能自動(dòng)從代碼庫(kù)中獲取源代碼、編譯、測(cè)試、打包并安裝,在此過(guò)程中出現(xiàn)任何錯(cuò)誤它都會(huì)發(fā)出通知。這有助于確保代碼的正確構(gòu)建,及早發(fā)現(xiàn)問(wèn)題。

  • 自動(dòng)化測(cè)試和構(gòu)建引入了一致性和可重復(fù)性。在多代碼分支上進(jìn)行并行開(kāi)發(fā)時(shí),自動(dòng)化就更加有用了。

    提取配置信息。系統(tǒng)配置信息取決于環(huán)境,最好將它放在代碼之外進(jìn)行維護(hù)。

    應(yīng)用程序的版本應(yīng)該包含在某處:在元數(shù)據(jù)中、在診斷頁(yè)面中、在日志文件中,這樣人們才能知道自己正在看哪個(gè)版本的程序。

    最后就是操作文檔。如果開(kāi)發(fā)團(tuán)隊(duì)不是支持該軟件的團(tuán)隊(duì),那么有些操作文檔是必須的,其中包含的信息涉及如何使用系統(tǒng)、如何監(jiān)控系統(tǒng)、如何管理系統(tǒng)以及有問(wèn)題時(shí)如何進(jìn)行診斷。

        項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線(xiàn)啦!快來(lái)測(cè)測(cè)你排多少名吧~

        http://m.vanceur.cn/pmqhd/index.html

    “項(xiàng)目管理生根計(jì)劃”
    企業(yè)項(xiàng)目經(jīng)理能力培養(yǎng)和落地發(fā)展方案下載>>

    分享道


  • 網(wǎng)站文章版權(quán)歸原作者所有,如有認(rèn)為侵權(quán)請(qǐng)聯(lián)系我們,將于1個(gè)工作日內(nèi)作出處理!
    網(wǎng)友評(píng)論【 發(fā)表評(píng)論 0條 】
    網(wǎng)友評(píng)論(共0 條評(píng)論)..
    驗(yàn)證碼: 點(diǎn)擊刷新

    請(qǐng)您注意護(hù)互聯(lián)網(wǎng)安全的決定》及中華人民共和國(guó)其他各項(xiàng)有關(guān)法律法規(guī)或間接導(dǎo)致的民事或刑事法律責(zé)任
    ·您在項(xiàng)目管理資源網(wǎng)新聞評(píng)論發(fā)表的作品,項(xiàng)目管理資源網(wǎng)有權(quán)在網(wǎng)站內(nèi)保留、轉(zhuǎn)載、引用或者刪除
    ·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款