欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

軟件開發(fā)基本原則(一)—— 策略和因素

admin
2012年4月9日 10:30 本文熱度 3128

前 言


  前段時間一直在寫技術(shù)方面的文章,現(xiàn)在想轉(zhuǎn)轉(zhuǎn)口味,從軟件開發(fā)過程和項(xiàng)目管理的角度來談?wù)撥浖_發(fā)。本座也知道,從這兩個角度來談?wù)撥浖_發(fā)對談?wù)撜邅碚f是非常冒險(xiǎn)的一件事情,它不像技術(shù),對就對錯就錯,有一個客觀的評判標(biāo)準(zhǔn),別人想噴你也得自己先好好研究等拿到了足夠的論據(jù)才能噴,但開發(fā)過程和項(xiàng)目管理就不同了,別人僅憑一點(diǎn)點(diǎn)所謂的管理經(jīng)驗(yàn)甚至是主觀推斷就能噴得你體無完膚,搖搖欲墜 ~ 因?yàn)闆]有什么所謂的事實(shí)標(biāo)準(zhǔn)與放之四海皆有效的軟件開發(fā)過程和項(xiàng)目管理方法。保守估計(jì),100個人中至少有150種想法。本座也深知其中的兇險(xiǎn),因此避重就輕,從基本原理談起,宏觀的角度闡述相關(guān)問題,盡量減少中彈的機(jī)會。歡迎大家暢所欲言 ^_*


  注:本文大量圖片和素材來自《Rapid Development》(Steve McConnell 1996)




 


1 概 述


  時間 -- 成本 -- 質(zhì)量(或特性)是評價(jià)軟件項(xiàng)目成敗的三個關(guān)鍵指標(biāo),這三個指標(biāo)之間相互影響和制約,形成了所謂的“項(xiàng)目管理三角形”。要提高質(zhì)量或增加特性意味著成本和時間的增加,或兩者都增加;要在時間不變的前提下縮減開發(fā)成本或成本不變的前提下縮減時間則意味著質(zhì)量的下降或特性的削減。


 



 圖 1-1 項(xiàng)目管理三角形


 


  上述分析其實(shí)只是理論上的“理想平衡”狀態(tài)。現(xiàn)實(shí)工作中往往出現(xiàn)的情形是:要么時間超過計(jì)劃,要么成本超過預(yù)算,要么質(zhì)量達(dá)不到要求,要么三個指標(biāo)都達(dá)不到預(yù)期。


  典型例子:


  由于客戶的壓力需要盡量縮減開發(fā)時間,由于企業(yè)間的競爭和盈利壓力需要盡量節(jié)約成本,因此需要一個人做兩個人的工作,一個月做兩個月的工作,同時壓縮需求分析、設(shè)計(jì)、測試、評審和項(xiàng)目會議等活動。可想而知,即使軟件的構(gòu)建階段能夠按時完成,但做出的軟件質(zhì)量是難以保證的。更糟糕的還在后面:由于質(zhì)量的低劣,構(gòu)建階段結(jié)束后對系統(tǒng)進(jìn)行集成測試時,很多問題就會暴露出來:對某些需求的理解有誤差,導(dǎo)致這部分功能要重新分析、設(shè)計(jì)、編碼和測試;架構(gòu)設(shè)計(jì)缺乏整體思維導(dǎo)致系統(tǒng)不同模塊各自為政,產(chǎn)生大量重復(fù)的難以維護(hù)的代碼;編碼太倉促導(dǎo)致一大堆的Bug;溝通不暢順導(dǎo)致模塊接口不兼容……從而項(xiàng)目被帶入了修改無限循環(huán)地帶,即使勉強(qiáng)上線發(fā)布,修改還是一直持續(xù),直至最后,沒有人再敢接近這套代碼,對這個項(xiàng)目談虎色變。


  軟件開發(fā)項(xiàng)目有其自身規(guī)律和原則,只有遵守其原則并付諸相應(yīng)的實(shí)踐才可能使項(xiàng)目健康穩(wěn)定地前進(jìn)。本文講述的是軟件開發(fā)的基本原則,它是通用的,幾乎適用于所有的軟件開發(fā)項(xiàng)目。不同項(xiàng)目可以根據(jù)自身特點(diǎn)在原則的指導(dǎo)下定義相應(yīng)的項(xiàng)目開發(fā)實(shí)踐。




 


