Khoa học máy tính và kĩ nghệ phần mềm

Bạn tôi, một giáo sư khoa học máy tính hỏi tôi: “Sao mọi người tạo ra cái tên mới cho “Khoa học máy tính” và gọi là “Kĩ nghệ phần mềm?” Tôi không thấy khác biệt giữa “Máy tính” và “Phần mềm.” Sinh viên của chúng tôi học tốt môn học Khoa học máy tính và không cần môn nào khác với cái tên mới cho nó.”

Tôi ngạc nhiên với câu hỏi này: “Có khác biệt giữa hai chương trình này chứ, nhưng trước hết ta hãy bắt đầu với máy tính. Tôi tin không phải tất cả máy tính đều như nhau bởi vì không ai nghĩ rằng anh có thể thiết kế máy tính cho máy bay theo cùng cách anh tiếp cận thiết kế máy tính cho trò chơi video, bởi vì không phải tất cả mọi máy tính đều như nhau. Từ quan điểm này, tôi có thể chỉ ra rằng chúng ta không thể tiếp cận tới phần mềm dường như chúng là như nhau. Nếu anh muốn sinh viên của mình là người lập trình và làm việc về xây dựng website, tạo ra những ứng dụng nhỏ dùng Java hay C++ thì khoa học máy tính là tốt như nó đang vậy. Tuy nhiên, ngày nay phần lớn các hệ thống máy tính ngày càng lớn hơn; phần lớn các ứng dụng phần mềm ngày một phức tạp hơn và yêu cầu hàng trăm hay đôi khi hàng nghìn người cùng làm việc mà cách tiếp cận lập trình nhỏ sẽ không còn có tác dụng.”

Bạn tôi không đồng ý: “Anh bao giờ cũng có thể chia dự án lớn thành nhiều phần nhỏ để cho người lập trình có thể làm việc trên nó. Dự án lớn có thể được chia thành hàng trăm mảnh nhỏ nơi từng mảnh có thể được trao cho người lập trình để họ sẽ tiếp tục lập trình theo cùng cách như họ xây dựng ứng dụng web. Tôi không hiểu tại sao chúng ta cần cách tiếp cận mới?”

Bởi vì bạn tôi xuất thân từ giới hàn lâm và chưa bao giờ làm việc trong công nghiệp, khó mà giải thích mọi điều tương quan và tương hỗ trong các cấu phần phần mềm. Tôi bảo anh ấy rằng không dễ dàng chia phần mềm lớn thành những phần nhỏ kiểu như chia bánh bằng nhau và đó là lí do tại sao chúng tôi cần những kĩ năng đặc biệt như người phân tích yêu cầu để làm việc với người dùng và khách hàng; người quản lí cấu hình để quản lí thay đổi trong hoạt động phát triển; người phân tích qui trình để xác định các hoạt động phát triển thành tập các qui trình mà người phát triển phải tuân theo và tất nhiên người lập trình phải thực hiện thiết kế này bằng việc dùng ngôn ngữ máy tính và người kĩ sư tích hợp đưa tất cả các phần này vào trong một hệ thống cố kết. Những kĩ năng đặc biệt này là các môn của người kĩ sư phần mềm mà phần lớn các chương trình khoa học máy tính không dạy.

Bạn tôi không đồng ý: “Tôi nghĩ với đào tạo thêm, người lập trình cũng có thể làm điều đó chứ. Tôi không thấy nhu cầu gì để gọi chúng theo các cái tên khác.”

Tôi giải thích: “Có thể người lập trình cần đào tạo thêm nhưng khoa học máy tính hiện thời đã dồn nhiều nỗ lực vào lí thuyết và kĩ thuật lập trình, phần lớn các sinh viên đều học hành vất vả để theo các môn lập trình cho nên thời gian đâu mà dành cho huấn luyện thêm? Anh không thể thêm nhiều thứ vào chương trình hiện thời mà không bỏ bớt đi vài môn học, vậy chúng ta sẽ bỏ môn nào? Chúng ta có nên giảm các lớp lập trình từ 4 xuống 2 năm không, chúng ta có nên giảm các môn lí thuyết máy tính không? Chúng ta có nên giảm số các môn toán xuống không? Chúng ta nên thêm môn gì? Chúng ta có cần các môn yêu cầu hay môn kiến trúc phần mềm không? Theo cách nhìn của tôi, khoa học máy tính hội tụ vào lí thuyết và phương pháp có chứa “máy tính” còn kĩ nghệ phần mềm lại quan tâm tới vấn đề thực tế của việc sản xuất ra “phần mềm.” Cả hai chương trình này đều có chung các môn nền tảng nhưng ứng dụng là khác nhau.

