<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 59,  comments - 323,  trackbacks - 0
     2.探尋假設
      在探尋軟件開發以往的方法論背后的假設之前,首先要指出的是,這些假設很難被發現,不是說它們不存在,而是這些加上很少被看成是假設,往往作為理所當然的一部分,被排除在常規的思考范圍之外。讓我們來看幾段大家都很熟悉的文字吧。
      “大多數大型軟件項目都沒有達到預期的目標,交付推遲,預算超支,功能不完善。許多軟件項目徹底失敗了。”
        ——FDD
      “當前,軟件開發的情況并不理想。很多系統最終不能交付,或者最終交付的系統經常性地發生延期或者超出預算;系統常常不能滿足用戶的需要,其結果是不得不一遍又一遍地開發。”
        ——AM
      “許多軟件項目,或許應該說大部分軟件項目實際的開發周期比預期的要長,實際的花費比預期的要多,實現的功能比預期的要少。這造成了嚴重的質量問題。”
        ——某一本CMM的書籍
      怎么樣,是不是似曾相識?我敢肯定,你不只在一本書的序言部分,看到過類似的文字。無論這本書寫于70年代、80年代、90年代還是21世紀。情況一直都是這么“糟糕”。有趣的是,這些書都會在“痛說軟件開發現狀”之后,轉而兜售自己的方案。當然,在Brooks的《沒有銀彈》之后,他們兜售的語氣謙虛了很多。作為一個文化現象來說,這非常值得細細品味。但是,我們需要追問的是:為什么?
      難道軟件開發是全世界最難的事情嗎?為什么失敗率如此之高?如果我們在使用了層出不窮的手段之后,還是不能提高成功率,我們應該怎么辦?其實也很容易,當年我的一個老板就想出了一個絕妙的辦法,絕對簡單,就是將我自己的工作量估算乘2!我們的項目幾乎從不失敗,總是能夠在計劃時間內完成。于是我想,如果我們把全世界的軟件項目估算都乘以2的話。也許軟件開發這個行當,也能成為一個有尊嚴的職業。大家都會生活得更加幸福。
      “這實在是太過分了!”也許有人會說:“你這是自欺欺人、掩耳盜鈴、移靶就箭!”但是且慢生氣,生氣的人應該冷靜下來反思:如果目標如此難以達到,會不會是目標有問題呢?當然,事情沒有這么簡單,如果把目標直接乘2來提高成功率,全世界的老板都會發瘋的!我們要做的,是提高估算的準確性。
      “嘖嘖,還以為是什么了不得的結論呢!這個問題早就有人研究了,不就是IT度量嗎?”一定會有人站出來這么說。但是,IT度量的研究,提高了估算的準確度了嗎?思路在這里被卡住了。直到有一天,我看到了量子力學中的“測不準原理”!
      “測不準原理”告訴我們,在物理學中存在著很多對變量,當我們想要精確測量其中一個變量時,對另一個變量的測量誤差就會越來越大。但是,在軟件開發里,我們是進行估算,而不是進行測量,而且也不存在一個和工作量相對的變量,當工作量估算準確時,它會變得模糊。簡單地套用物理定律是行不通的,思路又卡住了。
      突然有一天,我問自己:“假設工作量已經估算精確到了99.9999%會出現什么情況?”“不可能!”“如果真的達到了這個精確度了呢?”我對自己窮追不舍。“那只有一種情況,就是項目已經接近完成了!”“我們估算完成時,項目接近完成,這意味著什么呢?”“這毫無意義,沒有一個項目會花這個多時間來估算,而且如果要這樣估算,估算本身要花多少時間都不知道。”停!我已經想通這個問題了。
      估算工作量也是一種工作,同樣也需要工作量。對于大多數任務來說,估算所花費的工作量,相對與總的工作量來說,幾乎可以忽略不計,或者說:為了能夠得到一個有指導價值的估算值,所花費的工作量,幾乎可以忽略。但是,對于軟件開發來說,這只是一個假設。我們假設對于軟件開發的工作量估算,同樣只需要花費極少的工作量。但事實上,當我們花費三五天時間得出結論,這個項目需要20個人月時,我們估算的誤差,可能(甚至一定)會大于200%這就是我們這個行業顯得如此失敗的原因。
      為什么這個行業與其它行業不同呢?在建筑行業,工程概預算的費用,不超過總費用的百分之一、甚至千分之一。為什么軟件項目的估算做不到這一點?因為兩個原因:
      一是由于技術的復雜性,以及這個行業技術的飛速發展(也可說尚未定型),同樣的需求,采用不同的設計,不同的技術實現,工作量相差極大。僅僅根據需求,無法估算出工作量。而隨著概要設計、詳細設計的層層分解,工作量估算的精確度的確會提高,但是對于軟件開發來說,項目也越來越接近完成了。
      二是由于需求的變動性以及不可預測性。早期的估算、設計甚至代碼,都有可能作廢。一個項目實際上重做了N遍,在軟件開發領域也是常有的事。估算的誤差,自然也就大到不可思議了。
      然而,絕大多數人沒有想過這個問題,大家都自然而然的根據最初的工作量估算,來評價以后的工作。
        工作量/人員效率=項目時間
        工作量×單位成本=項目成本
        缺陷總數/工作量=軟件質量
      我們根據最初估算的工作量,來推出項目的時間、成本和質量目標,我們假設工作量估算只花費可以忽略不計的工作量,我們依據這些目標來衡量項目的成敗,然后我們發現大多數項目都失敗了,然后我們研究技術、改進過程、尋找銀彈!最終,我們發現自己還是這么失敗!
      是到了徹底反省我們的假設的時候了。
      (注:Brooks在《人月神話》中指出了另一個重要的假設:人與月是可以互換的。)

    文章來源:http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!683.entry
    posted on 2005-11-07 23:24 讀書、思考、生活 閱讀(203) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2005年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    常用鏈接

    留言簿(20)

    隨筆檔案

    友情BLOG

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 怡红院免费全部视频在线视频| 亚洲av无码专区国产不乱码| 国产成人无码区免费网站| 亚洲一区日韩高清中文字幕亚洲| 久久精品国产亚洲av品善| 日韩免费高清视频| 美女18毛片免费视频| 亚洲精品国产高清不卡在线| 国产99久久久国产精免费| 亚洲日韩乱码中文无码蜜桃臀网站| 国产精品无码永久免费888| 亚洲综合伊人久久大杳蕉| 久久久国产精品福利免费| 亚洲色欲色欲综合网站| 无码国产精品一区二区免费式直播| 亚洲看片无码在线视频| 国产精品酒店视频免费看| 激情吃奶吻胸免费视频xxxx| 亚洲欧洲精品成人久久曰影片| sss日本免费完整版在线观看| 中文字幕不卡亚洲| 最近中文字幕国语免费完整| 久久精品国产99国产精品亚洲| 免费黄色小视频网站| 好猛好深好爽好硬免费视频| 亚洲国产成人一区二区精品区| 亚洲无砖砖区免费| 狼人大香伊蕉国产WWW亚洲| 在线亚洲精品自拍| 无人在线观看免费高清视频| 爱爱帝国亚洲一区二区三区| 亚洲成A人片777777| 国语成本人片免费av无码 | va亚洲va日韩不卡在线观看| 热久久这里是精品6免费观看| 亚洲视频手机在线| 亚洲 综合 国产 欧洲 丝袜| 69视频在线观看高清免费| 精品女同一区二区三区免费播放| 亚洲午夜福利717| 日本免费一区尤物|