2023 năm của Platform Engineering

Một trong những xu thế tuy chỉ mới xuất hiện gần đây nhưng đã nhận được sư chú ý và đón nhận rộng rãi trong cộng đồng như lời giải cho bài toán DevEX.

Upload image

Trong thế giới hạnh phúc của lập trình viên !

DevEX là viết tắt của Developer Experience - định nghĩa về trải nghiệm của người kĩ sư khi thực hiện một tác vụ bất kì trong toàn bộ quá trình phát triển và vận hành sản phẩm.

Ví dụ: DevEx đã thay đổi khá nhiều khi một lập trình viên Java cổ điển bắt đầu sử dụng Spring làm framework, dùng Maven làm build script, dựng Jenkins làm Build tool và dùng GIT thay cho SVN.

Khác với các lĩnh vực khác, sản phẩm phần mềm thường là kết quả của trí tuệ tập thể và sinh ra từ trong thinh không nên văn hóa kĩ sư phần mềm là khá khác biệt so với các nghề khác đồng thời người ta tin rằng nếu lập trình viên vui vẻ và thoải mái thì họ sẽ tạo ra những dòng mã hiệu quả và ít lỗi hơn.

Qua rồi thời những văn phòng đẹp đẽ với những bữa ăn miễn phí cùng những tách cà phê ngon khi chờ build và không có mấy việc ngu ngốc quan liêu ảnh hưởng đến những kĩ sư phần mềm với chiếc bàn phím cơ của họ, thời đầu khi mà những framework còn giúp mọi việc dễ chịu hơn nữa!

Công nghệ mới làm khổ mấy DEV già, DEV trẻ cũng chả sướng hơn!

Trong giai đoạn 5 năm trở lại đây, quá trình chuyển đổi số diễn ra mạnh mẽ đã góp phần thay đổi nhiều doanh nghiệp đồng thời tạo ra nhiều việc làm và bài toán cho các kĩ sư phần mềm, một nghề chưa bao giờ ngừng hot trong bối cảnh thiếu hụt nhân sự CNTT. Cách làm phần mềm ngày càng Agile, ngày càng có nhiều công cụ về hạ tầng (Infra as Code, Pipeline as Code...), nhiều nền tảng công nghệ (Cloud, K8s,...) và vô số framework mới để phát triển các hệ thống một cách nhanh hơn, đơn giản hơn, hiệu quả hơn.

Mặt trái của vấn đề này chính là ngày càng nhiều kiến thức cần người lập trình viên nắm rõ và điều này đang tạo nên áp lực mang tên cognitive load - the total amount of mental effort being used in the working memory. Nói dễ hiểu là khổ thân mấy ông dev lắm, không sướng đâu nhất là mấy ông gánh tạ thì giờ còn khổ hơn. Còn cụ thể cognitive load thời nay thì bức hình bên dưới sẽ giải đáp cụ thể:

Upload image

Inspired by Daniel Bryant at PlatformCon 2022

Hệ lụy của cognitive load khi đặt vào bối cảnh tuyển dụng nóng của ngành thì ôi thôi: nào là burn out, nào là down mood, nào là những hệ thống mà technical debt với bug chìm, bug features làm cho những dev kì cựu nhất cũng mệt mỏi và chán nản. Tất nhiên, không phải tình hình chung vì một số đội ngũ có nền tảng tốt đã sớm có sự chuẩn bị và thay đổi theo xu thế có thể kể đến các keywords như DORA metrics, Team Topologies, No Project...

Hầu hết các tổ chức dẫn đầu về công nghệ đều tạo ra một môi trường hạnh phúc cho các lập trình viên trong suốt lịch sử phát triển của công nghệ, dù các biến động về kinh tế đang tác động rất mạnh tới ngành.

Mưu cầu hạnh phúc cho các lập trình viên !

Trong năm 2022 vừa qua, từ khóa Platform Engineering đã dần thu hút sự chú ý và ủng hộ mạnh mẽ của cộng đồng như một lời giải hợp lý cho việc nâng cao DevEX hay nói nôm là để cho các lập trình viên hạnh phúc hơn trong công việc hằng ngày.

