Bài viết được viết bởi Junade Ali – giám đốc kỹ thuật phần mềm kiêm cố vấn các nhà lãnh đạo kỹ thuật tại Haystack Analytics.
Trong năm qua, tôi đã nghiên cứu chi tiết về không gian phát triển phần mềm hiệu quả đang thay đổi như thế nào. Trong thời gian này, tôi đã nói chuyện với các nhà lãnh đạo kỹ thuật từ hàng chục doanh nghiệp, xem xét các tài liệu mới nhất và thậm chí tiến hành thăm dò ý kiến đại diện của các kỹ sư phần mềm.
Có thể dự đoán rằng, trong tương lai có ba xu hướng chính mà các nhà lãnh đạo công nghệ không thể bỏ qua. Cách mà các lãnh đạo công nghệ triển khai các xu hướng này với doanh nghiệp của họ sẽ giúp họ xác định mức độ thành công của họ trong việc thúc đẩy năng suất và hiệu quả cả các lập trình viên.
Môi trường Dev sẽ chuyển sang đám mây
Khi một developer bắt đầu một dự án mới, không có gì lạ khi họ cần dành tối thiểu 2 tuần chỉ để cố gắng đưa ứng dụng mà họ đang phát triển chạy trên máy tính cục bộ (local computer) của họ. Quá trình này không chỉ cần thiết cho các kỹ sư mới mà còn cần thiết đối với ngay cả các kỹ sư có kinh nghiệm, những người tham gia vào quá trình này. Khi các dự án phần mềm ngày càng phức tạp, quá trình onboarding ngày càng trở lên khó khăn hơn.
Ở các mức độ khác nhau, các công ty đã tìm cách giải quyết vấn đề này thông qua tài liệu và công cụ, nhưng không phải lúc nào cũng thành công. Các nhà phát triển đôi khi có thể rất kiên định về công nghệ mà họ sử dụng cho công việc của mình. Phần cứng, hệ điều hành và thậm chí cả trình chỉnh sửa mã có thể khác nhau đáng kể ngay cả giữa các nhà phát triển làm việc trong cùng một dự án.
Thêm vào đó, thực tế là môi trường nhà phát triển ngày càng cần hỗ trợ cả kiến trúc Intel và chip M1 mới của Apple, bên cạnh đó làm việc remote làm tăng thêm độ phức tạp khi chạy các môi trường phát triển cục bộ.
Môi trường phát triển cục bộ hiện nay phần lớn chỉ là một phần duy nhất trong vòng đời phát triển phần mềm được thực hiện cục bộ trên máy tính của các developer. Các bản dựng tự động, môi trường staging và các ứng dụng sản xuất đang chạy phần lớn đã chuyển từ máy tính tại chỗ sang đám mây.
Microsoft và Amazon trong những năm qua đều đang cố gắng nghiên cứu và phát triển để giải quyết những thách thức này. Vào tháng 8 năm nay, Microsoft đã phát hành GitHub Codespaces cho tính khả dụng chung. GitHub Codespaces cung cấp môi trường phát triển đầy đủ có thể được truy cập chỉ bằng một trình duyệt web có thể khởi động trong vài giây. Dịch vụ này cho phép các nhóm công nghệ lưu trữ mã của họ trong dịch vụ GitHub của Microsoft phát triển bằng cách sử dụng trình soạn thảo Mã Visual Studio hoàn toàn trên đám mây.
Amazon cũng có giải pháp riêng cho vấn đề này, với AWS Cloud9 cho phép các nhà phát triển chỉnh sửa và chạy mã của họ từ đám mây. Các startup cũng đã ra đời để giải quyết vấn đề này – vào tháng 4, Gitpod thông báo họ đã huy động được 13 triệu $ cho giải pháp chuyển phát triển phần mềm lên đám mây.
Không nghi ngờ gì nữa, chúng ta hoàn toàn có thể mong đợi việc áp dụng những công nghệ này ngày càng phát triển hơn trong năm 2022.
DevOps sẽ trở nên khoa học hơn
Nhóm DORA (Nghiên cứu và Đánh giá DevOps) của Google đã tiến hành nghiên cứu gắn hiệu quả hoạt động của tổ chức công nghệ với kết quả kinh doanh. Nghiên cứu của họ cho thấy rằng các công ty có tổ chức kỹ thuật hoạt động tốt hơn có khả năng đạt được các mục tiêu của tổ chức cao hơn gấp đôi và đạt được tốc độ tăng trưởng cao hơn 50% trong ba năm.
Các điểm chuẩn (benchmarks) năm 2021 do nhóm DORA của Google và Puppet độc lập thực hiện đã liên tục chỉ ra rằng ngành phát triển phần mềm đang ngày càng cạnh tranh. Số lượng các đội kỹ sư hoạt động tốt đang tăng lên đáng kể, trong khi tỷ lệ các đội có hiệu suất thấp đang giảm xuống. Một cuộc thăm dò ý kiến về các nhà phát triển phần mềm của Vương quốc Anh mà tôi đã thực hiện với Haystack Analytics và Survation cho thấy rằng 40% nhà phát triển phần mềm nói rằng họ có thể cung cấp các tính năng mới một cách đáng tin cậy thường vào cùng ngày họ được yêu cầu, nếu không chỉ trong vài giờ.
Để cung cấp chức năng mới một cách nhanh chóng và đáng tin cậy mà các nhà phát triển không bị thất vọng, các nhóm phát triển phần mềm phải đảm bảo các quy trình và công cụ của họ luôn hoạt động trơn tru nhất có thể. Năng suất của nhà phát triển (developers) được coi là quan trọng đến mức Netflix có một nhóm Developer Productivity, trong khi Google thuê nhiều kỹ sư vào chức năng EngProd (Engineering Productivity) của mình.
Trước khi cải thiện bất kỳ phần nào của quy trình phát triển phần mềm, điều quan trọng là phải tập trung vào vị trí các điểm nghẽn (bottlenecks). Vào năm 2021, một số công ty đã thu hút tài trợ để xây dựng nền tảng phân tích nhà phát triển (developer analytics platforms) nhằm làm nổi bật những điểm nghẽn này.
Các công ty phân tích dành cho nhà phát triển đã thu được tài trợ thành công vào năm 2021 bao gồm Haystack Analytics, LinearB, Swarmia và CodeClimate. Cá nhân tôi đã tư vấn cho nhóm của Haystack Analytics trong vài tháng qua và nhận thấy nhu cầu đang tăng lên, với doanh thu tăng trung bình 35% mỗi tháng.
Phần lớn những gì tôi đã viết ở đây chắc chắn đã được đẩy nhanh bởi sự phát triển trong làm việc từ xa giữa các nhà phát triển trong đại dịch Covid-19. Thay đổi này dường như sẽ còn phát triển hơn nữa và cho tới mãi về sau.
Báo cáo State of Octoverse năm 2021 của GitHub chỉ ra rằng 41% số người được khảo sát đang làm việc tại văn phòng công ty trước đại dịch, chỉ 10,7% dự kiến tiếp tục làm việc tại văn phòng sau đại dịch. Điều này cho thấy xu hướng làm việc từ xa đã trở lên phổ biến hơn bao giờ hết nhờ đại dịch, tỷ lệ nhân viên muốn làm việc tại văn phòng giảm 74%.
Báo cáo cũng cho thấy rằng các nhà phát triển mong đợi tỷ lệ làm việc kết hợp (hybrid working) tăng 41%, trong đó một số nhân viên làm việc hoàn toàn từ xa và một số đến văn phòng. Các công ty sử dụng người lao động làm việc hoàn toàn từ xa dự kiến tăng 46% so với trước đại dịch.
Theo GitHub, năng suất làm việc đang bắt đầu quay trở lại như mức trước đại dịch, nhưng rõ ràng cần phải thúc đẩy năng suất làm việc từ xa nhiều hơn nữa để bắt kịp với việc làm tại văn phòng đạt được. Một cuộc thăm dò ý kiến về các nhà phát triển phần mềm tại UK mà tôi triển khai cho Haystack Analytics và Survation cho thấy rằng trong số các kỹ sư phần mềm bị quá tải hay stress trong công việc ngày càng tăng trong địa dịch, 30% trong số họ cho biết nguyên nhân là do sự kết nối với các đồng nghiệp gặp khó khăn và không được linh hoạt như trước, bên cạnh đó 27% cũng cho biết một nguyên nhân khác dẫn tới điều này là do họ phải làm việc tại nhà, thiếu không gian sáng tạo.
Qua năm 2022, chúng tôi kỳ vọng tìm ra những cách thức mới để các đồng nghiệp không chỉ làm việc cùng nhau trực tuyến mà còn kết nối ngoại tuyến một cách hợp lý. Một số hội nghị nhà phát triển trực tiếp đã khởi động lại trong năm tới, với một số hội nghị thậm chí còn áp dụng phương pháp kết hợp. Tương tự như vậy, chúng tôi thấy các công ty đang sử dụng không gian làm việc của họ để làm nơi cộng tác (collaboration) không thường xuyên, thay vì làm việc liên tục.
Khi hình thức làm việc từ xa trở nên lâu dài, chúng tôi có thể mong đợi các nhà phát triển tìm ra những cách khác để đạt được những gì họ không có được so với khi làm việc trực tiếp, để giữ cho cả hai hình thức làm việc đều tốt nhất. Các hội nghị và không gian văn phòng cải tiến sẽ đóng một vai trò quan trọng trong sự chuyển đổi này.
Những nhà phát triển chắc chắn sẽ thấy sự phát triển tiếp tục của những hình thức trên trong năm tới. Từ đại dịch chúng ta cũng có thể nhìn nhận rằng tương lai còn rất lâu chúng ta mới có thể quay lại sự bình thường trong kinh tế hay công việc. Vì vậy trên đây là 3 xu hướng chính mà tôi nhận thấy có thể sẽ ảnh hưởng nhiều tới cộng đồng các developer. Mỗi sự phát triển trong 3 xu hướng đó sẽ đều đem lại những tiến bộ và phát triển mới trong năng suất hay phúc lợi của các nhà phát triển, giúp đẩy nhanh quá trình cung cấp phần mềm bất chấp sự hạn chế về nguồn cung cấp kỹ sư phần mềm.