2009-11-23 83 views
3

我是敏捷的大支持者,但是我的一個朋友(他不知道敏捷但是 - 他是一個管理類型^^)問我如何去計劃和開發一個複雜的分佈式項目,帶有數據庫層,通信層,接口和集成到嵌入式設備。你會如何在這裏使用AGILE?

敏捷方法強調早期釋放和迭代的概念,但在所有必須的功能對於整個事情的工作許多相互連接組件的項目的情況下,這將是難以釋放的早期版本無需在所有組件上工作。敏捷如何幫助我的朋友?他如何最好地利用它?

回答

3

我公司的團隊面臨同樣類型的問題。我們正在構建具有大量移動部件和建築圖層的項目,這使得很難在早期創建工作產品。此外,經常需要安排專業資源或與團隊略有不同步。我們採取的一些方法如下這是具有挑戰性的,但這些方法似乎有所幫助。

構建儘可能垂直

  • 換句話說,力爭有什麼工作,最終爲儘快結束。我們通常會在9-16個月的項目中獲得幾次衝刺。
  • 您經常會發現大量的圖層可能被嘲弄或阻擋。
  • 通常,最初面向客戶的組件是佔位符。我們創造了一些有限的功能,就像客戶想要的一樣,但在最終的項目中可能會有很大的不同。這使我們能夠在系統級證明產品的其餘部分,並從系統角度提供可見性。從產品

單獨的基座結構

我們早期的衝刺經常圍繞基礎設施/架構居中。例如,線程子系統,性能監控,通信和測試框架。

  • 對待子系統作爲單獨的交付
  • 完全定義每個子系統
  • 完成(真正完整的,不只是部分實現),每個子系統
  • 負載測試的它怎麼會在環境中的每個子系統用於最終產品
+0

優秀的評論,謝謝你的洞察力。 – bluebit 2009-11-25 11:24:32

2

您的第一次迭代中,致力於建築設計,包括必要的組件的識別和它們之間的關係和溝通的定義。

一旦你已經瞭解了組件交互的清晰畫面,打造每一個的骨架。也就是說,實現僅存在通信部分的「存根」組件,其餘的功能只是不做任何事情或返回測試數據。有一個致力於此任務的意見(包括測試組件通信機制)。

然後你可以計劃迭代,以充分發揮各組分以適當的順序,使系統可以在一個有序的方式增長。

1

TDD - 使用編寫測試後,用不完整部分進行迭代。 Mock未準備好的位。聽起來很令人興奮。

0

如果不能突破大項目分成更小的部分是有用的(即啓用一些用例)對自己,敏捷可能不會幫助你很多在這個項目。你可以選擇一些技巧,如結對編程,重構等,但總體規劃已經完成了傳統的方式。

1

這是不可能的各個層需要是完整的爲它是可用通過其他層 - 例如持久層可以只對象序列到一個文件中最初,並轉換在需要時使用一個數據庫。我會考慮實現初始故事所需的每個圖層的最小值,並在系統增長時增加功能。

成長的系統這種方式意味着你只實現你需要你認爲你可能需要在未來某個不確定的時間的功能,而不是所有的功能。