When to Reject the Customers/Users from Participating Your SDP ?

在 Software Development Project ( SDP ) 中, 理論上在哪個時間點之後, 絕對不能再有 Users ( Customers ) 的參與 ? 這是約莫一年半以前, 我的 Advisor 問所有 Lab. 同仁的問題, 但是直到現在, 我也依舊沒有肯定的答案 ^^b

先來看看手邊幾本的說法. 當然, 這是依我的解讀做的時間點判斷及說明, 同時內容以及最後我自己的想法都侷限在 Conventional Object-Orientation Paradigm. 同時只考量 General Customer, General Software ( to-be-built ), 以及 No Changing Requirements ( during development process ).

[1] Dean Leffingwell and Don Widrig, Managing Software Requirements: A Use Case Approach, second edition, Addison Wesley, 2003

我的理解 :

  • 書中分為六個階段的 Team Skill, 我認為在 Team Skill 2 結束時也同時代表 customer 的參與告一段落.
  • 在 software GUI 部份, 書中傾向於使用 Use Case 以及 Storyboarding 解決. 鑒於內容是以 Storyboarding 方式, graphically 呈現 Use Case, 因此我還是認定為 Storyboarding 的應用, 屬於 Team Skill 2 的範圍內.
判定的時間點 :
  • After Requirement Elicitation, Feature Listing, Interviewing, Brainstorming, and Storyboarding
  • Before Use Case Diagram
[2] Steve R. Schach, Object-Oriented and Classical Software Engineering, fifth edition, McGraw-Hill, 2002

我的理解 :
  • 書中於 Requirement Phase 到 Object-Oriented Analysis Phase 之間, 特別分出了一個 Specification Phase. 在 Specification Phase 中提到 :
...this document must be clear and intelligible to the client, who probably is not a computer specialist. After all, the client is paying for the product, and unless the client believes that he or she really understands what the new product will be like...
  • 因此我認為以書中的觀點, customer 至少會參與到 specification 的制定.
  • 書中所指的 Specification Phase 事實上等同於一般說的 Analysis Phase[2], 而 Object-Oriented Analysis Phase 是作為 counterpart 存在.
  • 同時書中也提到, 在 specification 訂立之後才能進行較準確的 project time and cost estimation, 而 customer 會根據評估結果決定是否繼續委託開發. 從 project 角度來說, customer 在此時仍影響 project 的進行, 但是從 software development 的角度來說, 並未影響 software development 的各種 decisions.
判定的時間點 :
  • End of Specification Phase
  • Right after Project Time and Cost Estimation and Evaluation
[3] Eric J. Braude, Software Engineering: An Object-Oriented Perspective, Wiley, 2001

我的理解 :
  • 書中把 Requirement 分為 C-Requirement ( Customer Requirement ), 以及 D-Requirement ( Detailed Requirement ) 兩部份. 其中 C-Requirement 包含了 Use Case 的建立與撰寫, 以及 Draft User Interface Design. 此階段仍有 customer 參與.
  • D-Requirement 的撰寫雖然主要是提供 software developers 一個之後進行 design 以及 implementation 的共同基礎,但是書中也提到 D-Requirement 需要 customer 參與 validation 的工作. 但是由於書中對於 D-Requirement 的內容敘述, 甚至包含了 Classes / Objects 的辨認, 因此 customer 協助確認的應該不是全部的 D-Requirement 內容.
判定的時間點 :
  • Right after D-Requirement ( Detailed Requirement ) is released
  • Very close to the end of Object-Oriented Analysis Phase
[4] Roger S. Pressman, Software Engineering : A Practitioner's Approach, fifth edition, McGraw-Hill, 2001

我的理解 :
  • 書中提到 :
A review of the Software Requirement Specification ( and / or prototype ) is conducted by both the software developer and customer.
  • 而依據書中所述, Software Requirement Specification 是 Requirement Analysis 的產物, 因此在此 customer 的參與應該是到 Requirement Analysis 結束之後, 或是 Software Requirement Specification 的 review
判定的時間點 :
  • End of Requirement Analysis
  • Review of Software Requirement Specification

[5] 我的想法

由於我對於 OO Paradigm 底下的 Software Development, 主要的認識來自於 [1][2][3] , 因此以這些書中所提的觀點以及方法 ( Techniques ) 來回答此時間點。

我所 prefer 的時間點為, Use Case Diagram 的建立

但此時間點僅包含 Use Case Diagram 的建立, 不包含 Use Case 的 Pre-Condition, Post-Condition, 以及中間的 Event Flow, Alternative Flow 的撰寫。

我所持的理由為, Use Cases 能夠將 Scenarios 化為數個合理大小的 User Action Sets。 雖然 Use Cases 本身仍然用 nature language 描述居多, 但是比起一般的 Scenarios 描述, Use Cases 提供一個更適切的 granularity, 讓 customer 認識自己與 software 之間的互動。 而適切的 granularity 也是此時間點僅止於 Use Case Diagram 的理由。 我認為 Use Case 的內容又過於仔細, 對於一般的 Customer 來說反而可能造成困擾, 如果要求 Customer 參與 Use Case 內容的撰寫, 對 Developer 來說也會是一種困擾。

但是在 Customer 參與 Use Case Diagram 的制定時, 所提出的一些意外的要求或是 Concerns, 有可能會影響到 Developer 對於 Use Cases 內容的撰寫。

另外我認為要特別考量的一個問題是 Software GUI。 鑒於我所知道的, 在 OO Software Development, 並沒有公認的時間點來決定 customer 所 prefer 的 GUI 樣式, 但是 software GUI 又是影響 software usability 甚鉅的部份, 因此大部份情況下, 與 customer 針對 GUI 作溝通是免不了的。 因此在 software 有 GUI 的設計考量下, customer 能參與的 software development 的時間點我認為就會受到 software GUI 要在何時與 customer 取得共識的影響。 不過此時間點僅與 GUI 設計有關, 與其他部份無關。

0 意見:

Designed by Posicionamiento Web | Modified by seLain | Bloggerized by GosuBlogger | Blue Business Blogger