敏捷軟件開發原則


  敏捷軟件開發原則  ----《敏捷軟件開發原則、模式與實踐》學習筆記
 
      最近在系統地學習並且有意地在工作中實踐敏捷軟件開發, 文章乍看起來,都是一些說教性、理論性,比較無聊的東西。
   但是如果靜下心來結合自己自身的經歷、思考地去閱讀,可能會發現,有的觀點確實很贊同,然而有的可能會有自己的想法。
  以下是在《敏捷軟件開發 原則、模式與實踐》一些讀書筆記,斜體字是直接摘錄於書本,非斜體字是自己的一些理解。
 
一、盡早的,持續地交互有價值的軟件來使客戶滿意。初期交付的系統功能越少,最終交付的系統的質量越好。逐漸增加功能的方式,經常地交付系統和最終質量之間有非常強的相關性。交付得越頻繁,最終產品的質量越高。
關於交付對象,這里指的交付給客戶,我們能做的不一定是交付給客戶,還可以是提交給上級、開發、產品、測試同事看一下,看是否有不合理的地方,可以及時更正。如果等到差不多完了才交付,可能出現了問題也不好改了。
關於交付的時間點,可以是軟件有一部分完整可以展示的功能即可。
 
二、歡迎需求的變化,即使到了開發后期,敏捷過程能夠駕馭變化,為客戶創造競爭力。
其實歡迎需求變化,個人覺得只是一種無奈、坦然的說法,有誰閑着沒事希望天天改需求丫。這里的意思只是說,開發軟件的時候,要努力的保持軟件結構的靈活性,當需求有變化的時候,讓系統改動最小化。
 
三、經常地交付可以工作的軟件,從幾個星期到幾個月,時間越短越好,不贊成交付大量的文檔與計划,我們關注的目標是交付滿足顧客使用的軟件。
這個和第一點是類似的,盡早、經常交互,盡早發現各自對需求理解的差異、集思廣益地提出對系統改進的意見。之前在一個公司,開發提交代碼到SVN,每天服務器會自動把提交的代碼自動編譯到開發環境,這樣就可以很方便地看到最新的系統。好的工具和流程,對推動交付也是很有幫助的。
 
四、在整個項目開發期間,開發人員和業務人員必須朝夕在一起工作。客戶、開發人員、利益的相關者,必須進行有意義的,頻繁的交互。軟件項目不像發射出去了,就能夠自動導航的武器。必須對軟件項目持續不斷地進行導航。
 
五、依靠斗志高昂的人構建項目。給他們提供所需要的環境和支持,並相信他們能夠完成任務。人是項目取得成功的重要因素,其他因素(過程、環境、管理等)都被認為是次要的,當他們對人有負面影響的時候,就要對他們進行改變。
對於這點的理解,我很認同強調人的影響,看重人的作用。過程、環境、管理,並不是沒有用,也不是隨便被拋棄,而是,不能夠一成不變,要根據人的正確反饋,不斷地被改進。因為,一定的規范、管理、約束並不是一開始就是最完善的,而且也不適用於所有的場景和項目。
 
六、在團隊內部,最有效率,也是最有效果的信息傳達方式,就是面對面交談。書面文檔會按照和軟件一樣的時間來編寫和更新,但是僅在需要的時候才這樣做。
 
七、可以工作的軟件是進度的主要度量標准。僅當30%的功能可以工作時,才確定完成了進度的30%。
 
八、敏捷過程提倡可持續地開發。出資人、開發者和用戶應該總是保持穩定的開發速度。敏捷項目不是50米短跑而是馬拉松長跑。團隊不是全速啟動,並且在開發的時候保持這個速度,相反,他們以快速,但是可持續的速度進行。
項目開發前期,就死命加班,可能堅持不了幾天就身心疲憊,這樣的話對項目也不好,這樣到后期可能變得很松散。不過在為了完成階段性目標,做階段性沖刺還是可以的。
 
九、對卓越的技術和良好設計的不斷追求,有助於提高軟件的敏捷性。高的產品質量是獲得高的開發速度的關鍵。不要制造了混亂后,對自己說,等有更多的時間的時候再來清理它。今天制造了混亂就必須今天清理干凈。
對於這點的理解,主要有兩方面:
第一、對於,花不是很長時間就能改進的東西,不要想着下次有時間再改,因為,一方面,要相信程序員的時間永遠都不夠用,另一方面,下次來改,可能會生疏了,花費的成本會更大。
第二、快就是慢。不要為了趕進度,而忽略了產品質量,連自己的那關也過不了。否則和測試人員的反復交互,反而會使得效率更低,最終只是眼前快而已,進度最終反而變得更慢。
 
十、簡單,盡量減少工作量的藝術是相關重要的。敏捷團隊不會去構建那些華而不實的系統,他們總是更願意采用跟目標一致的最簡單的方法。
這里說的有三個層面的意思,第一,是投入與產出的問題。不要花很大功夫去開發一些對於實際應用沒多大意義的功能;第二,是要多思考,看看有無更簡單的方法實現需求;第三,對於系統不要過度設計。
 
十一、最好的架構、需求和設計都源於自我組織的團隊。敏捷團隊都是自我組織的團隊,責任不是從外部分配給某個團隊成員,而是分配給某個團隊,然后由團隊來確定履行職責的最好方法。每個成員都能夠共同解決項目中涉及各個方面的問題。
在實際項目中,具體的工作可能由團隊不同的人來負責。雖然,即使是某一項工作不是由自己負責,但是自己有責任去提供幫助和提出意見。
 
十二、每隔一段時間,團隊都要總結如何更有效率地完成工作,然后相應調整自己的行為。敏捷團隊應該知道所處的環境是不斷變化的,而自己也應該隨着環境一起變化。
 
 
以上十二個原則,有一個大的原則,就是強調人、團隊和溝通的重要性。在日常的工作中,其實可能都在有意或無意地實踐着這些原則。
 
在往后的工作中,將會有計划地實踐一下以上十二個原則, 並且將實踐過程、效果記錄下來。
 
如果有人也有興趣一起踐行這些原則,歡迎一起督促、交流、探討。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM