Nội dung chính
Bạn không cần phải biết code mới viết phần mềm được, các nền tảng low code đã chứng minh được điều này. Đây là một loại nền tảng mới khai thác sức mạnh của tự động hóa để hỗ trợ bất kỳ ai cũng có thể tạo ra các ứng dụng chỉ bằng một vài thao tác đơn giản.
Phát triển phần mềm với low-code và no-code platform thật sự đã làm cho cuộc sống này trở nên dễ dàng hơn. Tuy nhiên, khi những nền tảng này phát triển, nhiều người nghi ngờ chúng có thể thay đổi thị trường việc làm và mức lương lập trình viên theo hướng xấu hơn. Để làm rõ thêm về vấn đề này, ITviec đã có buổi phỏng vấn với anh Phạm Thanh An – Director of Software Engineering tại TIKI và đã có nhiều thông tin vô cùng hữu ích.
Việc làm Engineer trên Toàn Quốc
Low-code là gì?
“Tất cả những công cụ mà có thể sử dụng để xây dựng được các quy trình tự động mà không cần phải viết quá nhiều code thì được gọi là low-code hoặc cao hơn nữa là khái niệm no-code, tức là không cần phải viết một dòng code nào.” Anh An nhận định về khái niệm sơ khởi của low-code và no-code.
Low-code, hay no-code, là một hướng phát triển phần mềm theo cách tiếp cận trực quan. Theo đó, những nền tảng low-code cho phép người sử dụng viết ít code còn no-code thì không cần phải viết thêm dòng code nào. Những nền tảng low-code cơ bản sẽ có các thành phần (components) đã được tạo sẵn giống như là những mảnh ghép Lego, người dùng chỉ cần chọn mảnh ghép Lego mà mình muốn và dùng tính năng kéo-và-thả (drag-and-drop), sau đó thiết lập lại các thông số và nối các thành phần này lại với nhau để hoàn thành một giải pháp cụ thể.
Hiện nay, trên thị trường đã xuất hiện nhiều nền tảng low-code vô cùng dễ sử dụng, tiện lợi cho quá trình phát triển phần mềm như là bubble.io, airdev.co, webflow.com, zapier.com, airtable.com,… hoặc Excel, PowerPoint cũng là những nền tảng low-code, no-code sơ khởi và thân thuộc nhất – tuy nhiên, những nền tảng này chỉ giới hạn người dùng trong công cụ đó mà không thể phát triển bên ngoài nền tảng. Anh An còn bật mí rằng trang web đầu tiên mà anh phát triển vào những năm còn đang học cấp 2 chính là được tạo ra bằng Microsoft PowerPoint.
Với những khả năng mà low-code có thể mang đến cho người dùng hiện tại, nền tảng này có thể thực hiện những nhiệm vụ đơn giản, hỗ trợ tự động hóa quy trình làm việc.
Low-code là hướng tiếp cận phát triển phần mềm phù hợp với hầu hết mọi doanh nghiệp, từ doanh nghiệp quy mô nhỏ đến lớn, nhất là đối với những doanh nghiệp lớn.
Theo anh An chia sẻ, doanh nghiệp càng lớn thì khối lượng công việc của team development sẽ càng lớn và timeline lúc nào cũng sẽ rất chặt nên nhờ vào sự xuất hiện của low-code platform, tự bản thân CEO, Project Manager, Product Manager có thể tự nghĩ ra giải pháp tự động cho các vấn đề mà mình gặp phải hoặc có thể thử nghiệm các thay đổi mà không cần đến sự hỗ trợ của lập trình viên – vốn dĩ đã rất bận rộn với công việc development cho các tính năng mới. Sau đó, nếu họ cảm thấy ổn với flow đó thì sẽ trao đổi với lập trình viên để phát triển. Như vậy, thời gian làm việc trong ngày của lập trình viên sẽ được tối ưu hóa và tạo ra giá trị thật.
Tham khảo ngay: Việc làm Product Manager trên Toàn Quốc
Tự bản thân anh An cũng mong muốn thời gian của mình được sử dụng vào những việc có thể đem lại giá trị cao hơn và sáng tạo hơn bằng cách tận dụng được ưu điểm của các công cụ phù hợp và coding không phải là công cụ duy nhất, anh còn cho rằng “Đối với anh, code đẹp nhất và tốt nhất là no code, vì no code thì cũng đồng nghĩa với no bug.”
Ưu điểm và Nhược điểm khi làm việc với low-code platform
- Ưu điểm:
Một ưu điểm vô cùng lớn là bất kỳ ai cũng có thể sử dụng các nền tảng low-code và no-code, kể cả người dùng có biết về code hay không. Nhờ vậy, low-code platform đã mở ra một cánh cửa mới cho tất cả những ai muốn phát triển sản phẩm. Nếu bạn là một startup đang suy nghĩ đến việc phát triển phần mềm cho doanh nghiệp của mình thì low-code sẽ hỗ trợ bạn rất nhiều.
Một ưu điểm khác mà anh An nhận thấy trong quá trình tìm hiểu về low-code chính là nền tảng này giúp rút ngắn thời gian phát triển sản phẩm, từ đó tiết kiệm được nguồn lực sẵn có. Nhờ có low-code platform, doanh nghiệp có thể tinh gọn lại quá trình làm việc.
Ví dụ như quy trình làm việc thông thường của team sẽ là: CEO hoặc Product Manager lên ý tưởng. Tiếp theo, họp toàn team để test flow, chốt ý tưởng, sau đó là planning, và hiện thực. Các bước này đều rất tốn thời gian và liên quan đến nhiều người.
Nhưng với low-code platform, ta có thể cắt đi các bước ở giữa. Có nghĩa rằng, tự CEO và Product Manager có thể hiện thực và kiểm thử được giải pháp để có thể kiểm thử được ý tưởng và hiện thực các tính năng bằng việc sử dụng nền tảng low-code.
Tuy nhiên, low-code platform cũng chỉ mang ý nghĩa “thử nghiệm” những ý tưởng trong đầu, hoặc xây dựng những giải pháp hỗ trợ cho công ty. Việc này tiết kiệm thời gian thử nghiệm ý tưởng trước khi quyết định. Những người không chuyên về kỹ thuật khi cần xây dựng một sản phẩm hoàn chỉnh vẫn cần sự tư vấn, hỗ trợ của lập trình viên. Có thể nói, low-code chỉ hiệu quả khi được áp dụng trong những trường hợp nhất định.
Ưu điểm cuối mà anh An chia sẻ là các nền tảng low-code còn hỗ trợ người dùng trong việc tích hợp với các nền tảng khác và còn bao gồm cả quản lý về user, database… nên giúp lập trình viên tiết kiệm được thời gian trong phần này. Nhưng đây cũng vừa là ưu điểm mà cũng là khuyết điểm. Bạn tiếp tục theo dõi ở phần tiếp theo của bài viết nhé.
- Nhược điểm:
Anh An chia sẻ 4 nhược điểm lớn nhất của một nền tảng low-code mà anh nhận thấy. Đồng thời, đây cũng là những khó khăn, hạn chế mà một người không chuyên về kỹ thuật dễ mắc phải khi làm việc với low-code platform:
Đầu tiên, với một sản phẩm, việc xây dựng sản phẩm “chạy” được chỉ mới là bước đầu tiên thôi, mà bước này thì low-code có thể hỗ trợ được, còn những bước tiếp theo như bảo trì (maintainability), mở rộng (extensibility), khả năng chịu tải (scalability) và khả năng làm việc trên cùng một code base (collaboration) thì các nền tảng low-code chưa có khả năng này.
Khuyết điểm trên cũng là hạn chế lớn nhất làm cho low-code platform chưa thể phát triển mạnh và thay thế được các cách phát triển phần mềm thông thường. Vì để xây dựng được một phần mềm đáp ứng được nhu cầu thay đổi liên tục của doanh nghiệp thì đội ngũ lập trình viên phải có khả năng để tùy biến phần mềm liên tục, trong khi với môi trường của low-code thì người dùng sẽ phải phụ thuộc vào những tính năng đã có sẵn, hoặc là phải chờ tính năng mới.
Với tình hình hiện tại, có lẽ chỉ khi nào có một phần mềm có thể được mở rộng và scale thành công với low-code platform thì các nền tảng này mới được công nhận là đã “ready” và khi đó mọi người lúc đó mới tự tin để xây dựng những phần mềm phức tạp hơn và đòi hỏi về hàm lượng engineering cao hơn trên các nền tảng low-code.
Tham khảo ngay: Việc làm Software Engineer tại TP. HCM
Thứ hai, không một low-code platform nào có thể phục vụ được 100% tất cả những gì người dùng muốn vì mỗi platform sẽ chỉ cung cấp được những tính năng giới hạn. Anh chia sẻ thêm rằng “Anh chưa tìm thấy được một nền tảng low-code nào có thể xây dựng được một sản phẩm phần mềm phức tạp từ A-Z. Hiện tại, thông thường cần phải kết nối nhiều nền tảng với nhau nếu muốn xây dựng flow xử lý hoàn chỉnh.”
Chính vì thế, nếu một người có nền tảng kỹ thuật vững vàng thì họ sẽ hiểu được vấn đề nằm ở đâu và nhanh chóng tìm được hướng giải quyết, còn những ai không chuyên về xây dựng hệ thống thì nhiều khả năng sẽ bị “kẹt” lại ngay khâu đó, khi mà nền tảng mình đã đầu tư tìm hiểu không hỗ trợ được nhu cầu hiện tại, và cũng không tìm được giải pháp thay thế.
Thứ ba, nhược điểm này tiếp nối ý với nhược điểm 2, đó chính là vì để hiểu rõ “đường đi nước bước” của một nền tảng low-code sẽ khá tốn thời gian nên thông thường, chỉ có khoảng 1 hay 2 người trong team biết rõ cách hoạt động của nền tảng này. Xét về mặt doanh nghiệp, đây là một nước đi vô cùng mạo hiểm.
Vì không giống như việc lập trình thông thường thì các lập trình viên có thể quản lý code thông qua git, và có thể xem lại lịch sử hoặc tua lại một phiên bản cũ hơn. Ở đây, nếu những nhân tố này rời khỏi đội nhóm, thì sẽ không còn ai hiểu được cách vận hành nữa. Chính vì thế, chưa thể hoàn toàn dựa vào low-code platform để phát triển phần mềm cho doanh nghiệp lớn được.
Cuối cùng, một nhược điểm lớn khi làm việc với low-code platform chính là “sự trói buộc”. Khi mình xây dựng tất cả tính năng trên một platform cụ thể thì xử lý thì sẽ rất tiện thời gian đầu; tuy nhiên, sau một thời gian dài, người dùng đang tự trói buộc mình và phụ thuộc rất nhiều vào platform đó. Lúc này, mình không biết được trong blackbox đó, hệ thống đang vận hành thế nào, nếu có gì rủi ro hay sự cố mình hoàn toàn không kiểm soát được, và việc chuyển qua một nền tảng khác không hề dễ dàng khi dữ liệu để vận hành đã nằm trên nền tảng hiện tại.
Liệu Lập trình viên có bị thay thế không?
“Anh sẽ trả lời thẳng luôn, low-code sẽ không thay thế công việc của Lập trình viên”, anh An chia sẻ thêm:
Đối tượng chính của low-code platform không phải là lập trình viên. Như đã giải thích ở trên, low-code tập trung hỗ trợ cho những người không muốn code (hoặc không biết code) trong việc đưa ra giải pháp giải quyết một nhu cầu cụ thể mà thôi.
Chính vì thế, low-code có tác dụng rất tốt trong ngắn hạn nhưng khi đi lâu dài thì không. Thật ra, với sự xuất hiện của low-code platform, lập trình viên sẽ được có thêm thời gian làm những việc thật sự cần thiết và có sức sáng tạo cao hơn còn những tác vụ đơn giản hoàn toàn có thể tận dụng thế mạnh của low code.
Anh đưa ra một ví dụ thế này: Khi bạn cần di chuyển từ điểm A đến điểm B, bạn có thể tự mình làm việc đó hoặc bạn có thể đặt Grab để giúp bạn làm việc đó. Việc bạn tự mình lái xe cũng tương tự như việc mình tự xây dựng phần mềm; còn việc dùng Grab sẽ giống với mình tận dụng sự tiện lợi của nền tảng low-code. Hai hình thức này tồn tại song song và độc lập với nhau, đều có giá trị riêng và không thay thế lẫn nhau.
Nhìn nhận vào thực tế, một người lập trình viên được “săn đón” không phải chỉ bởi vì khả năng code của anh ấy hay cô ấy tuyệt hảo đến thế nào mà còn vì những giá trị khác, như khả năng linh hoạt, tư duy (mindset) phân tích, bóc tách và xử lý vấn đề mà một người không chuyên không thể nào nắm vững được, kể cả mô hình AI cũng không thể có khả năng xử lý vấn đề như một lập trình viên.
Ví dụ như, khi khách hàng gặp một vấn đề, một người lập trình viên sẽ biết ngay vấn đề đó nằm ở đâu, vì họ là người hiểu rõ code base nhất. Từ đó, vấn đề của khách hàng sẽ được giải quyết nhanh chóng.
Lật ngược tình huống, nếu để một người không chuyên kỹ thuật sử dụng nền tảng low-code khi gặp phải vấn đề, thì sẽ rất khó cho họ để hiểu nguồn gốc vấn đề nằm ở đâu. Và điều nguy hiểm nhất chính là mình không hiểu được khách hàng đang gặp vấn đề gì và khi hiểu được thì mình không sửa được.
Đồng thời, với những nhược điểm như đã có nêu ở phần trước, low-code platform chỉ có thể đóng vai trò hỗ trợ trong quá trình xây dựng sản phẩm chứ khó có thể hoàn toàn thay thế được lập trình viên.
Khi công việc được đơn giản hóa, các lập trình viên lúc đó sẽ làm việc giống như một kiến trúc sư hệ thống – họ sẽ suy nghĩ về việc thiết kế module thế nào, nối với nhau thế nào,… Nhìn chung, khi đầu óc và thời gian của lập trình viên được “giải phóng” khỏi những công việc vốn dĩ có thể được hỗ trợ bởi nền tảng low-code, họ sẽ ngày càng sáng tạo hơn, xây dựng những cái chưa có, đột phá trong công việc hơn.
Tham khảo ngay: Việc làm Developer trên Toàn Quốc
Ngoài ra, việc thử nghiệm trình độ tương tác với low-code cũng sẽ tạo thêm cơ hội cho lập trình viên và những người dùng khác học hỏi lẫn nhau, sáng tạo cùng nhau trong một sân chơi chung cho cả hai bên, đơn cử như tại Tiki Hackathon 2021 với nền tảng Tini App.
Xem ngay: Lập trình viên lương bao nhiêu?
Tương lai của low-code
Gartner – Công ty tư vấn và nghiên cứu toàn cầu chuyên cung cấp thông tin cho các nhà lãnh đạo về ngành CNTT cùng những ngành nghề khác, đã dự đoán rằng đến năm 2024, 65% các phần mềm sẽ được phát triển trên nền tảng low-code. Có một điều ta phải công nhận rằng low-code là tương lai, là một ý tưởng đột phá và sẽ không biến mất mà chỉ ngày càng phát triển hơn.
Thậm chí, anh An còn “tưởng tượng” rằng nếu một ngày nào đó, mình chỉ cần viết ra hoặc nói ra những tính năng mong muốn rồi công cụ sẽ tự động phát triển phần mềm cho mình luôn thì quả thật rất thú vị. Công việc của những người phát triển sản phẩm chỉ là nghĩ ra những ý tưởng thật hay thôi và công việc của lập trình viên lúc này sẽ là hướng dẫn cho các AI học cách để code các tính năng này Hiện nay, OpenAI là một trong số ít những công cụ đã có khả năng như trên.
Bạn có thể tìm hiểu về cách hoạt động của OpenAI tại bài viết này.
Vậy thì, một tương lai mà cả lập trình viên và low-code platform cùng tồn tại sẽ là một tương lai như thế nào? Theo anh An chia sẻ rằng giống như việc học một ngôn ngữ lập trình cũng mất thời gian, bất kỳ ai muốn làm việc với một nền tảng low-code cũng phải mất một khoảng thời gian để nghiên cứu và tìm hiểu, thậm chí là còn “dài hơi” hơn so với khi học ngôn ngữ. Chính vì thế, anh An đưa ra kết luận:
Trong tương lai, khi low-code platform trở nên phổ biến hơn, ngành công nghệ sẽ sản sinh ra một nhóm nghề mới mà anh tạm gọi là Low-code Engineer. Họ sẽ sở hữu những nhóm kỹ năng (skills sets) riêng biệt, đặc thù như biết kết nối các khối lego của low-code như thế nào, hiểu rõ các low-code platform hoạt động ra sao, giải quyết được bài toán cụ thể nào…
Và đây cũng là những điều mà lập trình viên truyền thống cũng cần phải học khi muốn làm việc với nền tảng low-code.
Nhìn chung, nếu ví lĩnh vực phát triển phần mềm như một phần bánh lớn thì khi có sự gia nhập của low-code, miếng bánh sẽ ngày càng trở nên to hơn, tất cả mọi người từ chuyên hay không chuyên kỹ thuật đều có miếng bánh riêng của mình, không ai giẫm chân ai, không ai tranh giành với ai.
Tham khảo ngay: Mức lương IT cho các vị trí phát triển phần mềm & nhiều vị trí khác
Thông tin về anh Phạm Thanh An:
Anh Phạm Thanh An đã có hơn 10 năm kinh nghiệm trong lĩnh vực phát triển phần mềm. Hiện tại, anh đang công tác tại TIKI được 2 năm với vai trò là Director of Software Engineering. Trong thời gian này anh đã chịu trách nhiệm xây dựng hệ thống của Tiki Lướt (nền tảng mạng xã hội của Tiki) và của nền tảng Tini App cho Tiki. Trong đó, có hơn 1 năm anh giữ vị trí Head of Engineering của TicketBox sau khi TicketBox được sáp nhập vào nhằm tích hợp TicketBox vào hệ sinh thái của Tiki và phát triển TicketBox theo hướng bổ sung cho hệ sinh thái của Tiki.
Trước khi gia nhập TIKI, anh đã có gần 2 năm kinh nghiệm với vị trí Lead Engineer tại Trusting Social. Đây là công ty đầu tiên anh làm tại Việt Nam sau 10 năm học tập và làm việc tại Mỹ. Trong thời gian ở Mỹ, anh đã dành 4 năm làm Senior Software Engineer tại Ultimate Software – một trong những công ty chuyên về HR lớn nhất nước Mỹ với định giá lên đến vài chục tỷ đô la và các khách hàng bao gồm Google, Microsoft… Anh là một trong những engineer đã xây dựng hệ thống cloud đầu tiên cho Ultimate Software và hệ thống này đã tiết kiệm cho công ty hàng triệu đô la tiền server hàng tháng. Hệ thống này sau đó vẫn được sử dụng và phát triển thành nền tảng Ultimate Cloud với tất cả các sản phẩm của Ultimate Software được triển khai trên này.
Trước đó, anh đã có hơn 3 năm làm việc ở các start up và các công ty phần mềm khác nhau tại Mỹ với các vai trò khác nhau như Lead of Engineering, Senior Software Engineer, và Software Engineer.
Bạn thấy bài viết hay và cần thiết với nhiều người? Đừng ngại nhấn nút Share bên dưới nhé.
Và đừng quên tham khảo việc làm IT trên ITviec!