2 策略和因素


2.1 總體策略


  要避免混亂低效的開發(fā),就要求每個人能夠放棄他們自己的一些壞習(xí)慣,通過采取以下四種策略實(shí)現(xiàn)快速開發(fā):


  1、 避免典型錯誤


  2、 打好開發(fā)基礎(chǔ)


  3、 管理風(fēng)險(xiǎn),避免災(zāi)難發(fā)生


  4、 采用面向進(jìn)度的實(shí)踐



 圖 2.1-1 快速開發(fā)的四跟支柱


  典型錯誤:是指一些經(jīng)常被許多人使用的無效的開發(fā)實(shí)踐,如:不現(xiàn)實(shí)的預(yù)期,缺乏計(jì)劃,功能蔓延和銀彈綜合癥等。將在第3章詳細(xì)講解。 


  開發(fā)基礎(chǔ):是指項(xiàng)目開發(fā)過程中管理、技術(shù)、質(zhì)量保證等方面行為和活動,如:計(jì)劃編制,需求管理和技術(shù)回顧等。將在第4章詳細(xì)講解。


  風(fēng)險(xiǎn)管理:是指對有可能影響項(xiàng)目的風(fēng)險(xiǎn)進(jìn)行評估和控制。將在第5章討論進(jìn)度計(jì)劃相關(guān)的風(fēng)險(xiǎn)。 


  面向進(jìn)度的實(shí)踐有以下三類:





    • 面向速度的實(shí)踐:可以提升開發(fā)速度,幫助你更快的交付軟件
    • 面向進(jìn)度風(fēng)險(xiǎn)的實(shí)踐:可以降低計(jì)劃風(fēng)險(xiǎn),幫助你的項(xiàng)目平穩(wěn)推進(jìn)
    • 面向可視化的實(shí)踐:可以提高進(jìn)程的可視化程度,幫助你掌握項(xiàng)目動態(tài)


圖 2.1-2 面向進(jìn)度的實(shí)踐


       圖2.1-1所示的前三根柱子為可能的最佳進(jìn)度提供了最重要的支撐,雖然可能不是最理想的,但卻是最需要的。也就是說,即使不借助于面向進(jìn)度的實(shí)踐方法,也可能實(shí)現(xiàn)較優(yōu)化的項(xiàng)目進(jìn)度;但是,如果僅僅依賴面向進(jìn)度的實(shí)踐卻不可以支撐可能的最佳進(jìn)度計(jì)劃。



圖 2.1-3 僅僅依賴面向進(jìn)度的實(shí)踐不足以支撐最佳進(jìn)度計(jì)劃


2.2 軟件開發(fā)的四維


  每個軟件項(xiàng)目都有四個重要的維:



  • 人員:完成任務(wù)要么快,要么慢
  • 過程:優(yōu)化人員的工作效率,或者浪費(fèi)人員的時間
  • 產(chǎn)品:以自我完善的形式定義,或者阻礙人員達(dá)到最好效果的形式定義
  • 技術(shù):促進(jìn)或者阻礙開發(fā)的實(shí)現(xiàn)


圖 2.2-1 開發(fā)速度的四維


2.2.1 人員


  研究數(shù)據(jù): 



       人件極大地影響著生產(chǎn)效率,任何關(guān)注提高生產(chǎn)效率的組織首先必須有一套良好的人員激勵、團(tuán)隊(duì)合作、員工選擇及培訓(xùn)機(jī)制。


       發(fā)揮人員最大潛能,縮短項(xiàng)目周期的方法:


1、 項(xiàng)目成員的選擇


五個原則:



  • 用更少更好的人
  • 使任務(wù)與人員的技能和動機(jī)相匹配
  • 幫助人員自我實(shí)現(xiàn),而不是強(qiáng)制地把他推到他最有經(jīng)驗(yàn)或最需要他的崗位上
  • 人員選擇應(yīng)強(qiáng)調(diào)人員之間的互補(bǔ)與協(xié)調(diào)性
  • 盡快排除或替換不稱職的人員

  2、 團(tuán)隊(duì)組織結(jié)構(gòu)


  人員的組織方式對人員的工作效率有很大影響,調(diào)整項(xiàng)目團(tuán)隊(duì)以使之與項(xiàng)目規(guī)模、產(chǎn)品特點(diǎn)以及進(jìn)度目標(biāo)相匹配。特定的軟件項(xiàng)目也可以從適宜的專門組織中受益。


  3、 人員激勵


  人員激勵能激發(fā)人的動力,從而付出額外的努力工作;它適用于不同組織、不同項(xiàng)目和不同人員。人員激勵是達(dá)成快速開發(fā)的最具潛力方法。


2.2.2 過程


  研究數(shù)據(jù):


  Hughes Aircraft、Lockheed、Motorola、NASA、Raytheon和Xerox等組織通過對開發(fā)過程的改進(jìn)將產(chǎn)品上市時間縮短了一半,降低成本、減少錯誤為原來的1/3~1/10


  過程是指軟件開發(fā)生命周期中定義的一系列工作流程和活動的集合。可以概括為以下三類:



  • 基本過程:包括獲取過程、供應(yīng)過程、開發(fā)過程、運(yùn)作過程、維護(hù)過程和管理過程
  • 支持過程:包括文檔過程、配置管理過程、質(zhì)量保證過程、驗(yàn)證過程、確認(rèn)過程、聯(lián)合評審過程、審計(jì)過程以及問題解決過程
  • 組織過程:包括基礎(chǔ)設(shè)施過程、改進(jìn)過程以及培訓(xùn)過程

  忽略過程容易造成工作效率低下,工作目的交叉重復(fù),產(chǎn)品質(zhì)量難以保證等問題;另一方面,如果過程過于嚴(yán)格、過于官僚同樣會挫傷人員的積極性,或者由于執(zhí)行過程的成本過高而影響實(shí)際的工作效率。


  組織可以對現(xiàn)有的過程進(jìn)行裁剪和調(diào)整,制定出適合特定項(xiàng)目的過程;或者可以為項(xiàng)目從頭開始定義過程。無論是裁剪過程或是定義過程,應(yīng)該把關(guān)注點(diǎn)放在以下幾個方面:


  1、 避免返工


  軟件項(xiàng)目節(jié)省時間一個最直接的方式就是確定過程,避免重復(fù)工作。如果在項(xiàng)目最后階段改變需求,就可能不得不重新設(shè)計(jì)、編碼和測試;如果直到系統(tǒng)測試階段才發(fā)現(xiàn)設(shè)計(jì)有問題,就可能不得不扔掉已經(jīng)細(xì)化的設(shè)計(jì)和編碼。


  2、 質(zhì)量保證


  質(zhì)量保證有兩個目的:



  • 確保交付的產(chǎn)品能夠達(dá)到可接受的質(zhì)量水平
  • 在各階段以最少的時間和成本代價(jià)查出錯誤

  應(yīng)盡早在錯誤發(fā)生的時候就查出來,錯誤在產(chǎn)品中停留的時間越長,清楚錯誤所花費(fèi)的時間和成本就越多。質(zhì)量保證是任何開發(fā)過程中必不可少的部分。


  3、 開發(fā)基礎(chǔ)


  一系列的軟件工程實(shí)踐活動形成了開發(fā)基礎(chǔ),如:分析、設(shè)計(jì)、構(gòu)建、集成和測試等。在過程中對開發(fā)基礎(chǔ)加以關(guān)注,并定義良好的工作規(guī)范和任務(wù)集合能防止項(xiàng)目失控。


  4、 風(fēng)險(xiǎn)管理


  與進(jìn)度相關(guān)的風(fēng)險(xiǎn)管理是開發(fā)過程必要的組成部分。風(fēng)險(xiǎn)管理雖然不能直接提高開發(fā)速度,但它是避免項(xiàng)目災(zāi)難的有效實(shí)踐。


  5、 資源目標(biāo) 


  資源包括人力資源、環(huán)境資源和軟硬件資源等。優(yōu)化資源的調(diào)配有助于提高生產(chǎn)率。


  6、 生命周期計(jì)劃


  生命周期計(jì)劃是基本的管理計(jì)劃,有助于確定軟件項(xiàng)目要進(jìn)行的活動集合和資源分配。每種周期模型都有其適用范圍和缺點(diǎn),為項(xiàng)目選擇適當(dāng)?shù)纳芷谀P湍苡行岣吖ぷ餍驶蚪档晚?xiàng)目風(fēng)險(xiǎn)。


  