Có rất nhiều định nghĩa nhưng hiểu đơn giản thì:

  1. Internal Developer Platform (IDP) với rất nhiều thứ miễn là giúp ích cho lập trình viên trong suốt vòng đời ứng dụng
  2. Self-services không cần quy trình hay sự hỗ trợ từ phòng ban nào, lập trình viên có thể dùng ngay vào công việc của mình

Yếu tố 1 nhấn mạnh vào việc IDP là một product độc lập được phát triển bởi Platform Team và xem các lập trình viên như là khách hàng. Đây là khác biệt quan trọng khác với các quy trình mang tính ép buộc từ top-down được triển khai nội bộ. Thông qua việc xem xét các điểm chạm trên developer journey, Platform Team sẽ hiểu về các pain-points thực tế đang phổ biến trong tổ chức và đưa ra lời giải thông qua các features mới của platform.

Yếu tố 2 mang ý nghĩa quan trọng về việc giải quyết cognitive load, thật vô lý nếu như phải học hay mất thời gian nghiên cứu feature của platform, thế sẽ không khác gì đi học framework mới. Với yêu cầu cao về tự động hóa, self-services là một yêu cầu bắt buộc với Platform Engineering để tránh tăng thêm cognitive load. Bên cạnh đó, khi xem IDP là product, thì viêc tự động hóa cao sẽ giúp sản phẩm tiếp cận được nhiều khách hàng hơn, từ đó tạo ra nhiều hạnh phúc hơn.

Khó khăn trên con đường đi tìm hạnh phúc cho lập trình viên !

Không phải pantry hoành tráng, những bữa ăn miễn phí, những phần quà xịn xò mà chính việc cảm thấy vui vẻ và thoải mái trong công việc hằng ngày cũng như tìm thấy ý nghĩa trong những dòng code mới là thứ nuôi dưỡng nghề nghiệp kĩ sư. Ở góc độ tổ chức, đó chính là Engineering Culture mà tổ chức đó tin tưởng, thừa nhận và định hình thông qua cách thức hoạt động, tuyên truyền và ngầm định.

Upload image

Hầu hết các tổ chức dẫn đầu xu thế vốn đã nổi tiếng về Engineering Culture của mình trong khi phần lớn số đông các lập trình viên đang làm cho các tổ chức mà chưa có nhiều sự quan tâm của lãnh đạo hay vẫn còn nhiều nhầm lẫn về định nghĩa và cách triển khai.

Việc không xem IDP như một sản phẩm sẽ dẫn đến tăng thêm triển khai top-down mang tính ép buộc hình thức và tác dụng ngược tới năng suất của kĩ sư. Tuy nhiên, vì vẫn là sản phẩm dùng cho nội bộ nên sẽ khó trong việc đo đạc các tiêu chí và tìm cách quy đổi thành tiền hay năng suất để thuyết phục ban lãnh đạo công ty đầu tư và ủng hộ. Một số tiêu chí dù rất ý nghĩa nhưng vẫn mang tính chủ quan khi đánh giá như: việc rút ngắn thời gian catch-up trong dự án từ 1 tháng xuống 2 tuần, tăng thời gian học hằng tuần cho các kĩ sư,...

Thách thức cuối cùng đó là việc xây dựng và duy trì cộng đồng kĩ sư là khá khó khăn vì vốn dĩ kĩ sư là một loài khá đặc biệt, điều này phản ánh khá rõ khi ở Việt Nam số lượng kĩ sư phần mềm khá lớn nhưng các cộng đồng và sự chia sẻ thì lại chưa tương xứng với quy mô này.

Lời kết

Software is eating the World & Happy Programmer invent better softwares.
Dù vẫn còn nhiều chông gai phía trước nhưng chắc chắn xu hướng Platform Engineering sẽ góp phần thay đổi các tổ chức kĩ sư theo một cách bền vững hơn và mong rằng các lập trình viên sẽ luôn hạnh phúc trong công việc hằng ngày !

Atekco - Home for Authentic Technical Consultants