最近看《敏捷武士》一書,書中關(guān)于敏捷軟件開發(fā)的方法和原則不僅適用于軟件開發(fā)阁簸,也適用于生活、工作哼丈、學(xué)習(xí)等各個方面启妹。
為什么需要敏捷?
因為這世界變化太快削祈,客戶的需求在發(fā)生飛速的變化翅溺,商業(yè)模式也從大魚吃小魚升級為快魚吃慢魚。以前開發(fā)一個軟件前客戶可能會給出10個主要需求髓抑,開發(fā)過程中這些需求都不會發(fā)生變更咙崎,軟件投入使用后的2-3年才會更加新的需求升級軟件。我們都熟悉的Windows操作系統(tǒng)就是這樣的開發(fā)模式吨拍。
互聯(lián)網(wǎng)應(yīng)用(APP)的興起改變了這種開發(fā)模式褪猛。消費者希望需求一提出來就能像對阿拉丁神燈許愿一樣立刻被滿足,因此我們手機上APP幾乎每周都在升級更新羹饰。這種面向普通消費者的應(yīng)用開發(fā)思維又轉(zhuǎn)過來影響了面向企業(yè)的伊滋,大型商業(yè)軟件開發(fā)模式。
最終队秩,現(xiàn)在所有的應(yīng)用開發(fā)都要求以敏捷的模式盡快給出0.1版本笑旺,然后在此基礎(chǔ)上不斷進行升級、迭代馍资,不斷豐富和完善筒主,最終形成高質(zhì)量的、有競爭力的鸟蟹,不斷滿足最終用戶需求的產(chǎn)品乌妙。
敏捷的定義
敏捷:盡早地、持續(xù)地交付有價值的內(nèi)容建钥。
敏捷的核心
實現(xiàn)敏捷方法的核心是根據(jù)最終目標制定一個長期的藤韵、可分解的、可分階段執(zhí)行的計劃熊经。就好比我們想在半年內(nèi)減肥20斤泽艘,那最好制定一個最小以周為單位的半年計劃欲险,定好每周的鍛煉量、希望減去的重量等匹涮。這樣就能在實現(xiàn)短期效果的基礎(chǔ)上盯荤,確保長期目標的實現(xiàn)。
敏捷的方法
1.將大任務(wù)分解為小任務(wù)焕盟。
任務(wù)分解是解決一切大問題的基礎(chǔ)和秘訣,生活中隨處可見這樣的例子宏粤。學(xué)習(xí)學(xué)習(xí)就是最典型的例子脚翘。學(xué)校傳授知識有明確的學(xué)期目標和學(xué)年目標,學(xué)生畢業(yè)時達到什么樣的水平绍哎,就是一個階段學(xué)習(xí)的最終目標来农。
2.一個周期內(nèi)專注最重要的事。
在一個迭代周期內(nèi)崇堰,比如一周沃于,明確最重要的任務(wù)是什么,然后將所有的精力和資源都投入到重要任務(wù)的完成和實現(xiàn)上海诲。也就是說在單個周期內(nèi)一定要做減法繁莹,這樣才能集中精力把大事。
3.每個周期都交出可工作的代碼
這個方法的核心是要有一套完善的測試系統(tǒng)特幔、流程和工具咨演,寫出的代碼可以立刻、隨時進行全面的測試蚯斯,這樣才能確保交出的代碼是可工作的薄风,可投入生產(chǎn)使用的。制定計劃的SMART原則也有同樣的道理拍嵌。即我們制定的計劃要可衡量的遭赂,比如每周完成幾篇文章,每周通過何種考試横辆,每周的平板支撐必須堅持多少分鐘以上等撇他。
4.隨時獲得用戶反饋
敏捷開發(fā)如同開車,需要及時同用戶交流溝通龄糊,獲取用戶的反饋逆粹,這樣才能及時調(diào)整方向或計劃,從而確保整個過程朝著正確的方向前進炫惩。
5.允許變更計劃
有一句老話叫“計劃沒有變化快”僻弹,敏捷開發(fā)也好,工作任務(wù)也好他嚷,學(xué)習(xí)任務(wù)也罷蹋绽,都會面臨因各種原因造成的計劃改變芭毙。這一條最重要的是有計劃發(fā)生改變的心理準備,并為計劃改變留出一定的時間和資源卸耘。
敏捷的原則
1.需求是收集不完的
軟件開發(fā)前是不可能將所有的需求都收集完整退敦,所以只要了解到最核心的需求,已經(jīng)相關(guān)資源大致就位后蚣抗,就可以軟件的開發(fā)了侈百。這樣做的目的是可以盡快開始應(yīng)用開發(fā)的過程。同樣道理翰铡,在日常其他工作中也不需要把所有的準備工作都做好钝域,做完善,再開始一個項目锭魔。信息時代需要的是集中精力例证,小步快跑,快速迭代迷捧,快速升級织咧。
2.所有的需求最后都是會發(fā)生變化的
這個原則在任何時代都使用,只是在信息時代能把這個變化看得更加的清晰漠秋。
3.總會有任務(wù)超時或超預(yù)算
這也是讓我們面對變化有足夠的心理準備笙蒙,正如西游記里悟空最后說,世界本來就是不完美的庆锦,所以也沒有所謂完美之事手趣。不完美就是完美。
個人總結(jié):
敏捷只不過是字面上的意思而已肥荔,真正重要的是采用正確的方法绿渣,朝著正確的目標持續(xù)地前進。敏捷方法是時代發(fā)展變快的產(chǎn)物燕耿,它和寧靜致遠并無相悖之處中符。找準備方向,以平和的心態(tài)誉帅,采用敏捷的方法論可以幫助我們走得更好和更遠淀散。