軟件開發有最佳方法嗎?

曾志恒   2016年8月4日 0 則評論

工欲善其事,必先利其器《論語·魏靈公》

要做好一項工作,工匠需要最好的工具論語

軟件方法是指運用選定的流程技術來提升軟件開發工作的品質,從而減少缺陷,最終實現更短的交付時間和更高的價值。一種軟件方法常被宣稱比其他任何方法都優越,但這始終會引發無休止的爭論. 我必須說,並不存在一種最佳的開發方法,不同的方法適合不同的專案情境。什麼方法最好,取決於方法是為誰而設、在何種情況下、為何目的等;說沒有任何一種方法對所有軟件開發者都最佳,其實也就是說,不同的方法對不同的團隊或不同性質的專案才是最佳的。

格雷迪·布奇對此表示:

「如果你想建造一間狗屋,基本上你可以從一堆木材、一些釘子和幾件基本工具(例如鎚子、鋸子和捲尺)開始。幾個小時內,你很可能會完成一間功能合理的狗屋……如果你想建造一棟高樓辦公大樓,則需要進行大量規劃……你只是負責開發和部署這棟建築的更大團隊中的一員,因此團隊需要各種圖紙和模型來相互溝通……」

你會對一個小型網路應用和一個NASA太空探測器採取相同的作法嗎?很可能不會。你會對六人團隊和六十人團隊採取相同的作法嗎?同樣地,很可能也不會。正如斯科特·安伯所指出的,不同的情境顯然需要不同的方法。並不存在放諸四海皆準的軟件開發解決方案,事實上,設計師需要擁有廣泛的工具可供使用,了解每種工具的優缺點,並能快速決定在特定情境下最適合應用的工具,以實現理想的作業流程.

Leave a Reply