posts - 56, comments - 77, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          迭代在于我們明確的承認(rèn)信息和知識(shí)的不完備性, 不可完備性. 而項(xiàng)目的成功, 需要某種程度的完備性.

          這種認(rèn)知的局限與成功的條件之間的矛盾, 促成了人們解決這類問題的通用方法: 漸進(jìn)的試錯(cuò)法

          試錯(cuò)法參考一: http://en.wikipedia.org/wiki/Trial_and_error.

          試錯(cuò)法參考二: http://zh.wikipedia.org/wiki/%E8%AF%95%E9%94%99%E6%B3%95: 是解決問題、獲得知識(shí)常用的方法,即根據(jù)已有經(jīng)驗(yàn),采取系統(tǒng)或隨機(jī)的方式,去嘗試各種可能的答案。當(dāng)問題相對(duì)來說比較簡(jiǎn)單或范圍比較有限時(shí),試錯(cuò)的方法有 一定效果。在試錯(cuò)的時(shí)候,可以選擇一個(gè)可能的答案應(yīng)用在待解問題上,如果沒有效就選擇另外一個(gè)可能的答案接著嘗試。整個(gè)過程在出現(xiàn)一個(gè)合適的可能性時(shí)結(jié)束

          試錯(cuò)法參考三: http://zh.wikipedia.org/wiki/%E5%8D%A1%E5%B0%94%C2%B7%E6%B3%A2%E6%99%AE%E5%B0%94#.E8.AF.81.E4.BC.AA.E5.8E.9F.E5.88.99: 證偽主義應(yīng)采用試錯(cuò)法。這是指人們應(yīng)該大膽地提出假說和猜測(cè),然后去尋找和這一假說不符合的事例。根據(jù)事例對(duì)假說進(jìn)行修正,不斷重復(fù)這一過程,乃至將最初 的假說全盤否定。試錯(cuò)法對(duì)理論的修改和完善是沒有止境的,試錯(cuò)法的結(jié)果只能是一個(gè)較好的假說,但不是最好的假說。最好的假說是終極真理的代名詞,和科學(xué)精 神相悖

          試錯(cuò)法廣泛的應(yīng)用于自然科學(xué)領(lǐng)域. 迭代開發(fā)就是試錯(cuò)法在軟件開發(fā)過程方面的應(yīng)用

          不完備的信息和知識(shí), 至少包括以下幾個(gè)方面:

          1. 客戶真正的意圖

          2. 客戶業(yè)務(wù)真正的規(guī)則

          3. 客戶項(xiàng)目所面臨的約束

          4. 所采用解決方案的合理性

          5. 所采用技術(shù)架構(gòu)的合理性

          6. 所采用技術(shù)的缺陷

          7. 不可預(yù)知的變化, 包括業(yè)務(wù)規(guī)則的變化, 以及外界環(huán)境的變化, 等等

          我們只能針對(duì)當(dāng)前對(duì)以上問題的理解, 給出一個(gè)初步的解決方案, 然后所有人, 包括客戶和開發(fā)者, 根據(jù)這個(gè)方案的運(yùn)行情況, 對(duì)方案進(jìn)行批評(píng), 提出其無法滿足的約束或需求, 而回頭重新修正這個(gè)方案. 如此循環(huán)往復(fù), 直到某個(gè)可接受的錯(cuò)誤水平. (對(duì)于上面最后一條, 迭代采用的是短周期來減少變化帶來的浪費(fèi).)

          迭代的核心就暫且止于此.

          其它的一些問題, 都是目前的迭代實(shí)踐所規(guī)定的一些額外性質(zhì)造成的, 比如"固定的迭代周期", 引起的問題是: 時(shí)間盒迭代刪減任務(wù)會(huì)不會(huì)導(dǎo)致完不成原定開發(fā)計(jì)劃?

          這個(gè)問題是從太極敏捷派的FAQ中摘錄的. 對(duì)于這個(gè)問題, 太極敏捷的解釋并沒有觸及如下迭代的本質(zhì):

          1. 迭代的開發(fā)方式中, "原定的開發(fā)計(jì)劃"并不是不變的. 隨著信息和知識(shí)的逐漸完備, 我們會(huì)相應(yīng)的調(diào)整"原定的開發(fā)計(jì)劃". (太極的解釋提及了計(jì)劃的不確定性: "計(jì)劃,與計(jì)劃的實(shí)際執(zhí)行情況,是兩個(gè)不同的概念。決心不同于現(xiàn)實(shí)。所以,我們說,跟蹤、確保計(jì)劃的執(zhí)行比制定完美的計(jì)劃更重要", 其后續(xù)的思路還在確保原定計(jì)劃的實(shí)現(xiàn), 而絲毫沒有考率調(diào)整原定計(jì)劃)

          2. 一如試錯(cuò)法的結(jié)果, 迭代的最終結(jié)果不必滿足"原定的開發(fā)計(jì)劃", 只要經(jīng)的起客戶的批判即可, 而敏捷開發(fā)有其它的手段來盡可能的保證這一點(diǎn), 比如按照客戶認(rèn)可的規(guī)則安排開發(fā)的優(yōu)先級(jí), 這樣即使最后沒有完成全部特性, 但對(duì)客戶來說優(yōu)先級(jí)高的那些特性早就開始運(yùn)行, 留下一些優(yōu)先級(jí)低的特性甚至可以拋棄了. 太極敏捷居然連這一點(diǎn)都沒有提及, 反映出其對(duì)敏捷/迭代開發(fā)的孤立理解.

          另外的一些說法:

          1. 試錯(cuò), 是為了獲得反饋. 迭代過程中, 要不要做某事, 其中一個(gè)依據(jù)是需不需要那方面的反饋

          2. 迭代也為"回顧"提供了自然而然的機(jī)會(huì). 試錯(cuò)過程中獲得的信息需要總結(jié)整理歸納抽象, 學(xué)而時(shí)習(xí)之, 溫故而知新

          當(dāng)然, 以上的論述建立在試錯(cuò)法之上. 如果這一理論并不適合軟件開發(fā), 那么上面的論述都是沒有意義的. 那么我們就用試錯(cuò)法本身來檢驗(yàn)一下其是否適合軟件開發(fā):

          假定其適合, 理由是可以幫助解決以上提到的問題, 如漸進(jìn)的搞清楚"客戶真正的意圖, 客戶業(yè)務(wù)真正的規(guī)則, 客戶項(xiàng)目所面臨的約束, 所采用解決方案的合理性, 所采用技術(shù)架構(gòu)的合理性, 所采用技術(shù)的缺陷"等, 那么請(qǐng)幫忙指出其不適用的地方, 或其本身帶來的問題, 如果可能的話提出更好的解決方案.


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 城市| 双辽市| 丘北县| 永仁县| 利川市| 德惠市| 双鸭山市| 磴口县| 准格尔旗| 荥阳市| 凤台县| 保亭| 黄大仙区| 永靖县| 青阳县| 富民县| 石楼县| 新和县| 宁化县| 刚察县| 荆门市| 化德县| 白玉县| 鄂温| 公主岭市| 长岛县| 土默特左旗| 女性| 大化| 建宁县| 舒城县| 石河子市| 吴川市| 故城县| 淮阳县| 连南| 军事| 疏勒县| 晋州市| 潼关县| 连州市|