敏捷建模:增強溝通和理解

發表于:2014-02-17來源:酷勤網作者:不詳點擊數: 標簽:敏捷建模
敏捷建模:增強溝通和理解.我們都看過有關項目失敗的統計信息[1],也可能親自遭遇過失敗。大多數軟件項目都逃脫不了失敗的命運。思考一下,我們會發現導致項目失敗的方式有(顯然這個列表并不詳盡!): 技術上的:

  我們都看過有關項目失敗的統計信息[1],也可能親自遭遇過失敗。大多數軟件項目都逃脫不了失敗的命運。思考一下,我們會發現導致項目失敗的方式有(顯然這個列表并不詳盡!):

  技術上的:

  解決方案不能滿足項目需求(可伸縮性、性能、可靠性、成本等)

  由于一些技術難題,我們不停推遲最后期限(或者靠增加成本保證期限),直到項目發起人對項目失去信心并撤資

  工作方式上的:

  團隊不理解提供的需求

  提供的需求并不正確

  如果我們把這個問題抽象到一個高層次的視圖,可以發現理解問題并形成解決方案是有困難的。

  不過這個視圖過于簡化。從問題得出解決方案,我們不應該把這個過程看成是信息的單向流動,也絕不能把它看成是一次性、瀑布式的過程。這種做法我們先前都見過,它的進展并不順利。

  那來更新一下視圖,我們發現問題和解決方案之間互有信息流,而且需要迭代。

  現在的認知已經清楚一些了,不過它仍然很簡單。讓我們更進一層。我們都需要認識到,開發是一項團隊活動。我們會有多個利益相關者,負責設計、開發、部署和運營的人也不少。

  這樣我們對這種情形有了更為真實的認識。不過值得思考的空間還是很大。雖然我們力求有一個本地協作的團隊,但事實上我們的工作是分布式、網絡化的。

  總結一下這個過程,會發現項目的成功受限于我們的如下能力:

  1. 理解

  a. 我們了解問題領域么?

  b. 我們是否通曉解決方案領域?

  c. 我們知不知道兩個領域之間該怎樣轉換?

  2. 溝通

  a. 利益相關者能不能把需求傳遞給確定解決方案的那些人?

  b. 確定解決方案的人在彼此溝通時能不能把解決方案的細節描述清楚?

  c. 確定解決方案的人能把挑戰和替代方案準確地告訴利益相關者么?

  此外,還要認識到一個棘手的問題,就是我們需要處理地理和時間的問題(比如工作地點和時區)。

  解決這些問題的方法有很多,它們也能增加項目成功的勝算。但我們應該從哪里開始呢?從敏捷的一些基本理念(宣言、原則和部分常識)入手是個不錯的主意。

  與其把錢砸在一堆工具上(我敢肯定這種投入非??捎^!),并試圖采用命令方式和全方位的流程,還不如讓我們用不同的方法。讓我們更重視人、溝通、互動,來應對變化、交付軟件。怎么才能用這種方法給人們提供最好的支持呢?

  一種常被忽視、低估或誤解的關鍵技術是建模的使用——尤其是我們開始采用敏捷方法之后。在反對重量級的流程和以工具為中心的開發過程時,建模也受到了牽連。讓我們花幾分鐘時間來澄清一下……

  我們先統一一下對建模的定義。簡單說來,建模是對現實的簡化。就是這樣,不過如此。它并不意味著要用特定的符號、工具和流程。我們只是想研究復雜的東西,讓其中的一些部分易于理解。正如他們所說,有時候你是見木不見林。不必要的細節反而會讓情況更加難以理解。最好還是隱藏那些不必要的細節,只專注于具體情況的重要方面。

  如果對建模的定義達成一致了,那我們就深入一步,考慮下敏捷建模吧。利用敏捷建模,我們可以用一種敏捷的方法去借助模型進行理解和溝通。很抱歉在這里進行了循環定義,但這很容易讓我們提出問題:“使用模型的時候,我們怎么采用敏捷方法?”

  和一般的敏捷開發一樣,我們用一套價值觀、原則和實踐來進行指導,以便盡可能地敏捷。敏捷建模方法的重點有:

  敏捷建模遵循敏捷宣言和原則。正因為如此,敏捷建??梢允且环N實踐,你可以把它添加到你的敏捷工具箱里。

  模型能用來溝通和理解。

  我們力爭用簡單的工具創建簡單的模型。擁抱簡單。

  我們知道需求是變化的,因此我們在創建模型的時候要擁抱變化。

  我們的重點是交付軟件,而不是交付模型。模型能帶來價值的時候,我們就使用它們。如果模型沒有價值、不能加速軟件的交付,那我們就不創建它們。

  我們只保留需要的模型。如果模型完成了它的使命,我們就可以把它扔掉。這能讓我們輕裝上陣,而不會陷入繁忙的工作。

  我們使用多種模型。我們使用模型時會考慮不同的角度和抽象層次,還有不同的讀者。對于我們創建出來的所有模型,我們都知道它的讀者是誰、要達成什么目標。要是我們還沒理解目標,我們就不會創建模型。

  根據具體情況、讀者和目標的不同,我們會結合著用非正式和正式的模型。比如說,一個模型可以由多個簡單形狀組成,用來說明系統的隱喻,也可以用UML的類圖。

  總結

  我們創建軟件解決方案時,建模有助于我們進行溝通和理解。因為在交付軟件解決方案的時候,溝通和理解是最關鍵的兩個環節,所以不應該忽略建模這一有價值的工具。

  消除對建模的誤解吧,把它融匯到你的敏捷工作當中。敏捷建模遵循敏捷價值觀和原則,應該成為敏捷工具箱里的實踐之一。敏捷建模成為工具箱的一員后,會提高項目成功的勝算!

原文轉自:http://www.kuqin.com/software-engineer/20120422/320094.html

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97