Trên quora gần đây có một câu hỏi rất thú vị:
Là một nhà phát triển phần mềm, bạn thực sự viết code bao nhiêu phần trăm trong ngày? Vị hôn thê của tôi đôi khi đi đi lại lại trong nhà bếp, nửa mắt nhìn chằm chằm lên trần nhà. Chẳng thể biết được chuyện gì đang xảy ra. Lúc đó tôi có tức giận không? Có buồn? Bối rối? Có phải cô ấy không đấy?
“Em yêu, em đã đi lại trong 15 phút rồi, mọi thứ ổn chứ?” “Ồ đúng rồi, em chỉ đang xây dựng <tính năng> này ngay bây giờ…” “… XEM?”
Là một developer, có bao giờ bạn tự hỏi bao nhiêu thời gian trong ngày bạn thật sự code? thời gian còn lại mình làm gì? Mình có thật sự làm việc hiệu quả?
Các developer thật sự làm gì trong công việc của họ?
Năm 2019, Tidelift và The New Stack đã cùng nhau thực hiện một cuộc khảo sát về các nhà phát triển phần mềm chuyên nghiệp. Gần 400 người đã tham gia cuộc khảo sát và họ thấy rằng các nhà phát triển dành nhiều thời gian để duy trì, thử nghiệm và tăng cường bảo mật cho code có hơn là viết hoặc cải tiến code. Những lập trình viên tham gia khảo sát đã trả lời sáu danh mục liên quan đến việc sắp xếp thời gian của họ và họ được yêu cầu ước tính phần trăm công việc được đầu tư vào từng danh mục. Kệt quả được thể hiện qua đồ họa dưới đây:
Những con số này có thể là bình thường đối với các nhà phát triển, nhưng có lẽ sẽ sẽ là điều khá ngạc nhiên đối với rất nhiều người khi biết rằng những người được hỏi dành ít hơn một phần ba thời gian của họ để viết code mới hoặc để cải thiện code hiện có (32%). Những người được hỏi dành 35% thời gian của họ để quản lý code, bao gồm bảo trì (19%), kiểm thử (12%) và phản hồi các vấn đề bảo mật (4%). 23% thời gian được dùng cho các cuộc họp và cho các nhiệm vụ quản lý và điều hành.
Chia nhỏ dữ liệu theo mô tả công việc cho chúng ta một cái nhìn rõ ràng hơn. Các nhà phát triển phần mềm dành 22% thời gian của họ chỉ để bảo trì code. Họ dành tỷ lệ thời gian nhiều hơn để viết mã mới hoặc cải thiện code hiện có (39%) và tỷ lệ phần trăm thời gian của họ cho các nhiệm vụ hoạt động và trong các cuộc họp thấp hơn nhiều (14%).
Không có gì ngạc nhiên khi những người ở vị trí quản lý dành thời gian cho các cuộc họp nhiều gấp đôi so với những người mà họ giám sát. Các kỹ sư và nhà quản lý DevOps thậm chí còn dành nhiều thời gian hơn cho các cuộc họp (34%), một phần vì họ là cầu nối giao tiếp giữa các nhóm khác nhau. Họ cũng dành gấp đôi thời gian (7%) để phản hồi các vấn đề bảo mật, điều này sẽ không có gì ngạc nhiên đối với những người quen thuộc với xu hướng DevSecOps.
Một cuộc khảo sát của ActiveState cũng phát hiện ra một điểm thú vị: Các nhà phát triển chỉ đơn giản là không có thời gian để viết code như họ cần.
Cuộc khảo sát cho thấy 61,5% nhà phát triển dành bốn giờ hoặc ít hơn mỗi ngày để viết code, phần lớn trong số đó chỉ dành từ hai đến bốn giờ mỗi ngày để làm việc đó. Thay vì tăng tính linh hoạt và giảm thời gian phản hồi, các nhà phát triển dường như bị kéo theo nhiều hướng. Các cuộc họp, thử nghiệm và tìm lỗi là những thứ gây xao nhãng phổ biến nhất. Bên cạnh đó, những phiền nhiễu phổ biến khác bao gồm xử lý các vấn đề bảo mật, xây dựng thư viện và quản lý các vấn đề phụ thuộc.
Làm thế nào để các nhà phát triển tăng cường thời gian viết code?
Dữ liệu của các khảo sát trên cho thấy điều cần thiết là phải lập kế hoạch cho mọi thứ. Việc lập kế hoạch tốt cho một dự án có thể là sự khác biệt giữa sự thành công và sự chậm trễ. Các developer phải làm những công việc khiến họ khá sao nhãng và dẫn đến việc các chuyên gia lành nghề không làm được công việc mà họ giỏi nhất.
Một vấn đề khác cũng ảnh hưởng đến thời gian viết code của các lập trình viên: tham gia vào các kiểm thử không cần thiết. Các nhà phát triển cho biết tìm kiếm và kiểm tra lỗi là hai nhiệm vụ phổ biến mà họ phải thực hiện thay vì viết mã. Cần tránh kết hợp vai trò của developer và QA để đảm bảo thành công và thời gian quay vòng nhanh hơn. Mặc khác, cần phải đặt ra những câu hỏi về việc này. Chẳng hạn liệu các developer có làm những kiểm thử thừa hoặc trùng lặp với các kiểm thử hiện có không? Các developer có đang duy trì các bài kiểm thử không thực sự cần thiết nữa không? Việc trả lời những câu hỏi này có thể làm tiết kiệm thời gian quý giá của nhà phát triển.
Với thời gian phát triển bị thu hẹp, thời gian quay vòng trở nên nhanh hơn và áp lực đối với các nhà phát triển ngày càng tăng, điều cần thiết là các nhà lãnh đạo dự án và các nhà quản lý phải hiểu được áp lực mà nhóm của họ phải và thực hiện các bước để đảm bảo họ đang tối đa hóa thời gian lập trình bằng cách loại bỏ những vấn đề gây phân tâm.
Nhưng tăng thời gian viết code có đồng nghĩa với tăng hiệu quả?
Mặc dù những co số cho thấy thời gian của các lập trình viên dành cho việc viết code là quá ít, nhưng nó không nói lên được liệu các lập trình viên có làm việc hiệu quả không? Có phải cứ tăng thời gian là làm việc hiệu quả?
Số giờ đã làm việc là một trong một số chỉ số có thể được sử dụng sai được sử dụng để đo lường cho hiệu suất công việc. Đặc biệt trong thời điểm mà làm việc từ xa là tiêu chuẩn, đánh giá thời gian dành cho viết code cần phải nghiêm túc xem xét. Phát triển phần mềm là công việc phức tạp, trừu tượng, cần chú ý và do đó quá nhạy cảm với trạng thái tinh thần của developer. Có những yếu tố tiềm ẩn ảnh hưởng đến hiệu suất công việc: lo lắng, trầm cảm, kiệt sức, độc hại trong công việc, đau buồn, vi phạm và hàng trăm thứ khác có thể làm giảm hoặc đảo ngược năng suất cá nhân vào bất kỳ ngày nào. Nếu một lập trình viên phải làm nhiều giờ liền tuần này qua tuần khác, hoặc thậm chí 10-12 tiếng mỗi ngày không không có thời gian nghỉ phép, họ chắc chắn sẽ đạt hiệu quả rất thấp dù có toàn thời gian dành cho việc code.
Kết luận
Có một điều rất rõ ràng: các lập trình viên sử dụng quá ít thời gian cho việc viết và cải tiến code. Vì vậy các công ty cần tìm ra những giải pháp để tăng tỷ lệ phần trăm thời gian mà các nhà phát triển dành để viết code. Tuy vậy, tùy vào vị trí công việc và dự án, việc sử dụng ít thời gian cho việc lập trình cũng không phải luôn là điều tiêu cực. Điều quan trọng là bạn luôn tìm các cải tiến năng suất của bạn, thời hạn hoàn thành công việc và mục tiêu của bạn đặt ra.
Bài viết tham khảo thông tin từ các nguồn:
1/ How Much Time Do Developers Spend Actually Writing Code?
2/ Majority of developers spending half, or less, of their day coding, report finds
3/