Trải nghiệm công việc phát triển phần mềm
Tính từ ngày đầu tiên bước chân vào con đường phát triển phần mềm (17/04/2017) đến nay (12/2024), mình đã có 7 năm 8 tháng gắn bó với nghề. Một quãng thời gian không quá dài nhưng đủ để mình nếm trải đủ mọi cung bậc cảm xúc - có thăng hoa, có trầm lắng. Bài viết này là nơi mình lưu giữ lại những trải nghiệm ấy, để bản thân không bao giờ quên.
Thăng
Hứng khởi với những điều mới mẻ
Thuở mới vào nghề, mình luôn hào hứng khi được tiếp xúc với framework mới, ngôn ngữ lập trình mới. Mỗi lần chuyển công ty, làm quen với một lĩnh vực kinh doanh (business domain) mới, cảm giác ấy lại ùa về. Tuy nhiên, sau một thời gian dài, sự hứng thú với những yếu tố này dần phai nhạt. Thay vào đó, mình tìm thấy niềm vui khi trở thành một “problem solver” - người giải quyết vấn đề. Công nghệ hay kỹ thuật mới, đối với mình, chỉ thực sự hấp dẫn khi chúng góp phần giải quyết một bài toán cụ thể nào đó.
Niềm vui của người giải quyết vấn đề
Cảm giác chinh phục được một lỗi (bug) hóc búa, hay hoàn thành kế hoạch phân tích và xây dựng một tính năng mới cho phần mềm, luôn mang lại cho mình sự phấn chấn tột độ, dù trước đó có thể đã phải vò đầu bứt tóc. Những công việc này còn mang lại cho mình cảm giác mình đang góp phần tạo ra giá trị cho xã hội, dẫu biết rằng đó là sự đánh đổi để có được thu nhập.
Thu nhập đủ sống và cơ hội tiềm năng
So với những ngành nghề khác, ví dụ như kiểm toán, nơi mà cường độ làm việc cao nhưng mức lương lại thấp và tăng chậm (chỉ đạt khoảng $2k ở cấp senior manager), thì ngành phát triển phần mềm lại có mức thu nhập tương đương mà không nhất thiết phải chuyển sang vị trí quản lý. Tất nhiên, nếu so với các bạn kinh doanh tự do trên Shopee, con đường làm giàu trong ngành này có vẻ xa vời hơn. Tuy nhiên, hiện nay đang nổi lên xu hướng “solopreneur” (có lẽ do làn sóng sa thải khiến nhiều người có thời gian rảnh rỗi), cùng với lợi thế sản phẩm phần mềm là vô hình, không cần nhập hàng tồn kho như kinh doanh trên Shopee. Điều này mở ra cơ hội cho các lập trình viên có thể dành thời gian nghiên cứu thị hiếu, phát triển các Micro SaaS (Software as a Service) phục vụ cho những thị trường ngách mà các “ông lớn” chưa khai thác tốt. Khi đó, việc làm giàu hoàn toàn nằm trong tầm tay.
Linh hoạt với công việc từ xa
Phát triển phần mềm là một trong những ngành nghề dễ dàng tìm được công việc cho phép làm việc từ xa, chỉ cần thỉnh thoảng lên văn phòng. Điều này giúp mình tiết kiệm được thời gian di chuyển và cả công sức giặt giũ quần áo mỗi ngày.
Trầm
Những khía cạnh tiêu cực dưới đây đều được mình diễn đạt với từ “bị” để thể hiện sự bị động, thiếu quyền tự chủ - bởi suy cho cùng, mình vẫn đang là người làm thuê.
Bị gián đoạn liên tục bởi những tác vụ khác nhau
Mỗi lần chuyển đổi giữa các tác vụ (task) khác nhau, não mình cần thời gian để “tải” lại ngữ cảnh (context) của tác vụ mới, sau đó mới có thể tiếp tục công việc. Hiện tượng này được gọi là “context switching”. Ví dụ, khi đang tập trung code một tính năng, đột nhiên Slack thông báo, đồng nghiệp từ bộ phận DevOps hoặc ai đó gắn thẻ (tag) mình vào để kiểm tra lỗi, hoặc có sự cố (incident) cần mình hỗ trợ giải quyết gấp. Lúc này, mình buộc phải dừng công việc hiện tại, đọc thông tin và cố gắng nhớ lại xem lỗi đó liên quan đến tính năng nào mình đã làm trong quá khứ. Nhiều khi, vì đã quá lâu, mình phải mất thời gian debug, đọc lại code, tra cứu ticket liên quan mới có thể hình dung được vấn đề. Rồi đến giờ họp phân tích yêu cầu (refinement), mình lại phải tập trung nắm bắt ngữ cảnh để chuẩn bị cho một tính năng sẽ được xây dựng trong tương lai.
Nhìn chung, việc chuyển đổi giữa các tác vụ giúp tránh sự đơn điệu, nhưng chỉ khi mình đã hoàn thành xong công việc hiện tại thì việc chuyển đổi mới diễn ra suôn sẻ, không gây cảm giác bức bối hay phiền toái. Đáng tiếc thay, thực tế nghiệt ngã là mình không có quyền quyết định khi nào mình được chuyển đổi tác vụ, quyền tự chủ không đạt đến mức độ như vậy. Có lẽ đây là điều khiến mình khó chịu nhất trong công việc.
Bị làm việc quá giờ
Áp lực deadline đã hứa với khách hàng, cộng thêm việc để task tồn đọng quá lâu sẽ ảnh hưởng đến các chỉ số đánh giá (metric) và bị quản lý nhắc nhở, là những lý do khiến chúng ta thường phải “cày” cho xong việc.
Bị sa thải đột ngột
Công ty đang vận hành ổn định, bỗng dưng năm 2022, mình nhận đánh giá hiệu suất kém (bad performance), không được thưởng Tết (lương tháng 13), công ty dừng tuyển dụng, chứng kiến team bị giải tán và các team bị tái cơ cấu (restructure) nhiều lần. Dù bản thân không nằm trong danh sách bị sa thải, nhưng mình luôn sống trong tâm trạng lo âu, thấp thỏm, cố gắng làm việc để đối phó với các chỉ số, chỉ mong sao mình không “bị gọi tên”. Tâm trạng lúc đó thực sự rất bức bối (mặc dù theo luật Việt Nam, nghỉ việc sẽ được bồi thường 2 tháng lương - tương đương chấm dứt hợp đồng có báo trước). Mình còn chứng kiến trường hợp đồng nghiệp đang nghỉ thai sản cũng bị cho nghỉ việc (được đền bù 6 tháng lương) - vì bạn ấy là QA làm thủ công (manual), quản lý cho rằng bạn không có khả năng học thêm kỹ năng để làm tự động hóa (automation), hoặc cho rằng có thai sẽ làm việc chậm chạp, ảnh hưởng đến team, nên đã cho nghỉ ngay đợt đầu. Đáng buồn thay, chưa đầy hai năm sau, chính những quản lý đưa ra quyết định sa thải đó cũng bị “trảm”.
Bị viết đánh giá hiệu suất (performance review) định kỳ
Việc tự đánh giá bản thân, đồng nghiệp và cả quản lý không phải là vấn đề lớn, nhưng mình phải cố gắng hồi tưởng và tra cứu lại lịch sử công việc, điều này gây khó chịu không kém gì việc bị gián đoạn liên tục bởi các tác vụ khác nhau. Mình cảm thấy việc này khá thừa thãi vì quản lý đã theo dõi hoạt động của từng thành viên trong team thông qua các công cụ hằng tuần, hằng sprint, nên họ đều biết rõ ai đã đóng góp những gì. Hơn nữa, những bản đánh giá này chủ yếu là để cấp dưới có cơ hội phản ánh, nhưng theo quan sát của mình, có những “nhân vật” mà không có phản ánh nào có thể “đụng chạm” tới được.
Bị ép học những kỹ năng chưa cần thiết
Thị trường tuyển dụng hiện nay có xu hướng ưu tiên “full-stack developer” (những người có thể làm cả frontend và backend). Hiện tại, mình chủ yếu làm backend, nhưng lại được yêu cầu học thêm frontend, mặc dù lúc đó mình muốn trau dồi kỹ năng DevOps hơn. Nói chung, việc này đi chệch hướng so với định hướng của mình. Đây chính là hệ quả của việc cắt giảm nhân sự (downsize) - mỗi người phải đảm nhận nhiều vai trò hơn. Theo chia sẻ từ đồng nghiệp, việc học thêm kỹ năng từ frontend sang backend không giúp tăng lương.
Không thoải mái khi xin nghỉ phép
Có đôi lần mình đã lên kế hoạch nghỉ phép trước 2 tháng, nhưng đến lúc đó lại phải dời lịch để hoàn thành công việc cho kịp tiến độ. Người ta chỉ cảm ơn mình vì đã “thông cảm” cho team. Nói chung, mình luôn ở thế bị động.
Kết luận
Những điều “bị” mà mình kể trên có lẽ xuất phát từ việc mình chưa được trải nghiệm những môi trường làm việc tốt hơn (ví dụ như các công ty ở Bắc Âu, Đức, Úc, …). Có thể ở những môi trường đó, hầu hết những khía cạnh tiêu cực này sẽ được loại bỏ, ngoại trừ việc bị sa thải và bị gián đoạn liên tục, vốn là những vấn đề khó tránh khỏi ở bất kỳ công ty nào, bởi các công ty luôn phải thích ứng với thị trường. Tuy nhiên, theo quan sát của mình, ngay cả khi thị trường gặp khó khăn, khi mà tình trạng sa thải diễn ra ở khắp nơi, vẫn có những môi trường đặc thù mà mình chưa thấy ai làm việc ở đó bị sa thải. Trong tương lai, mình mong muốn tìm được một công việc vẫn giữ được tất cả những yếu tố tích cực và loại bỏ hoàn toàn những yếu tố tiêu cực đã nêu trên.