軟體系統是收集使用者需求建構而成的嗎?

軟體公司的 PM(Project Manager)一向重視的是如何在不合理的開發時程下完成專案的開發。許多 PM 也認為他們認同物件導向及如 RUP/XP 的開發流程模式,認為如此他們可以縮短開發的時程。

個人最常與 PM 們討論的一個話題是:軟體應用系統是否係由使用者的需求收集而來所建構而成的?
絕大部分的 PM 的回答是:Yes!

為何問這個問題?個人發現到 PM 一定會先請 SA 訪談客戶的需求,並記錄在 Use Case 敘述內。再由 SD 針對 Use Case 敘述來找出領域物件(Domain Objects)。

在這樣的開發流程下,顯然使用者需求(Use Requirements)是重於軟體結構(Classes)的。所以,Use Case 是目的;Classes 是手段。

有沒有道理?在某種觀點及假設下,可能有道理!

只是,讓我們回想 RUP 所建議的最佳實務作法:”Use Case Driven;Architecture Centric”。

那麼,PM 既然認同 RUP 的開發模式,但是是否有仔細分辨倒底系統開發的方式是 “Use Case Driven” 或者是 “Use Case First” 呢?

有趣的問題,留待各位一起討論!