開發過程中據說的迭代是什麼意思 ?
開發過程中據說的迭代是什麼意思
迭代
給你一個標準的定義:
在RUP中,迭代被定義為:迭代包括產生產品釋出(穩定、可執行的產品版本)的全部開發活動和要使用該釋出必需的所有其他外圍元素。
這個定義太學究氣,半天看不明白。這樣解釋可能更容易理解:
我們開發一個產品,如果不太複雜,會採用瀑布模型,簡單的說就是先需求定義,然後構建框架,然後寫程式碼,然後測試,最後釋出一個產品。
這樣,幾個月過去了,直到最後一天釋出時,大家才能見到一個產品。
這樣的方式有明顯的缺點,假如我們對使用者的需求判斷的不是很準確時——這是很常見的問題,一點也不少見——你工作了幾個月甚至是幾年,當你把產品拿給客戶看時,客戶往往會大吃一驚,這就是我要的東西嗎?
迭代的方式就有所不同,假如這個產品要求6個月交貨,我在第一個月就會拿出一個產品來,當然,這個產品會很不完善,會有很多功能還沒有新增進去,bug很多,還不穩定,但客戶看了以後,會提出更詳細的修改意見,這樣,你就知道自己距離客戶的需求有多遠,我回家以後,再花一個月,在上個月所作的需求分析、框架設計、程式碼、測試等等的基礎上,進一步改進,又拿出一個更完善的產品來,給客戶看,讓他們提意見。
就這樣,我的產品在功能上、質量上都能夠逐漸逼近客戶的要求,不會出現我花了大量心血後,直到最後釋出之時才發現根本不是客戶要的東西。
這樣的方法很不錯,但他也有自己的缺陷,那就是週期長、成本很高。在應付大專案、高風險專案——就比如是太空梭的控制系統時,迭代的成本比專案失敗的風險成本低得多,用這種方式明顯有優勢。
如果你是給自己的單位開發一個小MIS,自己也比較清楚需求,工期上也不過花上個把月的時間,用迭代就有點殺雞用了牛刀,那還是瀑布模型更管用,即使是做得不對,頂多再花一個月重來,沒什麼了不起。
迭代可以形容人嗎
週期
很多人簡單的把迭代理解為開發的分階段進行。有些專案經理會這樣說:我們打算通過4次迭代完成軟體的開發,第一次迭代,完成需求分析和軟體設計,第二次迭代,完成多少多少模組的開發,第三次,完成其他多少模組的開發,第四次,配置,部署,上線,測試,修正軟體bug。在這裡,雖然他們言必稱“迭代”,但是這樣的迭代和過去傳統的瀑布型開發有多少區別?
迭代開發是要分週期分階段地進行,但是不能認為簡單地把開發週期劃分為幾個不同的階段就是迭代。
很多人對於迭代週期有一些誤解,比如:
認為迭代只適用於開發階段,而需求分析和設計工作則不在此範圍內。
認為迭代週期可以拉得很長,比如兩個月,三個月,甚至一個季度,半年。
將需求分析,設計,開發,測試,部署,使用者反饋,修改當作完整的迭代週期,並要求在前一階段工作完全(或者大部分)完成以後再進行下一步工作(迭代)。
在一個迭代週期內,我們可以做什麼事情呢?可以說:所有的事情。如果你認為迭代需要在需求分析完成之後才能開始,或者系統整合必須在所有迭代完成之後才可以進行,你會獲得一個真正的瀑布流程開發。
一個迭代週期意味著對一些特定功能(用例)的探索。“探索”一詞可能隨情況不同而有不同的含義。對於抽象級別較高,模糊程度比較高的用例,我們需要通過和使用者的討論將它逐漸分解為更加清楚和清晰的用例。對於目前我們認為已經得到了詳細定義的需求,需要選取合適的部分進行設計和實現,通過這些部分的實現,對需求定義和技術可行性進行反饋。對那些在上次迭代中已經開發完的模組,應該儘可能快速地讓使用者提出他們的意見,以便了解是否真正解決了使用者面臨的問題,以及還有沒有可以改進的方面,再根據這些意見安排下一階段的工作。
我們是否可以在開發進行之前把需求或者設計全部弄清楚呢?我認為很難。因為通常來講,使用者對於自己的需求只有一個模糊的概念。讓我們假設一個飲食業的例子,有一天餐廳經理把你叫入辦公室說:馬上設計一個新的菜譜,這個菜譜是為某某特定人群定製的,你要讓這些人感覺色香味俱全。不過在你把配料和烹調方法都設計出來之前,我們不打算讓大廚來具體做這道菜,我們不允許失敗,所以你的設計一定要一次成功,你可以用調查問卷,使用者面談等方法獲取終端使用者的需求,但是記住:你不能去做這道菜。
這樣的事情你可能會覺得很滑稽,但是在軟體業,類似的事情人們卻認為是天經地義的。
迭代允許我們將開發本身也作為需求探索的一部分,通過使用者對已經實現功能的反饋我們和使用者都會逐漸明白什麼樣的軟體是我們最終想要開發的。所以,不要等到所有(或者大部分)的分析完了才開始開發,而是儘早對已經捕獲到的需求進行細化,儘早開發,以獲得反饋。
在安排迭代計劃時,應該指明,這次迭代的目標是什麼,在結束時應達到的里程碑是什麼。如果有任務提前達到了這個里程碑,我們可以提前結束迭代,或者順便在剩下的時間內安排其他的任務,但是要注意這種安排的合理性,不要因為這個而使得迭代週期被延長。
在一次迭代到達所設定的結束日期時,就必須審視各項任務是否達到了里程碑的要求,如果有任務沒有達到,原因是什麼,我們是否需要對需求和技術方案做出調整。對於沒有達到里程碑要求的任務,我們可以採取的辦法有兩種:
將剩餘的工作列入下一次迭代計劃中去,
將本次迭代的結束時間向後延遲,等待任務的完成
前一種辦法適合於有很大工作量沒有完成的情況,這可能也同時說明計劃的制定有問題,在制定下次迭代計劃時應該考慮對任務完成時間進行調整。後一種辦法適合剩餘工作量不是很大的情況。
通常來說,一次迭代完成以後應該有......
什麼課程值得迭代
迭代,顧名思意就是不停的代換的意思。在程式設計裡,經常用到這樣的方法,同一個變數,用不同的數值來代替,從而使得表示式變得精簡
什麼課程值得迭代?個人認為還是工程造價唄!利潤可觀
工程造價的直意就是工程的建造價格。工程計價的三要素:量、價、費。廣義上工程造價涵蓋建設工程造價,安裝工程造價,市政工程造價,電力工程造價,水利工程造價,通訊工程造價,航空航天工程等。工程造價是指進行某項工程建設所花費的全部費用,其核心內容是投資估算、設計概算、修正概算、施工圖預算、工程結算、竣工決算等等。工程造價的任務:根據圖紙、定額以及清單規範,計算出工程中所包含的直接費、間接費、利潤及稅金等等。
從事工程造價的工作人員主要涉及到的能力應包括:對工程具有較強的工程量計算能力,能編制施工圖預結算、工程量清單、造價控制價、投標報價、工程結算,熟練應用造價軟體,有一定的資料管理能力等等。
如何基於整體故事點數來計算迭代計劃
這個頭目對一代老手應該難度不大,但是對於剛接觸這遊戲的新手來說應該在這頭目上飽受煎熬。這頭目強在攻擊招式多,光是斬擊也分為兩種,沒有經驗很容易挨刀子,但是隻要死多幾次,瞭解他的攻擊模式就變得容易了。他的攻擊招式較遍向三種,一和二都是三連斬,分別在於最後一擊是下壓或是跳斬,第三招是如果你和他距離太遠時,他會先來過突進然後斬擊。前兩招的起手動作大,一看見不要急著翻滾,架起盾向後走,正常應該不會打中,到它出第三招時如果他是跳斬就晚點翻滾,下壓就早點翻滾。如果他使用突進斬擊就在他與你的距離離3個身位就翻滾。最後在他血量剩75%左右時他會使用鐳射突刺,攻擊力大還有咀咒效果,不過要中招比躲開更困難,加上出招後硬直很大,可以盡情攻擊。這頭目有容錯機會,小心應對即可。