Kĩ nghệ phần mềm

Kĩ nghệ phần mềm là bộ môn mà trong đó các kĩ sư tuân theo một qui trình xác định rõ để làm công việc của họ. Họ thiết lập mục đích chất lượng, xác định các phương pháp họ sẽ dùng, cách đo công việc của họ, phân tích kết quả, và điều chỉnh phương pháp của họ để đáp ứng tốt hơn các yêu cầu của khách hàng. Ý tưởng căn bản là ở chỗ nếu bạn muốn một sản phẩm có chất lượng, bạn phải có qui trình có chất lượng tạo ra sản phẩm này. Bộ môn Kĩ nghệ phần mềm không phải là mới nhưng nó không được dạy trong nhiều đại học bởi vì nó đòi hỏi rằng những người dạy nó phải có tri thức qui trình từ công nghiệp. Vì phần lớn các giáo sư không làm việc trong công nghiệp, hay không được huấn luyện trong qui trình nghiệp vụ, họ không muốn dạy nó.

Ngày nay phần lớn các đại học chỉ dạy cho mọi người làm người lập trình trong các ngôn ngữ khác nhau xem như công cụ của họ. Sinh viên dành ba tới bốn năm vào việc học ngôn ngữ tính toán nhưng khi họ đi làm, họ thấy rằng việc phát triển sản phẩm phần mềm là quá trình mà lập trình chỉ chiếm quãng 20% nỗ lực, cũng có nghĩa là họ chỉ có thể làm một phần nhỏ của toàn bộ việc phát triển phần mềm. Điều này giải thích tại sao phần lớn những công ti lớn ở Mĩ và châu Âu không thuê những người có bằng Khoa học máy tính thêm nữa.

Chương trình Kĩ nghệ phần mềm cung cấp cho sinh viên việc huấn luyện cần thiết để bố trí qui trình phần mềm qua việc dùng các kĩ thuật, thiết lập ra các phương pháp tốt nhất để xác định yêu cầu, thu thập dữ liệu, ngăn ngừa lỗi, đo đạc, ước lượng dòng lệnh, tổng chi phí về chất lượng và các kĩ thuật khác, những điều trợ giúp cho người kĩ sư trong việc phát triển sản phẩm phần mềm chất lượng. Các thuật ngữ qui trình và quản lí qui trình bây giờ được thiết lập vững chắc trong mọi nghiệp vụ chính nhưng nhiều người vẫn không hiểu về nghĩa thực và tầm quan trọng của những thuật ngữ này.

Xét nó trong toàn cảnh thì qui trình nghiệp vụ là một nhóm có tổ chức các hoạt động có liên quan được gắn với nhau sẽ tạo ra sản phẩm hay dịch vụ đem lại giá trị nghiệp vụ. Qui trình phần mềm là tập các hoạt động mà khi được tích hợp có hiệu quả sẽ tạo ra sản phẩm hay dịch vụ phần mềm có chất lượng đáp ứng cho sự trông đợi của khách hàng. Các qui trình đại diện cho một toàn cảnh mới về công việc của tổ chức. Chúng tạo ra sự hội tụ thấy được bởi vì nó được hướng tới việc đáp ứng cho kết quả nghiệp vụ như đáp ứng điều khách hàng muốn. Bằng cách tuân theo qui trình, người kĩ sư phần mềm hiểu tác động của hoạt động riêng của mình lên người khác và lên khách hàng. Họ làm việc với hiểu biết rõ ràng về qui trình mà họ là một phần, hiểu rõ về kết quả họ đang giúp tạo ra, và hiểu rõ về khách hàng mà họ đang phục vụ. Họ nhận trách nhiệm về kết quả; họ làm điều mà tình huống yêu cầu thay vì điều mà ông chủ đã bảo họ làm.

Để quản lí người kĩ sư phần mềm có hiệu quả, người quản lí giỏi cần hiểu khái niệm cơ bản về Quản lí Qui trình:

  • Xác định qui trình trước, rồi xác định cấu trúc dự án sau.
  • Động viên việc thảo luận về các qui trình và động viên gợi ý về thay đổi qui trình từ những người tuân theo qui trình bởi vì họ biết cái gì có tác dụng và cái gì không có tác dụng.
  • Khi sự việc đi sai, tập trung vào việc sửa qui trình, không trách móc mọi người bởi vì họ chỉ tuân theo qui trình.
  • Thiết lập các đích cho chất lượng sản phẩm và hiệu năng dự án rồi quản lí qui trình để đạt được kết quả mong muốn.
  • Hội tụ vào việc ngăn ngừa lỗi bằng phân tích nhân quả và cải tiến qui trình
  • Tiến hành cuộc họp kiểm điểm quản lí dự án hàng tuần về cách đo dự án

Người quản lí cấp cao phải kiểm điểm hiệu năng dự án bằng việc dùng các cách đo chuẩn dựa trên cơ sở đều đặn (hàng tuần và hàng tháng). Tất cả các nhà quản lí đều phải hiểu cách đó và trông đợi thấy chúng. Các vấn đề bao giờ cũng nằm ở các điểm yếu trong qui trình, đừng đổ tại hiệu năng cá nhân. Việc không tuân thủ (Không tuân theo qui trình) là “đáng bị trừng phạt”, nhưng không phải vì hiệu năng kém — hiệu năng kém được coi như vấn đề kĩ năng, đòi hỏi có huấn luyện thêm. Tất cả các cá nhân đều được trông đợi gợi ý việc cải tiến qui trình và đóng góp cho cải tiến qui trình là một tiêu chí quan trọng cho đề bạt. Thay vì sửa lỗi, chúng ta phải tập trung vào việc phòng ngừa lỗi. Các kĩ thuật phòng ngừa lỗi hội tụ vào việc khử bỏ các đường “thoát” lỗi qua các pha qui trình.

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

  • Tác phẩm: Kĩ nghệ phần mềm
  • Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.
  • Wiki hóa: https://kipkis.com