2010-07-15 66 views
1

我是一個軟件開發團隊的成員,致力於一個小型項目。 我們認爲,我們可以在連續工作2或3個月後發佈測試版產品。哪種軟件開發方法?

由於這是我們的第一次團隊合作,我決定問一下,對於少數開發人員(少於10人)的小型項目,您會採用哪種軟件開發方法?

+0

究竟你「的開發方法」這裏是什麼意思?這有點寬泛,尤其是不知道你打算做什麼,你的團隊經驗如何...... – 2010-07-15 08:56:12

+1

嗯...也許你的意思是方法論?像敏捷,tdd,bdd還是這樣? – cRichter 2010-07-15 08:57:36

回答

6

有兩種軟件開發方法:

  1. 寫下你要做什麼,做到這一點,那麼同意,你都做到了。
  2. 開始開發東西,同意你所做的是好的,重複直到完成。

兩者都有其追隨者,並且都以各種名義反覆彈出。每一代新一代軟件開發人員(即大約每兩年一次,這是一個快速變化的行業,軟件開發人員擁有may lif一生的壽命)拒絕上一代的方法,重新發現前一代使用的方法,將其重命名爲時髦,並宣佈它是一個真實的方式。

方法之間的選擇應該取決於(a)客戶組織的文化和(b)較小程度上的供應商組織文化(即軟件開發團隊)。

因此,如果您爲一種按鈕式保守企業方法工作1,如果你向下看,看到你正在穿衝浪短褲,今天早上在你的滑板上來上班,用方法2進行。

而且,如果你已經閱讀了這個,最嚴重的一點就是在最後一個之前,即開始「選擇......」的那一個。這是一個文化/組織問題,而不是技術問題。這兩種方法已被用於許多許多成功的項目,既沒有對不成功的項目進行壟斷。

+1

我喜歡這個答案。我可能應該指出,這兩種方法可以在不同層面上使用:例如,您可以寫下總體目標並使用(2)來達到目標​​。 – 2010-07-15 14:45:07

2

這確實取決於您打算構建的內容。如果該項目將成爲你想要建立的東西,並且經常有類似Agile/Scrum的內容,那麼它將非常適合。

但它確實取決於項目是如何確定的釋放迭代之類等

1

這確實取決於您的客戶。

  • 如果客戶能接受固定 時間,固定的資源,固定質量 (100%工作的代碼),並稍微 變量的作用域,我建議選擇 敏捷方法。

  • 如果客戶不能接受上述 ,即,使用敏捷方法的前提條件 不 目前,我建議選擇任何 方法你喜歡。

重要的是你有一個方法論,學習什麼在你走的時候工作,並使用知識來調整方法。

0

不要做瀑布,這從來沒有工作,永遠不會工作。思考瀑布是一種工作方法,就像想着把頭撞在牆上一樣好,因爲即使是最堅固的牆也必須在某個時候崩潰。

我會採用合理的敏捷方法,比如Scrum(XP有點苛刻)。此外,介紹像TDD,DDD,DBC的東西,你應該沒問題。

+0

-1:瀑布已經工作了很多次。不,我不會爲@Turing Complete提供理由而證明這個陳述是正確的。 – 2010-07-15 09:33:39

+0

是的,瀑布在非技術性管理人員(和所謂的「顧問」 - 哈哈)的象牙塔的夢想中起作用。然而,它是開發軟件的最糟糕的方法,我寧願做RAD(我討厭)和牛仔風格的開發比...瀑布。 – 2010-07-15 09:35:12

+1

我見過瀑布工作。如果您能夠提前確定您將需要的內容,並且實施過程非常簡單,那麼它的運行情況相當好。其最大的弱點是它對要求的改變確實不靈活,而且它對實驗開發確實非常不利。其糟糕表現的一個原因可能在於,它所不利的情況通常比它所擅長的情況更有趣。 – 2010-07-15 14:43:13

0

我不認爲這是最好的答案,沒有更好的背景和環境的想法,但我個人正在成爲精益/看板方法的粉絲。總的來說,我發現很多敏捷/混亂的方法可能都是以開發人員爲中心的,而且有時甚至是反管理者,這有時是合適的,但並非總是如此。精益方法傾向於解決整個價值流,而不僅僅是發展本身。

您可以閱讀更多關於它:http://www.limitedwipsociety.org/