Bài giảng chương 3 Thu thập yêu cầu
Trang 1Requirements Elicitation
Or
Requirement gathering
Trang 2 Thu thập yêu cầu (Requirement elicitation) là gì?
Các kỹ thuật thu thập yêu cầu
Chọn lựa kỹ thuật thu thập yêu cầu
Quy tắc nghiệp vụ và chính sách
Quản lý mối quan hệ khách hàng
Trang 4 Elicitation là quá trình xác định yêu cầu và làm giảm sự khác biệt giữa các nhóm có
liên quan để rút ra các yêu cầu đáp ứng
được nhu cầu của tổ chức hay dự án trong khi vẫn giữ được các ràng buộc
Có rất nhiều kỹ thuâṭ elicitation khác nhau
Trang 5 Elicitation là sự tương tác với stakeholders để nắm bắt được nhu cầu của họ.
Analysis là tinh chỉnh (refinement) nhu cầu của stakeholder thành các đặc tả sản phẩm chính thức
Trang 6 Requirements elicitation is perhaps the
most difficult, most critical, most
error-prone, and most communication-intensive aspect of software development
Elicitation chỉ có thể thành công thông qua mối quan hệ hợp tác giữa customer và đội development
Trang 10 Document Sampling
Interviewing
Survey and observation
Questionaires
Workshop and Brainstorming
JAD (Joint Application Development)
sessions
Ba kỹ thuật phổ biến nhất là Document sampling, interviewing và questionaires
Trang 11 Assignment 13: Document Sampling
◦ Nhóm???
Assignment 14: Questionaires
Trang 12 Là kỹ thuật trực tiếp và đơn giản
Câu hỏi context-free có thể giúp hoàn
thành các phỏng vấn bias-free interviews
Then, it may be appropriate to search for undiscovered requirements by exploring solutions.
Tập hợp lại 1 số nhu cầu chung sẽ tạo
“requirements repository”để dùng trong suốt dự án
Questionnaire không thể thay thế cho
interview.
Trang 13• Interview cá nhân hay nhóm các người dùng là
nguồn thu thập yêu cầu kiều truyến thống cho cả sản phẩm thương mại cũng như các hệ thống
hiểu được tại sao hệ thống phải thực hiện các
chức năng này
• Đôi khi các yêu cầu của người dùng phản ánh các quy trình nghiệp vụ đã lỗi thời hay không hiệu
quả nữa và không nên đưa vào hệ thống mới
Trang 14 Là câu hỏi có thể dùng cho bất kỳ dự án nào đang khảo sát
Là các câu hỏi chung về bản chất của dự án và môi trường mà sản phẩm sẽ được dùng
Được dùng trong mỗi giai đoạn khác nhau của cuộc phỏng vấn
Trang 15 Opening Questions: khi bắt đầu phỏng vấn,
câu hỏi context free sẽ giúp khởi đầu cuộc phỏng vấn và vượt qua được các lúng túng ban đầu.
Redirection: có thể được dùng để chuyển hướng
phỏng vấn khi nội dung cuộc đối thoại ra ngoài
chủ đề hay quá sâu không cần thiết, đưa cuộc đối thoại về lại vị trí trung lập để hướng đến chủ đề mong muốn
Closing: dùng để kết thúc cuộc phỏng vấn “Is
there anything else you would like to tell me?” cho người được phỏng vấn (interviewee) cơ hội
được chủ động và chia xẽ các thông tin khác
Trang 16 Phải chuẩn bị một danh sách các câu hỏi
context free trước khi phỏng vấn Có thể đặt cùng 1 hay 2 câu hỏi cho người được phỏng vấn (interviewee) để tìm ra điểm khác biệt
Thông qua câu hỏi context free để giúp người tham gia phỏng vấn có hiểu biết chung
Không bận tâm vào câu trả lời “right/wrong” Nhiều câu hỏi dùng gây ấn tượng hơn là để thu nhận dữ liệu, dùng để thu thập chi tiết
hơn yêu cầu đang khảo sát
Trang 17Nên dành thời gian để:
Establish Customer or User Profile
Assessing the Problem
Understanding the User Environment
Recap the Understanding
Analyst’s Inputs on Customer’s Problems
Assessing Your Solution (if applicable)
Trang 18 Có thể là kỹ thuật năng động nhất để thu thập yêu cầu
Tập hợp tất cả các stakeholder chính cùng với nhau trong 1 giai đoạn tuy ngắn nhưng rất tập trung
Sử dụng facilitator có kinh nghiệm từ bên ngoài trong quản lý yêu cầu có thể bảo
đảm cho sự thành công của workshop.
Brainstorming là phần quan
trọng nhất của workshop.
Trang 19 Bảo đảm có sự tham gia của các
stakeholder phù hợp
Công tác hậu cần (Logistics)
◦ Cố và tránh luật Murphy’s law
◦ Bao gồm cả du lịch, giải trí và ăn nhẹ buổi chiều (“afternoon sugar filled snacks.”)
Tài liệu đầu buổi hội thảo (Warm-up
materials)
◦ Thông tin của buổi hội thảo
◦ Out-of-box thinking preparation
Trang 20• Để dễ dàng giao tiếp, nên sử dụng từ ngữ
của miền ứng dụng thay vì bắt khách hàng hiểu các thuật ngữ máy tính
• Nên đưa các thuật ngữ nghiệp vụ vào
glossary để các thành viên cùng dùng
chung các định nghĩa
• Customer nên hiểu là việc thảo luận về chức năng không hẳn là 1 nhiệm vụ phải có trong sản phẩm
Trang 21• Kỹ năng để dẫn dắt các cuộc thảo luận phân
tích yêu cầu phải có được từ kinh nghiệm, tập huấn phỏng vấn, hỗ trợ nhóm, giải quyết xung đột,
• Người phân tích phải khảo sát cẩn thận (probe) nhu cầu thực sự của khách từ 1 loạt các yêu
cầu mà khách hàng đề ra
– Hỏi "why" nhiều lần
– Hỏi các câu hỏi mở (open-ended question) để giúp hiểu được quy trình nghiệp vụ hiện hành của người dùng và để thấy hệ thống mới có thễ cải thiện việc thực thi như thế nào
– Điều tra tìm hiểu (Inquire) những thay đổi xảy ra cho người dùng khi hệ thống mới được đưa vào sử dụng
– Thử đóng vai trò người tập sự (apprentice) học hỏi từ người dùng chính.
Trang 22• Người phân tích yêu cầu (Requirements
analyst) thường tham gia các hội thảo phân tích yêu cầu
• Facilitator đóng vai trò chính trong việc lên kế hoạch hội thảo, chọn người tham dự, dẫn dắt
người tham dự để kết thúc thành công hội thảo.
• Khi đội bắt đầu các phương pháp mới để phân tích yêu cầu nên có một facilitator ngoài đội
hướng dẫn các workshop khởi đầu, nhờ đó các analyst có thể góp phần nhiều hơn vào các cuộc thảo luận
Trang 23 Xác lập 1 phong cách chuyên nghiệp và mục tiêu rõ ràng cho cuộc họp
Bắt đầu và kết thúc cuộc họp đúng giờ
Xác lập và nhấn mạnh các quy tắc của cuộc họp.
Giới thiệu mục tiêu và lịch trình của cuộc họp
Điếu hành cuộc họp và giữ cho mọi người luôn
quan tâm theo dõi
Tạo điều kiện khi cần biểu quyết nhất trí nhưng tránh tham gia vào.
Bảo đảm mọi stakeholder đều có quyền phát biểu góp ý trong cuộc họp
Kiểm soát các hành vi gây rối và không phù hợp
Trang 24 Xây dựng lịch trình (agenda) trước cho buổi hội thảo và công bố nó cùng với các tài liệu chuẩn bị trước của workshop.
Giữ ổn định cho buổi hội thảo rất quan
trọng, cố gắng theo đúng lịch trình, nhưng cũng không nên tuân theo nó quá cứng
nhắc, nhất là khi đang có thảo luận sôi nổi
Đặt ăn trưa (light working lunch)
Trang 25 Cư xử lịch thiệp và vui vẻ
◦ Không nên “attack” thành viên khác.
◦ Không nên diễn thuyết nhiều quá.
◦ Đừng quay lại muộn sau khi giải lao
Thẻ phạt (Workshop tickets)
◦ Cấp cho mỗi stakeholder một trong 3 loại thẻ phạt sau: đi muộn, gian lận (“cheap shot”) , phát biểu dài dòng (“soap box”)
◦ Facilitator cũng có thể bị nhận thẻ phạt.
◦ If you do not have a ticket create a fund to add
to, like $1 to pot for after workshop activities.
Trang 26 Establish ground rules
Trang 27 Quản lý thời gian
◦ Khó bắt đầu lại sau nghỉ
giải lao và ăn trưa.
◦ Stakeholders quan trọng
thường quay lại muộn
Giành quyền phát biểu
quá lâu,
Thiều dữ liệu từ
stakeholders
Phát biểu tiêu cực, hành
động nhỏ nhen, gây gỗ
sau khi ăn trưa
Facilitator phải theo dõi thời gian nghỉ giải lao và phát bất kỳ ai đến muộn,
Mỗi người chỉ được 5 phút để phát biểu
Facilitator khuyến khích mọi người sử dụng 5 phút được phát biểu và ủng hộ các sáng kiến.
Dùng vé phạt (“Cheap Shot Tickets”) và buộc trả chi phí
Nên tổ chức ăn nhẹ buổi trưa, giải lao buổi chiều, sắp xếp lại chỗ ngồi
Trang 28 For [target end user]
Who wants/needs [compelling reason to
buy]
The [product name] is a [product category]
That provides [key benefit].
Unlike [main competitor],
The [product name] [key differentiation]
Trang 29• Thường được dùng để phân tích tìm các yêu cầu ban đầu của stakeholder đối với sản phẩm
Phương pháp này được thực hiện với nhiều
stakeholders hay customers và các phiên giao tiếp này thường được dẫn dắt bởi 1 facilitators có kinh nghiệm, mỗi phiên (session) thường kéo dài tối đa 1 hay 2 ngày
• Mục tiêu của brainstorming session là đưa ra
các ý tưởng mới hay các tính năng của sản
phẩm trong 1 thời gian rất ngắn
Trang 30 Khi xác định ý tưởng, điều quan trọng là phải tránh xung đột, e.g., một thành viên chê bài ý tưởng của người khác Nếu có thành viên lâu niên (senior) tham gia
session thì điều quan trọng là giữ cho họ không được đe dọa các thành viên ít kinh nghiệm hơn họ
Trang 31Vai trò của facilitator rất quan trọng, quyết định session có thành công hay không?
Trang 32 Mục tiêu và thời gian của brainstorming
session cần phải được thỏa thuận trước bởi tất cả các thành viên, tốt nhất là ngay trước khi bắt đầu session
Session nên bắt đầu với việc tự do đưa ra
các ý kiến, tạo thành 1 tập hợp các kiến
nghị về sản phẩm Nên dùng “sticky notes” và dán vào bảng
Trang 34• Việc dùng bảng có thể giúp nắm bắt được yêu cầu của stakeholder rõ ràng và chặt chẽ hơn
• Có 2 loại bảng hay được dùng:
– Decision table
– State table
Trang 35• Bảng quyết định (Decision table) thông
dụng nhầt khi:
– Tập các điều kiện là rời rạc, có thể được xác định bằng “yes” hay “no,”
– Hành động sẽ thực hiện khi các điều kiện thỏa mãn
– Tập các rule khi tập các điều kiên là duy nhất và tương ứng với mỗi rule là 1 hành động
Trang 36 Mỗi hàng biều diễn một condition, mỗi cột biểu diễn 1 rule, i.e, Một điều kiện và 1 tập các hành động tương ứng
Khi cần phân tích bản phác thảo các yêu
cầu lúc đầu của stakeholder thì bảng quyết định được dùng rất hiệu quả để nắm bắt các quy tắc nghiệp vụ (business rule)
Trang 38• Được dùng khi đối tượng đang khảo sát có thể có các trạng thái khác nhau ở các thời điểm
khác nhau và các sự kiện đơn giản nhưng rõ
ràng nào đó có thễ kích khởi việc đổi từ trạng thái này sang trạng thái khác
• State machine: là 1 đối tượng mà việc chuyển đổi trạng thái chỉ dựa vào các sự kiện rời rạc và số trạng thái của đối tượng đã biết trước
• Ví dụ: bảng người nộp thuế (taxpayer) không phải là bảng trạng thái vì chỉ có 1 trạng thái
duy nhất là “about to pay taxes.”
Trang 39 State tables chỉ ra hành vi của state
machine, thường có 1 trạng thái khởi đầu và một tập các trạng thái mà đối tượng sẽ trải qua và cuối cùng là trạng thái exit thành
công hay 1 trong các trạng thái “error” Mỗi lần thay đổi trạng thái đều có liên quan đến
1 hay nhiều sự kiện (event)
Trang 40Button
Trang 41• Một số phương pháp điều tra được dùng rất
nhiều để đánh giá các yêu cầu thị trường, mối quan tâm về sản phẩm.
• Khi số lượng khách hàng tương đồi lớn, có thể thực hiện thống kê trên kết quả điều tra đề đo lường mức độ quan tâm của khách hàng đối với các tính năng của sản phẩm
• Một trong các phương pháp điều tra thông dụng nhất để phân tích mối quan tâm của khách
hàng là Kano modeling.
Trang 42 Cung cấp ba biến để đo lường mối quan tâm của khách hàng:
• One-dimensional quality
• Expected quality
• Attractive quality
Trang 43 One-dimensional (hay linear quality) được áp dụng ở những nơi mà tính năng của sản phẩm tăng tuyến tính cùng với 1 số ngữ
cảnh nào đó của tính năng đó Ví dụ tính
tiết kiệm điện năng của tủ lạnh, nếu tính
năng này càng hiệu quả thì khả năng khách hành đặt mua càng nhiều
Trang 44 Expected quality là tính năng bắt buộc phải có đối với sản phẩm nào thànnh công trên thị trường
Attractive quality là tính năng không
được mong đợi nhưng bổ sung vào yếu tố
tâm lý (emotional appeal) của sản phẩm Ví dụ camera trong mobile là attractive quality trong nhiều năm trước nhưng bây giờ là
expected quality trong hầu hết các thị
trường
Trang 45 Một đo lường khác là yêu tố văn hóa Ví dụ, ở Mỹ hầu hết các khách hàng đều muốn
việc mua xe ô tô được chuyển giao tự động, trong khi đó ở châu Âu việc chuyển giao tự động là bình thường
Kano modeling được chấp nhận rộng
rãi;một số công cụ quản lý requirements
engineering có sẵn chức năng Kano
analysis
Trang 46Kano model
Trang 48 JAD được như 1 kỹ thuật để phát triển yêu cầu của 1 hệ thống và trong các giai đoạn đầu của dự án phần mềm
Mục đích: tập hợp MIS và người dùng cuối trong cơ chế của 1 workshop, để cùng
thống nhất (consensus) với nhau các yêu cầu của hệ thống
Trang 49 Bằng cách kết hợp các workshop và nhấn
mạnh tinh thần cộng tác (spirit of
partnership)
Bằng cách kết hợp công nghệ và nhu cầu
nghiệp vụ trong 1 quy trình thống nhất, lặp lại và hiệu quả
JAD giúp thu thập yêu cầu hệ thống nhanh hơn, chính xác hơn các phương pháp cổ điển
giảm 1 cách đáng kể thời gian, chi phí và lỗi cho dự án
Trang 50 Liên quan đến nhiều nhóm người dùng khác nhau
Rất quan trọng đến sự thành công trong
tương lai của tổ chức
Là dự án mới của tổ chức
Có trở ngại trong dự án cũ hay mối quan hệ giữa hệ thống và tổ chức
Trang 53 Là người của tổ chức khách hàng và có quyền quyết định tối cao về dự án (CEO, người lãnh đạo dự án)
Facilitator làm việc với sponsor để khởi
động dự án, nhưng sponsor mới là người quyết định chính, không phải là facilitator
Trang 54 Nhận trách nhiệm cao nhất về các chức năng của hệ thống
Giải quyết các xung đột về chính sách bằng cách đưa ra các quyết định cuối
Công bố kết quả của quy trình JAD
Xác lập vision cho dự án
Bảo đảm cho đội dự án tiếp cận và làm việc được với các chuyên gia nghiệp vụ
Tạo ra sự hợp tác và hỗ trợ của khách hàng đối với đội dự án
Trang 55 Làm cho khách hàng tin tưởng vào quy trình JAD
Trong lúc định hướng JAD, sponsor quan tâm đến cả đội, biểu lộ thái độ hợp tác và hỗ trợ
Sponsor cũng tỏ ra tin cậy vào facilitator,
giảm thiêu được sự đối kháng ban đầu của đại diện khách hàng
Sponsor chỉ là thành viên của JAD và thường không tham dự vào các cuộc họp JAD, chỉ
cần ghé qua để biểu lộ sự quan tâm hợp tác
Trang 56 Vai trò của facilitator
Vai trò của scribe
Assignment??