Đối thoại này hiện thời là tranh cãi chính giữa các trường đại học trên khắp thế giới. Mọi giáo sư đều có ý kiến về chương trình đào tạo và mọi đại học đều có quan điểm riêng về môn nào sinh viên phải học và tôi không nghĩ chúng ta có thể giải quyết việc này trong đối thoại thông thường giữa những người bạn. Quan điểm cá nhân của tôi là: Sinh viên cần kĩ năng để kiếm sống và đại học phải cung cấp cho họ tri thức đó để họ có thể tìm được việc trong công nghiệp. Để làm điều đó, đại học phải hiểu nhu cầu của công nghiệp, biết rằng nhu cầu bao giờ cũng thay đổi theo thời gian và thường xuyên điều chỉnh đào tạo để đáp ứng nhu cầu công nghiệp. Tuy nhiên, khó mà thay đổi chương trình hàn lâm bởi vì phần lớn các giáo sư đều bận tiến hành nghiên cứu, viết bài để xuất bản, hay dành thời gian cho các việc khác. Các môn đào tạp cập nhật có mức ưu tiên thấp nhất với nhiều người trong số họ và họ không được thưởng gì về điều đó cả. Nhiều người không thấy sự khẩn thiết hay nhu cầu thay đổi bởi vì thế giới hàn lâm là “môi trường an toàn” không có cạnh tranh nhưng công nghiệp phần mềm lại là môi trường cạnh tranh cao nơi mọi sự thay đổi với tốc độ của internet. Đó là lí do tại sao sinh viên bị mắc giữa nhịp độ chậm của hàn lâm và nhịp độ nhanh của công nghiệp khi họ tốt nghiệp. Nhiều người học tốt trong trường nhưng khi đối diện với thế giới thực, họ khổ sở không đáp ứng được. Họ chưa bao giờ được dạy điều phải làm, cách hành động, và kĩ năng nào họ cần, đôi khi họ phải học những thứ đã lạc hậu.

Để tôi cho bạn một ví dụ, ngày nay nhiều kĩ sư phần mềm đang làm việc trên các ứng dụng được chuyển giao qua web cho hàng trăm hay hàng nghìn khách hàng trên khắp thế giới có tên là Phần mềm như dịch vụ – Software as a Services (SaaS). Khái niệm mới này yêu cầu những kĩ năng đặc biệt để thích ứng với nhu cầu của khách hàng theo thời gian thực. Đây không thực là “mã” mà là “qui trình nghiệp vụ” kiểm soát cách nghiệp vụ của khách hàng đang thực hiện. Sinh viên chỉ biết cách viết mã sẽ không có khả năng thay đổi và điều chỉnh những ứng dụng “hướng qui trình” này bởi vì họ thậm chí không biết qui trình là gì. Tuy nhiên, những kĩ năng này mà công nghiệp phần mềm đang đòi hỏi và thuê đấy nhưng thế giới hàn lâm lại rất ngần ngại thích ứng với “đào tạo hướng theo qui trình” bởi vì phần lớn các giáo sư cũng không biết qui trình nghiệp vụ là gì.

Bạn tôi bảo tôi: “Mục đích của giáo dục là phát triển con người với tri thức chung chứ không phải là về việc làm. Sau khi có giáo dục họ có thể đi ra và tự kiếm việc.”

Đây là chỗ chúng ta không đồng ý vì tôi tin rằng “tri thức hàn lâm” phải được thay đổi để thích ứng với nhu cầu của xã hội. Tư duy rằng trường học chỉ chịu trách nhiệm về giáo dục chứ không gì khác làm cho tôi nghĩ về tương lai của nhiều sinh viên. Trong nhiều năm rồi, các trường liên tục đào tạo lập trình viên, người về bản chất không thể kiếm được việc tốt cho dù có nhiều cơ hội đang chờ đợi trên khắp thế giới. Thay vì thích ứng, nhiều chương trình Khoa học Máy tính vẫn hội tụ vào điều cộng đồng hàn lâm nghĩ đây là tri thức mà sinh viên phải có bất kể điều công nghiệp cần và không chuẩn bị cho sinh viên cạnh tranh với các sinh viên ở các nước khác. Nếu họ coi toán học là quan trọng thì họ thêm nhiều môn toán vào, nếu họ coi thuật toán là cần thiết, họ có thể thêm nhiều môn thuật toán máy tính vào chương trình. Sau rốt, các giáo sư cai quản đại học và họ có thể làm bất kì cái gì họ coi là đúng cho sinh viên vì sinh viên tới họ, cạnh tranh lẫn nhau để đăng tuyển vào trường của họ.

Điều khôn ngoan là biết rằng việc đăng tuyển vào các chương trình khoa học và công nghệ đã tăng lên ở nhiều nước châu Á bởi vì xu hướng khoán ngoài toàn cầu. Ngày nay hầu hết mọi nước đều hội tụ vào công việc này nơi Ấn Độ đang chi phối với xuất khẩu vượt quá USD $68 tỉ đô là một năm nhưng đối diện với sự thiếu hụt trầm trọng người phát triển phần mềm cho thị trường toàn cầu. Phần lớn những người quản trị đại học đều nhận biết về tình huống này và họ phản ứng bằng việc mở nhiều môn học hơn, đăng tuyển nhiều sinh viên mà không bận tâm về nhu cầu của công nghiệp. Cho nên lỗ hổng giữa tri thức hàn lâm và nhu cầu công nghiệp đang tiếp tục rộng thêm và nhiều sinh viên đã được đào tạo trong các chương trình này không được chuẩn bị để cạnh tranh toàn cầu. Tuy nhiên, tôi tin rằng với thị trường việc làm thay đổi nhanh chóng, mọi sự đã thay đổi rất nhanh và đại học không còn có thể chỉ đạo các chương trình đào tạo mà chính công nghiệp và chung cuộc sinh viên mới là người chỉ đạo, những người đòi hỏi các chương trình đào tạo nào đó. Sinh viên đầu tư thời gian, nỗ lực của họ và trả tiền học phí và họ phải được đối xử như “Khách hàng” và trong thế giới kinh doanh, chính khách hàng mới ra quyết định về việc họ muốn làm kinh doanh với ai.

English version

Full article: Computer Science and Software Engineering

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

  • Tác phẩm: Khoa học máy tính
  • Biên tập: Kipkis.com
  • Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.