Thực trạng của công nghiệp phần mềm
Tôi thường nhận các email từ các cựu sinh viên vì tôi yêu cầu họ chia sẻ kinh nghiệm làm việc với sinh viên hiện thời. Tuần trước một cựu sinh viên đã gửi cho tôi email thú vị này, phản ánh kinh nghiệm của anh ấy trong công nghiệp phần mềm.
Thưa giáo sư,
Sau khi tốt nghiệp, em đã làm việc như người phát triển phần mềm cho một công ty lớn ở San Jose. Sau đây là điều em đã kinh nghiệm trong ba năm qua mà em muốn chia sẻ với các sinh viên hiện thời.
Theo quan sát riêng của tôi, công nghiệp phần mềm đã không thay đổi nhiều trong nhiều năm. Điều đáng buồn là nhiều dự án phần mềm vẫn bị thiết lập để thất bại. Lí do đơn giản: cấp quản lí dự án không có kĩ năng. Chẳng hạn, tôi đã dành nhiều ngày chuẩn bị ước lượng chi tiết cho công việc của tôi trong dự án mới này rồi được bảo là lịch biểu đã được ấn định rồi bởi người quản lí dự án. Không hỏi ý kiến tôi hay kiểm điểm ước lượng của tôi, ông ấy đã cho tôi chỉ một nửa thời gian tôi cần để làm việc. Tôi đã học trong lớp của thầy rằng "lịch biểu hiện thực" là phần mấu chốt cho dự án thành công và thầy bao giờ cũng khuyến khích chúng tôi xây dựng phần mềm không chỉ làm việc, mà còn có chất lượng cao. Tuy nhiên, đây không phải là điều người quản lí dự án muốn. Ông ấy đặt mục đích rằng mọi thứ phải đáp ứng lịch biểu, và không gì hơn. Đó là bài học đầu tiên tôi học được về thực trạng của công nghiệp phần mềm.
Vì người phát triển không có đủ thời gian, điều đầu tiên họ làm là bỏ qua chất lượng. Bị buộc phải dựng "phần mềm dở" là điều tồi tệ nhất mà người quản lí dự án có thể làm cho người phát triển. Chuyển giao dự án đúng thời gian nhưng biết rằng phần mềm "có thể hay không thể làm việc" cho cảm giác như thất bại với tôi. Tôi tin tốt hơn cả là nên làm mọi thứ theo cách đúng, và không chỉ theo cách nhanh chóng cho nên tôi tới nói với người quản lí dự án. Người đó bảo vệ lập trường của mình là "Chất lượng là tốt nhưng lịch biểu là mọi thứ." Tôi cảm thấy như tôi phí thời gian với kẻ ngốc. Đó là bài học thứ hai của tôi về thực trạng của công nghiệp phần mềm.
Tôi ngồi cạnh vài người phát triển từ một dự án khác. Họ được trao cho một tài liệu về một hệ thống cũ mà họ cần nâng cấp. Họ làm việc chăm chỉ trong vài tuần để thiết kế giao diện mới. Sau khi thiết kế được hoàn tất họ thấy rằng tài liệu này cũ ba năm rồi và đã không phải ánh thay đổi trong hệ thống. Điều đó nghĩa là điều họ đã thiết kế không còn đúng nữa. Tất nhiên, với thiết kế tồi thì mã cũng tồi rồi toàn thể dự án bị cắt bỏ vì hệ thống không làm việc. Nhiều người trong số họ mất việc làm nhưng người quản lí của họ thì không. Người đó được cho chức vụ khác trong dự án mới. Đó là bài học thứ ba của tôi về thực trạng của công nghiệp phần mềm.
Tất nhiên với chỉ ba năm làm việc trong công nghiệp, tôi có lẽ đã không thấy được mọi thứ. Tuy nhiên, tôi tin cấp quản lí tốt là điều "phải có″ trong ngành công nghiệp "được quản lí nghèo nàn" này. Là người phát triển, chúng tôi ước ao rằng chúng tôi có thể làm việc cho người quản lí tốt để cho chúng tôi có thể kinh nghiệm được thành công. Tôi thường tự hỏi nếu mọi dự án mà bạn làm việc đều thất bại thì bạn đã học được gì? Tôi thích làm việc với ai đó biết phải làm gì để xây dựng phần mềm chất lượng, ai đó có thể ra quyết định đúng, và sẵn lòng bảo vệ cho tổ khi khách hàng muốn rút ngắn lịch biểu. Nếu chúng tôi có người quản lí như thế, chúng tôi sẽ "tắm trong dầu sôi" để bảo vệ người đó. Chúng tôi sẽ làm việc cả ngày cả đêm để hỗ trợ người đó. Ngày nay, có nhiều việc làm phần mềm mở ra ở San Jose vì kinh tế bắt đầu phục hồi. Trong số đó có nhiều việc mở ra cho người quản lí dự án. Bây giờ tôi biết tại sao công nghiệp vẫn cần nhiều người quản lí dự án vì nhiều người trong số họ kém thế và phải được thay thế.
Ngược với niềm tin chung rằng người phát triển thường sẽ bỏ việc để được trả lương tốt hơn ở đâu đó khác, tôi nghĩ phần lớn người phát triển sẽ trung thành hoàn toàn với người quản lí tốt. Trong nhiều năm, chúng tôi đã thấy nhiều người quản lí kém, người quản lí không có kĩ năng, và người quản lí yếu nên tôi có thể nói điều này: “Không người phát triển nào sẽ bỏ việc làm vì thêm tiền, họ bỏ việc vì người quản lí kém.” Đó là phát biểu của tôi về thực trạng của công nghiệp phần mềm.
Vì công nghệ thay đổi rất nhanh chóng, phần lớn người phát triển phải tiếp tục bắt kịp bằng việc học những điều mới. Tuy nhiên, có những người phát triển không có nền tảng tốt để học điều mới. Họ là những người học "lối tắt" và "thủ đoạn" trong trường chỉ đủ để qua các kì kiểm tra, lấy bằng, và kiếm việc làm. Một số tới từ các trường đặc biệt dạy kĩ năng chuyên môn trong thời gian ngắn để cho họ có thể kiếm được việc làm. Không có nền tảng giáo dục mạnh, phần lớn trong họ đều gặp khó khăn khi điều chỉnh theo nhu cầu mới. Bởi vì họ yếu về kĩ thuật do giáo dục kém, phần lớn chưa bao giờ kéo dài lâu trong ngành công ngiệp cạnh tranh này. Điều đáng buồn khác mà tôi đã quan sát trong ngành công nghiệp này, tôi được bảo rằng không lâu trước đây, công ty đã đầy những người phát triển Perl và HTML. Về sau khi ASP, PHP, và Java là công nghệ then chốt, nhiều người phát triển đã bị loại ra để được thay thế bằng những người phát triển mới có những kĩ năng được cần này. Thế rồi tới ASP.NET và XML rồi nhiều người trong họ lại bị loại ra. Mọi lúc một công nghệ mới tới, những người phát triển có kĩ năng giới hạn lại bị loại ra. Ngày nay đó là AJAX, Ruby và ASP.NET 2.0. và không ai biết cái gì sẽ là tiếp. Bây giờ tôi thực sự hiểu điều thầy đã dạy chúng tôi về khác biệt giữa nghề nghiệp và việc làm. Nghề nghiệp là cái gì đó bạn có thể làm cho cả đời bạn nhưng việc làm là cái gì đó chỉ kéo dài khi có nhu cầu.
Với người phát triển có nền tảng mạnh về giáo dục, công nghệ chỉ là công cụ họ dùng. Chúng ta biết đủ để đối phó với thay đổi công nghệ. Cho chúng ta vài tuần để học điều mới rồi chúng ta sẽ không có vấn đề trong việc dùng chúng. Chỉ bây giờ, tôi mới nhận ra điều thầy và các giáo sư khác đã nói về “học cả đời” để cho chúng ta có thể tiếp tục tăng tiến nghề nghiệp của mình trong ngành công nghiệp thay đổi nhanh này. Là một cựu sinh viên, tôi biết ơn sâu sắc về điều thầy và các giáo sư khác đã dạy cho chúng tôi. Khi thầy yêu cầu tôi nói lời khuyên cho sinh viên hiện thời, tôi muốn bảo họ tận hưởng đại học nhiều nhất có thể đi và đưa mọi nỗ lực vào xây dựng nền tảng giáo dục vững chắc. Điều đó có thể có vẻ như có nhiều thứ thế họ phải học, nhiều môn mà họ phải học. Tuy nhiên, tất cả những điều đó sẽ là những điều có giá trị cho họ khi họ phải đối diện với thực trạng của ngành công nghiệp phần mềm.
Tác phẩm, tác giả, nguồn
- Tác phẩm: Lời khuyên cho sinh viên
- Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.
- Wiki hóa: https://kipkis.com