圖 2.2.2-1 純瀑布模型


 



圖 2.2.2-2 瀑布模型的另一種形式——鮭魚生命期模型


  



圖 2.2.2-3 編碼修正模型(一種不規(guī)范的模型)


 



 圖 2.2.2-4 螺旋模型


 



 圖 2.2.2-5 生魚片模型


 



圖 2.2.2-6 包含子項(xiàng)目的瀑布模型


  



圖 2.2.2-7 能夠降低風(fēng)險(xiǎn)的瀑布模型(對需求分析和架構(gòu)設(shè)計(jì)階段采用螺旋模型)


  



圖 2.2.2-8 漸進(jìn)原型模型


 


 


圖 2.2.2-9 階段交付模型


 



圖 2.2.2-10 面向進(jìn)度模型


  



圖 2.2.2-11 漸進(jìn)交付模型


 



圖 2.2.2-12 面向開發(fā)工具的設(shè)計(jì)模型


 





  7、 面向客戶開發(fā)


  誰是客戶?


  對客戶的理解取決于場合,可能是項(xiàng)目委托人,最終用戶,市場人員或者老板。


  現(xiàn)代軟件開發(fā)非常關(guān)注客戶的需求與期望,開發(fā)出合符產(chǎn)品規(guī)格的軟件只是完成了一半工作,另一半是幫助客戶配置出產(chǎn)品能夠?qū)崿F(xiàn)的功能,而實(shí)現(xiàn)這些功能所花費(fèi)的時間通常遠(yuǎn)遠(yuǎn)多于確定紙面上的產(chǎn)品規(guī)格所需要的時間。


  將自己站在客戶的角度考慮問題是避免大量返工的最好方法。同時應(yīng)該建立有效的客戶溝通渠道,合理控制客戶的期望值。


 


2.2.3 產(chǎn)品


  在軟件開發(fā)的四維中,最切實(shí)的維是產(chǎn)品維。對產(chǎn)品規(guī)模和產(chǎn)品特性的關(guān)注,意味著巨大的縮短計(jì)劃進(jìn)度的機(jī)會。削減了產(chǎn)品功能通常就可以縮短產(chǎn)品開發(fā)周期。


  1、 產(chǎn)品規(guī)模  


  產(chǎn)品規(guī)模是對開發(fā)進(jìn)度影響最大的一個因素。構(gòu)建軟件所需的工作量的增長比產(chǎn)品規(guī)模的增長要快得多,并且增長是不成比例的,所以產(chǎn)品規(guī)模的縮小將大大提高開發(fā)速度。將中等規(guī)模的軟件削減一半通常可以使工作負(fù)荷削減2/3。


  2、 產(chǎn)品特性


  產(chǎn)品的一些非功能性需求或額外關(guān)注點(diǎn)會影響設(shè)計(jì)的復(fù)雜度和構(gòu)建的工作量,如對性能、穩(wěn)定性、可維護(hù)性和可擴(kuò)展性等要求很高的產(chǎn)品比沒有這些特性要求的產(chǎn)品需要更長的開發(fā)周期。


 


2.2.4 技術(shù)


  從使用低效的工具轉(zhuǎn)為使用高效的工具是提高開發(fā)速度的快捷方法。選擇有效的工具并管理好由此帶來的風(fēng)險(xiǎn)也是提高開發(fā)速度的方法。


該文章在 2012/4/9 10:30:55 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved