Phần mềm

Hiện nay phần mềm hiện diện ở mọi nơi, từ điện thoại di động cho tới các hệ thống ngân hàng. Phần mềm không còn là sản phẩm đem bán ra thị trường nữa mà là nhân tố bản chất chi phối cuộc sống của mọi người và ảnh hưởng chủ chốt cho nền kinh tế toàn cầu. Theo báo cáo kinh tế mới nhất, thị trường phần mềm bây giờ là doanh nghiệp trị giá cỡ ba nghìn tỉ đô la, lớn hơn bất kì ngành chế tạo hay công nghiệp nào như không gian vũ trụ, xe hơi, máy móc v.v.

Phần mềm là một trong những cái gì phức tạp nhất mà con người đã tạo ra. Để thiết kế và xây dựng chúng, người kĩ sư phần mềm phải tuân theo các qui trình và thủ tục đã xác định: Đầu tiên, các yêu cầu cần được xác định cẩn thận. Thế rồi kiến trúc phần mềm được phát triển. Khi yêu cầu và kiến trúc được xác định rồi, người ta có thể bắt đầu phát triển mã chương trình. Mã này cần được kiểm chứng, hợp thức và kiểm thử. Trong qui trình này, việc xây dựng mã chương trình hay lập trình chỉ là một phần nhỏ của toàn bộ qui trình.

Đa số mọi người không hiểu đầy đủ về kĩ nghệ phần mềm. Phần lớn sinh viên nghĩ họ có thể làm phần mềm sau khi họ học những điểm căn bản của cú pháp Java hay C++. Họ hiểu lầm kĩ nghệ phần mềm là lập trình. Điều này cũng giống như so sánh kiến trúc sư với công nhân đóng đinh vào gỗ để xây nhà. Nhiều người có thể đóng đinh vào gỗ nhưng không có kiến trúc sư, bạn không thể xây được ngôi nhà đứng vững như một kiệt tác kiến trúc. Nhiều người có thể lập trình, nhưng chỉ một vài người mới có thể xây dựng được kiệt tác phần mềm. Trong trên 30 năm làm Kĩ sư trưởng của một công ti lớn, tôi đã nghe mọi người biện minh về ngôn ngữ máy tính, một số người tin rằng Java tốt hơn C++ hay C tốt hơn Pascal. Thông thường, họ thích ngôn ngữ mà họ được dạy trong trường nhưng phần lớn thường không may người biện minh về qui trình tạo ra sản phẩm phần mềm. Lí do đơn giản, nhiều người không hiểu qui trình hay không thích tuân theo qui trình đã xác định. Họ chỉ thích làm phần mềm như công nhân chỉ thích đóng đinh vào gỗ mà không nghĩ về lí do chính của việc xây nhà. Những người xây dựng mã chương trình mà không hiểu rõ kĩ nghệ phần mềm thì không là gì ngoài một công nhân thường và bạn không cần phải tới trường trong bốn năm để chỉ trở thành một công nhân tầm thường.

Phần lớn sinh viên tốt nghiệp từ các đại học sẽ vào làm việc trong công ti phần mềm nào đó. Bởi vì họ không được giáo dục về qui trình phần mềm nên họ sẽ thấy khó hoàn thành nhiệm vụ đúng hạn, trong phạm vi lịch biểu và chất lượng cao. Kết quả sẽ là một sản phẩm phần mềm không đáp ứng điều khách hàng cần và có nhiều khiếm khuyết. Năm ngoái, người bạn của tôi cần thuê 200 người làm kĩ sư phần mềm nhưng anh ấy chỉ tìm được 12 người đủ khả năng để làm việc này bởi vì hầu hết không làm được bài kiểm tra – một bài kiểm tra đơn giản để xây dựng hệ thống phần mềm. Phần lớn mọi người đã không hiểu yêu cầu, họ chưa bao giờ nghe nói về pha kiến trúc của qui trình phát triển. Họ không làm được bởi vì trường của họ đã không dạy họ nền tảng về kĩ nghệ phần mềm.

Kĩ nghệ phần mềm có thể được định nghĩa là việc áp dụng cách tiếp cận hệ thống, định lượng, có kỉ luật vào việc phát triển, vận hành hệ thống phần mềm. Đây là các kĩ năng trọng yếu nhất mà doanh nghiệp và công nghiệp cần và rất ít nơi dạy nó. Tôi nghĩ các sinh viên sẽ được lợi rất nhiều nếu biết nhiều về kĩ nghệ phần mềm trước khi họ tốt nghiệp. Một sinh viên khoa học máy tính không thể trở nên kĩ sư phần mềm được. Nếu nhìn kĩ vào trong giáo trình này, bạn sẽ thấy rằng khoa học máy tính phần lớn hội tụ vào ngôn ngữ lập trình với nhiều lí thuyết về máy tính và toán học. Cũng cần phải lưu ý rằng hiện nay khó mà dạy kĩ nghệ phần mềm trong các đại học bởi vì nó đòi hỏi tri thức sâu sắc trong các qui trình nghiệp vụ. Để dạy những điều này, các giáo sư phải làm việc ít nhất vài năm trong ngành công nghiệp phần mềm và hiểu tất cả các cấu phần của qui trình.

Nhu cầu về giáo dục kĩ nghệ phần mềm là cấp thiết bởi vì hiện nay đang có nhu cầu lớn về kĩ năng này trên khắp thế giới. Tại sao lại có thiếu hụt kĩ sư phần mềm như vậy? Bởi vì ngày nay có rất ít đại học giảng dạy điều đó. Theo báo cáo mới nhất từ tạp chí U.S News và World Report, Mĩ có ít hơn 100 đại học cung cấp chương trình kĩ nghệ phần mềm được thừa nhận và chỉ có khoảng 200 trường trên toàn thế giới dạy về kĩ nghệ phần mềm. Đó là lí do tại sao tôi thực sự tin tưởng rằng để chiếm ưu thế về xu hướng này chúng ta phải bắt đầu ngay từ bây giờ, vì sinh viên phải mất nhiều năm mới tốt nghiệp. Tiếc thay việc thay đổi cực kì chậm trong giới hàn lâm bởi vì có ít khuyến khích thay đổi. Phần lớn các giáo sư rất thoải mái với hiện trạng của mình và không thấy lí do nào để thay đổi giáo trình. Chính phủ quá bận rộn với các vấn đề khác và có lẽ không chú ý tới cái gì đó mà họ không hiểu. Điều duy nhất tôi thấy là nhu cầu đòi hỏi của thị trường nơi những người lãnh đạo công nghệ đòi hỏi nhân viên phải có bằng cấp kĩ sư phần mềm như điều kiện để thuê người và điều đó đang xảy ra trong nhiều nước.

English version

Full article: Software

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

  • Tác phẩm: Công nghệ thông tin
  • Biên tập: Kipkis.com
  • Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University