
軟體開發有時候就像是練武功一樣,都是講求「力從地起」,從最底層 (認識) 出發;舉個例子來說,如果今天要開發的是一個:建立訂單,這樣的工作,該怎麼開始呢?
首先一定要了解這項功能在真實世界中的 “使用場景 (資訊)"。為什麼呢?因為軟體系統是基於 “服務" 開發的,如果沒有得到這個資訊就開始開發功能,很多時候需要仰賴祖先保佑或是通靈這類的技能,但是開發不是玄學,想要有效地開發,就不能脫離真實世界的資訊。
- 什麼是訂單?(What)
- 訂單為什麼要建立?(Why)
- 訂單什麼時候會被建立?(When)
- 訂單在什麼地方被建立?(Where)
- 訂單被誰建立?(Who)
- 訂單怎麼被建立?(How)
What
先從了解定義開始,因為不同的場景或是時空背景對於相同的名詞會有著不同的涵義或是定義,如果貿貿然以自己過去經驗就對訂單下了定義,很可能會發生定義不清楚或是溝通混亂的狀況。
Why
每件工作都需要視價值而決定其所需要的資源。明白這個訂單為什麼要建立,以及建立後帶來的 “商業價值" 是好的開始,因為有了估價才知道該怎麼規劃,避免錯失重要商業機會或是過度投資。
When/Where
一個概念,除了本身的定義和價值之外,他在時間與空間這兩個人類可以輕易認知的維度上,如果有多加的描述和著墨,就能夠輕易地讓團隊對於這個概念的理解變得更加地具體。
Who
誰?那些腳色?那些群體?可以操作或著是接觸到訂單。隨著人的加入,讓這個概念更加地鮮活,團隊不僅知道了這個概念在什麼時機和地點出現,並且還能夠知道是誰讓這件事情發生,有如說故事一般,故事變得更加立體飽滿。
How
上述的內容都是為了讓團隊更加理解概念,但是回到軟體開發上,怎麼達成任務還是得靠 “How" 裡的資訊,因此,這個部分是不能少的,否則只有了解而沒有 “正確" 的方式去達成任務,也無法被稱之為成功。
總結
軟體開發對於 “學習" 是敏感且高效地,它並非無跡可尋,只需要刻意練習就能達成。

發表留言