Thứ Năm, 4 tháng 8, 2011

Chúng ta sẽ được làm gì khi tham gia vào một công ty phần mềm?


Chúng ta sẽ được làm gì khi tham gia vào một công ty phần mềm?

Tôi cũng chưa biết nữa, còn đi học mà ^^

Quan niệm phổ biến hiện nay nói rằng bạn sẽ bắt đầu ở vị trí thấp nhất là một lập trình viên (programmer, hoặc là developer, hoặc coder, hoặc tester (người kiểm tra phần mềm), hoặc technician). Ở đó bạn cần hoàn thành tốt các công việc được giao bằng nỗ lực cá nhân. 
Nếu làm tốt, bạn sẽ tiến lên làm lãnh đạo nhóm (team leader, hoặc senior developer), khi đó công việc chuyên môn được chia ra, bạn chỉ làm những thứ khó nhất và quan trọng nhất; còn đối với những việc dễ và thường lập đi lập lại, bạn sẽ chỉ dẫn những người lập trình viên ở bên dưới thực hiện. 
Lên một mức cao hơn, bạn sẽ được làm quản lý dự án (nếu bạn có thiên hướng về quản lý) hoặc sẽ làm trưởng phòng kỹ thuật (nếu bạn có thiên hướng về chuyên môn). Lúc này bạn sẽ dành phần lớn thời gian cho việc lập kế hoạch, giao việc, kiểm soát, sử dụng người, đào tạo,... 
Tiếp tục lên cao nữa, bạn sẽ được tham gia vào ban lãnh đạo, nơi bạn sẽ chịu trách nhiệm định hướng, phân tích cơ hội, thách thức,... Và cứ thế tiếp tục lên cao nữa.....

Tôi nghe người ta mô tả về nấc thang nghề nghiệp trên ngay từ khi bước chân vào khoa Công nghệ thông tin trường Đại học Bách Khoa. Lúc tôi đi dự phỏng vấn ở các công ty phần mềm, người ta lại nói về nó. Khi tôi đã đi làm và trong các buổi đánh giá thành tích (performance appraisal), người ta cũng lại nói về nó. Đến khi tôi rời khỏi công ty, người ta vẫn lại nói về nó. Cho đến gần đây khi tôi có dịp trở lại trường đại học Bách Khoa, tôi lại vẫn thấy người ta tiếp tục nói về nó!

Nhưng ......

1) Vị trí phía trên không phải là hình thức cao hơn của vị trí phía dưới

Điều kỳ diệu nhất của con người so với những sinh vật khác là khả năng tiến hóa và phát triển. Chúng ta biết rằng các loài đều tiến hóa từ hình thức cấp thấp lên hình thức cấp cao. Người ta gọi đó là một phần của sự phát triển.
Nhưng nghề nghiệp của chúng ta thì lại không phát triển theo cách như vậy được. Thử lấy ví dụ về công việc của người kiểm thử phần mềm (tester) và lập trình viên. Rất nhiều người quản lý mắc phải sai lầm thô thiển khi cho rằng lập trình viên là “hình thức cao hơn” của tester. Điều đó có nghĩa là, nếu một nhân viên hơi yếu về kỹ năng lập trình, cách tốt nhất là đưa người đó vào vị trí tester. Đến khi nào người đó thể hiện tương đối tốt công việc của tester, ta sẽ thăng cấp cho người đó lên vị trí lập trình viên.

(Thực sự thì tester và lập trình viên đòi hỏi hai loại người hoàn toàn khác nhau. Những người lập trình viên giỏi là những người đặc biệt yêu thích sự chặt chẽ, sự hiệu quả, và những vấn đề hóc búa. Khả năng đó giúp cho họ hiểu được một bài toán trừu tượng và cụ thể hóa nó bằng các dòng lệnh máy tính trong thời gian ngắn nhất, với độ chính xác cao nhất.)

Điều đấy cho thấy rằng không có dấu hiệu gì để bảo đảm một tester xuất sắc sẽ có thể trở thành một lập trình viên xuất sắc. Cũng không có lý do gì để cho rằng lập trình là công việc đòi hỏi kỹ năng cao hơn so với kiểm thử.

2) Một cuộc đua vô nghĩa

Khi thiết kế ra những nấc thang nghề nghiệp kia, người ta đã vô tình đẩy mọi nhân viên vào một cuộc đua vô nghĩa và rất thiếu tính nhân bản. Tất cả những người mới bắt đầu sẽ đứng ở nấc thang thấp nhất. Trong những người này, ai giỏi hơn sẽ được bước lên nấc thang cao hơn. Nấc thang càng ở trên cao thì chỗ cho những người ở đó cũng càng ít đi. Bạn nghĩ sao? Một sự canh tranh rất tốt cho sự phát triển?

3) Triệt tiêu những cá nhân xuất sắc

Dĩ nhiên cũng có một số người có thể trèo lên những nấc thang thật cao trong một thời gian rất ngắn. Hiện nay ở Việt Nam điều đó ngày càng xuất hiện nhiều. Chúng ta không còn thấy lạ nếu biết được có người chưa đầy 30 tuổi đã trở thành senior manager, thậm chí là director của những công ty lớn.
Tôi thấy nghi ngờ về điều này. Có lẽ ở Việt Nam chúng ta đã quá dễ dãi trong việc đánh giá năng lực con người. Tôi may mắn có dịp biết được một số lập trình viên làm việc trong các công ty ở Mỹ (họ là công ty đối tác của công ty tôi), và đã từng bị sốc khi biết rằng họ đều ngoài 50 tuổi. Họ làm lập trình viên đã được hơn 20 năm, có nghĩa là tuổi nghề của họ còn lớn hơn tuổi đời của tôi! Ồ, đừng nghĩ rằng họ là những nhân viên kém cỏi nên mới ở mãi vị trí đó. Xét về năng lực, kinh nghiệm và kiến thức, có lẽ tôi chưa quen ai ở Việt Nam có thể sánh được với họ.



Với sự phát triển vô độ như vậy, chẳng mấy chốc các công ty sẽ giống như một anh chàng ốm nhách và cao kêu. Ai cũng được quản lý một số người phía dưới của mình. Tướng nhiều nhưng quân thì ít. Một số người bên dưới phải lao động vất vả cho số lượng rất nhiều người bên trên. Quá nhiều người tầm thường ở các cấp quản lý trung gian. Mọi người sẽ phí nhiều thời gian cho việc họp hành, báo cáo, kế hoạch, đánh giá, khen thưởng,... nên sẽ ít thời gian cho những công việc thực tế (viết code, kiểm tra, tạo quan hệ tốt với khách hàng,...)

0 nhận xét: