Kĩ sư yêu cầu

Mọi sinh viên phần mềm đều biết về vòng đời phát triển phần mềm. Chương trình Khoa học máy tính dạy điều đó và mọi người quản lí dự án và người phát triển đều biết rằng họ phải tuân theo các pha vòng đời. Dù bạn là người phát triển mới vào nghề làm việc trên dự án đầu tiên hay là người phát triển có kinh nghiệm, bạn bao giờ cũng tuân theo vòng đời. Ít nhất, theo lí thuyết nhưng trong thực hành, mọi người có thể không phải bao giờ cũng theo nó. Khi họ không có thời gian, họ bỏ qua một pha. Khi dự án bị chậm, người quản lí dự án ra lệnh cho tổ bắt đầu viết mã, bỏ qua pha thiết kế hay nhảy qua pha kiểm thử. Ngay cả khi họ tuân theo các pha vòng đời, họ không kết thúc hoàn toàn nó. Từng pha chấm dứt với việc tạo ra tài liệu hay sản phẩm để ghi lại công việc và quyết định đã được thực hiện. Những tài liệu này phải được kiểm nghiệm về tính đầy đủ trước khi bắt đầu pha tiếp nhưng phần lớn các tổ thường vội vàng đi tiếp thay vì hoàn thành pha tương ứng.

Vòng đời phát triển bao giờ cũng bắt đầu với nhu cầu khách hàng. Đây là lí do tại sao bạn bắt đầu dự án phần mềm. Không có khách hàng, không có dự án. Hiểu nhu cầu của khách hàng là hoạt động quan trọng nhất của dự án phần mềm. Tất nhiên, một số khách hàng thạo việc giải thích nhu cầu của họ nhưng một số lại không. Phần lớn khách hàng sẽ giải thích các vấn đề doanh nghiệp của họ và muốn tổ giải quyết chúng. Để làm điều đó, tổ dự án phải để thời gian để hiểu vấn đề doanh nghiệp nhưng phần lớn các tổ phần mềm lại bỏ qua sự kiện này. Họ lẫn lộn điều khách hàng nói là yêu cầu thực. Không hiểu rõ nhu cầu của khách hàng mà vội phát triển phần mềm là lí do then chốt tại sao dự án phần mềm thường thất bại. Tổ dự án không biết rằng khách hàng thường diễn đại nhu cầu của họ theo thuật ngữ doanh nghiệp của họ, thỉnh thoảng họ trộn lẫn điều họ cần với điều họ muốn. Thỉnh thoảng họ thậm chí trộn lẫn điều họ muốn với giải pháp họ tin sẽ giải quyết được cho vấn đề của họ.

Image: Internet

Để chấm dứt lẫn lộn này, tổ dự án phải có kĩ sư yêu cầu hay người phân tích doanh nghiệp làm việc với khách hàng để hiểu vấn đề của họ và làm tài liệu chúng trong “Tài liệu yêu cầu khách hàng.” Đây KHÔNG phải là bản Đặc tả yêu cầu phần mềm (SRS) như nhiều người phát triển thường nghĩ. Bằng việc viết ra điều khách hàng nói, kĩ sư yêu cầu chứng tỏ việc hiểu về yêu cầu như được khách hàng phát biểu. “Tài liệu yêu cầu khách hàng” này chỉ là bằng chứng rằng nhu cầu khách hàng đã được thu thập và được hiểu. Điều này cho khách hàng cảm giác thoải mái rằng họ đã được lắng nghe và rằng tổ phần mềm có tri thức để làm việc trên giải pháp. “Tài liệu yêu cầu khách hàng” phải được kiểm điểm, phân tích, kiểm ngiệm và chấp thuận bởi khách hàng trước khi nó được biến đổi thành bản “Đặc tả yêu cầu phần mềm” (SRS) điều được viết cho tổ phát triển. Đây là kết quả của pha yêu cầu và chỉ khi nó được kiểm nghiệm đầy đủ và được chấp thuận, tổ mới có thể tiến sang pha tiếp.

Hoạt động kiểm nghiệm yêu cầu là mô tả về cái được sản xuất ra và cách nó sẽ làm việc để đảm bảo rằng tổ hiểu điều khách hàng cần. Thỉnh thoảng điều quan trọng là phát triển bản mẫu ở pha này để cho các yêu cầu có thể dễ dàng được hiểu bởi cả người dùng và người phát triển. Bản mẫu có thể đơn giản là dãy các màn hình được tạo ra cho người dùng thấy hay một ứng dụng nhỏ để trình bày một quan niệm về cách phần mềm sẽ được xây dựng. Điều quan trọng là ở chỗ có thảo luận giữa những người phát triển và khách hàng để phát biểu chính xác các yêu cầu và thoả thuận về cái gì sẽ được sản xuất ra.

Kĩ năng làm việc với khách hàng là kĩ năng quan trọng nhất mà nhiều người phát triển không có. Thảo luận với khách hàng để hiểu nhu cầu của họ và làm tài liệu về các nhu cầu khách hàng không phải là nhiệm vụ dễ dàng. Việc phân tích điều khách hàng nói và phân biệt giữa điều họ cần và điều họ muốn là kĩ năng khác mà nhiều người phát triển không có. Biến đổi các yêu cầu doanh nghiệp của khách hàng thành đặc tả yêu cầu phần mềm là kĩ năng khác mà ít người có. Không may, phần lớn các chương trình đào tạo khoa học máy tính chỉ hội tụ vào tri thức lập trình bỏ qua các hoạt động vòng đời khác. Ngay cả vai trò của kĩ sư yêu cầu (cũng được gọi là người phân tích doanh nghiệp, người phân tích hệ thống) thậm chí không được nhắc tới trong sách giáo khoa trong khi các công ti vẫn mong đợi người phát triển phần mềm hay người quản lí dự án thực hiện chức năng này. Ngày nay chỉ ít chương trình kĩ nghệ phần mềm dạy kĩ năng này. Câu hỏi của tôi là tại sao một vai trò quan trọng mà có thể xác định ra thành công của dự án lại không được dạy kĩ hay không được biết rõ?

Enlish version

Tác phẩm, tác giả, nguồn

  • Tác phẩm: Quản lí hệ thông tin
  • Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University
  • Wiki hóa: https://kipkis.com