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

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

          這種認(rèn)知的局限與成功的條件之間的矛盾, 促成了人們解決這類問(wè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: 是解決問(wèn)題、獲得知識(shí)常用的方法,即根據(jù)已有經(jīng)驗(yàn),采取系統(tǒng)或隨機(jī)的方式,去嘗試各種可能的答案。當(dāng)問(wèn)題相對(duì)來(lái)說(shuō)比較簡(jiǎn)單或范圍比較有限時(shí),試錯(cuò)的方法有 一定效果。在試錯(cuò)的時(shí)候,可以選擇一個(gè)可能的答案應(yīng)用在待解問(wèn)題上,如果沒(méi)有效就選擇另外一個(gè)可能的答案接著嘗試。整個(gè)過(guò)程在出現(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)該大膽地提出假說(shuō)和猜測(cè),然后去尋找和這一假說(shuō)不符合的事例。根據(jù)事例對(duì)假說(shuō)進(jìn)行修正,不斷重復(fù)這一過(guò)程,乃至將最初 的假說(shuō)全盤否定。試錯(cuò)法對(duì)理論的修改和完善是沒(méi)有止境的,試錯(cuò)法的結(jié)果只能是一個(gè)較好的假說(shuō),但不是最好的假說(shuō)。最好的假說(shuō)是終極真理的代名詞,和科學(xué)精 神相悖

          試錯(cuò)法廣泛的應(yīng)用于自然科學(xué)領(lǐng)域. 迭代開(kāi)發(fā)就是試錯(cuò)法在軟件開(kāi)發(fā)過(guò)程方面的應(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ì)以上問(wèn)題的理解, 給出一個(gè)初步的解決方案, 然后所有人, 包括客戶和開(kāi)發(fā)者, 根據(jù)這個(gè)方案的運(yùn)行情況, 對(duì)方案進(jìn)行批評(píng), 提出其無(wú)法滿足的約束或需求, 而回頭重新修正這個(gè)方案. 如此循環(huán)往復(fù), 直到某個(gè)可接受的錯(cuò)誤水平. (對(duì)于上面最后一條, 迭代采用的是短周期來(lái)減少變化帶來(lái)的浪費(fèi).)

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

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

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

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

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

          另外的一些說(shuō)法:

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

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

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 朝阳区| 保德县| 武陟县| 米林县| 湘乡市| 滨海县| 馆陶县| 松阳县| 通城县| 安岳县| 丁青县| 潼南县| 德阳市| 达州市| 鄢陵县| 沂南县| 石台县| 翁牛特旗| 北宁市| 精河县| 噶尔县| 丹棱县| 六安市| 皋兰县| 广丰县| 陵水| 汕头市| 左权县| 新兴县| 科技| 平昌县| 长宁区| 郴州市| 太白县| 鸡东县| 商城县| 凭祥市| 桐梓县| 新和县| 汉中市| 铜梁县|