價值感
敏捷建模(AM)的價值觀包括XP(極限編程)的四個價值觀:溝通、簡單、反饋和勇氣,此外,它還延伸了第五個價值觀:謙遜。
互聯網是壹張神奇的大網,軟件框架也是壹個模型。如果妳真的想做,妳可以來這裏。這個技能的起始號是187,中間號是三零,最後號是14250。按順序組合就能找到。我想說的是,除非妳想做或者懂這方面,如果只是湊熱鬧,那就別來了。
敏捷開發是針對傳統瀑布開發模式的弊端,以提高開發效率和響應能力為目標的壹種新的開發模式。除了原則和實踐,模式也很重要。學習模式及其應用可以幫助妳在更深的層次上理解敏捷開發。
連接
建模不僅可以促進團隊中開發人員之間的交流,還可以促進團隊和項目涉眾之間的交流。
簡單的
畫壹兩個圖表,而不是幾十行甚至幾百行代碼。這樣,建模成為簡化軟件和軟件(開發)過程的關鍵。這對於開發者來說非常重要——簡單,容易發現新的想法,並且隨著妳理解的加深,可以很容易的改進。
反饋
肯特·貝克在《極限編程》中解釋得很好:“過度自信是編程的職業病,反饋是它的藥方。”通過圖表交流妳的想法,妳可以很快得到反饋並根據建議采取行動。
謙遜而不張揚
最優秀的開發者都有謙遜的美德,他們總是意識到自己不是全知的。事實上,無論是開發者還是客戶,甚至所有的項目涉眾,都有自己的專業領域,都可以為項目做出貢獻。壹個有效的方法是假設參與項目的每個人都有相同的價值,都應該受到尊重。
原則
敏捷建模(AM)定義了壹系列核心原則和輔助原則,為軟件開發項目中的建模實踐奠定了基礎。其中壹些原則是從XP借鑒來的,在《極限編程詳解》中有詳細描述。而XP中的壹些原理都是來源於眾所周知的軟件工程。重用的思想隨處可見!基本上,本文對這些原則的闡述主要集中在它們如何影響建模工作;這樣,我們就可以從另壹個角度來看待這些借鑒自XP的原理。
核心原則
◆崇尚簡單。
當妳從事開發時,妳應該提倡最簡單的解決方案是最好的解決方案。不要過度構建
敏捷開發
(過度構建)妳的軟件。用AM的話說,如果妳現在不需要這個額外的功能,就不要加到模型裏。要有勇氣:現在不需要對系統進行過度建模,只需要基於現有的需求進行建模,然後在未來需求發生變化時重構系統。盡可能保持模型簡單。
◆擁抱變化
需求是壹直在變的,人們對需求的理解也是壹直在變的。在項目過程中,項目幹系人可能會改變,新人會加入,老人會離開。項目涉眾的觀點也可能改變,妳努力的目標和成功標準也可能改變。這意味著項目環境是隨著項目的進展而不斷變化的,所以妳的開發方法必須能夠反映這壹現實。
妳的第二個目標是可持續性。
即使妳的團隊已經向用戶交付了壹個工作系統,妳的項目仍然可能失敗——滿足項目投資者的需求,包括妳的系統應該足夠健壯以適應未來的擴展。正如阿利斯泰爾·考克伯恩經常說的,當妳參加軟件開發比賽時,妳的第二個目標是為下壹場比賽做準備。可持續性可能指的是系統的下壹個主要版本,或者您正在構建的系統的操作和支持。要做到這壹點,妳不僅要構建高質量的軟件,還要創建足夠的文檔和支持材料,以保證接下來的比賽能夠有效地進行。妳要考慮很多因素,包括妳現有的團隊能否參加下壹場比賽,下壹場比賽的環境,下壹場比賽對妳的組織的重要性。簡單來說,妳在發展的時候,要能想象未來。
◆增量變化
與建模相關的壹個重要概念是,妳不必壹開始就準備好壹切。其實就算妳想這麽做,可能性也不大。而且,妳不必把所有的細節都包含在模型中,妳只需要足夠多的細節就可以了。沒有必要壹開始就試圖建立壹個包羅萬象的模型。妳只需要開發壹個小模型,或者總結模型,打好基礎,然後慢慢完善模型,或者在不需要的時候丟棄。這是增加的想法。
◆投資最大化
妳的項目投資人需要投入時間、金錢、設備等資源,才能開發出符合自己需求的軟件。投資人要能選擇最好的投資方式,要求妳的團隊不要浪費資源。此外,他們在決定投入多少資源方面擁有最終發言權。如果這些資源是妳自己的,妳希望妳的資源被濫用嗎?
◆有目的的建模
對於他們自己的輸出,比如模型、源代碼和文檔,許多開發人員要麽擔心它們是否足夠詳細、太詳細,要麽擔心它們是否足夠正確。妳不應該無意義的建模,妳應該先問妳為什麽要建立這個輸出,為誰建立。和建模相關,也許妳應該多了解軟件的某壹方面。也許妳需要和高層管理人員交流妳的方法,以保證項目的順利進行。也許妳需要創建壹個描述系統的文檔,以便其他人可以操作、維護和改進系統。如果妳連自己為什麽做模特,為誰做模特都不知道,為什麽還要繼續擔心?首先妳要確定建模的目的和模型的受眾,然後保證模型是正確的,足夠詳細。壹旦模型實現了它的目標,您就可以完成您的工作並專註於其他任務,例如編寫代碼來測試模型的操作。這個原則也可以應用於改變現有的模型:如果妳想做壹些改變,也許是壹個眾所周知的模型,妳應該有正確的理由來進行改變(也許是為了支持壹個新的需求,或者是為了確保簡單性而進行重構)。這個原則的壹個重要含義是,妳應該了解妳的聽眾,即使是妳自己。比如妳是給維護人員建模,他們到底需要什麽?500頁厚的詳細文檔,或者10頁的工作概述夠不夠?妳不知道?去和他們談談,看看妳想要什麽。
◆各種型號
開發軟件需要使用多種模型,因為每個模型只能描述軟件的壹個方面。“要發展今天的業務,我們應該
敏捷開發
是的,我們需要什麽樣的模型?考慮到當今軟件的復雜性,妳的建模工具箱應該包含了很多有用的技術(輸出列表請參考AM的建模神器)。重要的是,妳不必為壹個系統開發所有的模型,而應該根據系統的具體情況選擇壹些模型。不同的系統使用不同的模型。比如像家裏的修理工作,每壹項工作都不需要妳使用工具箱裏的每壹件工具,而是壹次使用壹件工具。例如,妳可能更喜歡壹些工具。同樣的,妳可能更喜歡某個型號。有多少建模工件可用?如果妳想知道更多關於這方面的細節,我在面對UML時列出了UML的相關部分。如果妳想了解更多,妳可以參考白皮書《對象入門——敏捷建模技術介紹》。
成功
適應變化的環境
為了實現敏捷的成功——交付最好的軟件來支持業務——軟件專家也可以參考這些規則。
自由
專註於妳的工作,交付正確的軟件,而不是被別人的憤怒所影響。
分享經驗
沒有統壹的模型來構建壹個完美的軟件開發過程。但是在這個領域,敏捷技術加上持續的應用和改進,是可以取得敏捷成功的。