Để trở thành Solution Architect thì nên bắt đầu từ đâu? Đâu là những hiểu lầm và suy nghĩ sai về nghề Solution Architect? Làm sao để tiến xa hơn với vị trí Solution Architect? Hãy cùng trò chuyện và gặp gỡ “thủ lĩnh” Solution Architect tại TIKI – anh Lê Minh Nghĩa, sẽ chia sẻ tất cả những kinh nghiệm và góc nhìn lâu năm trong nghề mà bất cứ Architect nào cũng quan tâm.
Solution Architect là gì?
Theo anh một Solution Architect có vai trò như thế nào ở một công ty Thương mại điện tử (TMĐT)? Anh có thể giới thiệu một cách khái quát về công việc của mình ở thời điểm hiện tại?
Mình gia nhập team cách đây 3 năm từ hồi cuối 2016 với vai trò là Solution Architect, hiện nay mình đang là Senior Technical Architect tại TIKI. Đối với mình, công việc Architect khá thú vị, và điều mà mình thích nhất đó là trải nghiệm – mình có thể nhìn thấy toàn bộ hệ thống phát triển như thế nào, mở rộng làm sao và mình có thể có tầm nhìn đáp ứng nhu cầu phát triển của công ty bằng cách nào. Phần này khá thú vị, song cũng khá thách thức. Thách thức ở đây nằm ở chỗ làm việc vừa phải tổng thể vừa phải chi tiết.
Architect không giống như nhiều bạn nghĩ vì không nhiều người từng trải qua công việc này. Architect thực chất là người “master builder”, là người phải hiểu rõ công việc xây dựng hệ thống đến mức nhìn thấy những thành phần nhỏ nhất, và biết rõ những thành phần ấy được cấu tạo ra sao. Đó không phải là công việc đơn thuần kiểu làm từ trên xuống (top-down), mà là công việc khá chi tiết và vất vả. Vì khi bạn vừa phải nhìn tổng thể vừa phải nhìn chi tiết, đồng nghĩa với việc bạn xử lý một lượng vấn đề rất lớn, và phải ra quyết định phù hợp tại từng thời điểm với từng hoàn cảnh với nguồn lực mình đang có.
Để trở thành một Solution Architect giỏi thì chúng ta cần phải chú ý phát triển những kỹ năng gì?
Đầu tiên, bạn phải là một engineer rất giỏi. Bạn phải là một “master builder”, nghĩa là một “bậc thầy” về xây dựng hệ thống. Chỉ khi nào bạn hiểu tường tận quá trình xây dựng hệ thống, lúc đó bạn có thể xây dựng bất cứ một hệ thống nào trong lĩnh vực mình đang tham gia – bạn sẽ hiểu được từng thành phần nhỏ được vận hành thế nào, thì bạn mới có khả năng trở thành một Architect.
Tuy nhiên, đó mới chỉ là điều kiện cần.
Điều kiện đủ ở đây là bạn phải có động lực, mong muốn nhìn từ trên cao xuống từng thành phần được cấu thành ra sao. Bởi vì đôi khi những engineer rất giỏi có thể giải quyết những vấn đề nhỏ nhưng lại không có khả năng nhìn tổng thể để kết nối tất cả các vấn đề lại thành hệ thống lớn, tức là bạn chưa có tầm nhìn của một Architect.
Ngoài ra, để trở thành Architect bạn cần có khả năng về con người, tức là tố chất về leadership (tài lãnh đạo) của bạn phải rất là tốt – một yếu tố rất quan trọng. Bởi vì không phải lúc nào những giải pháp bạn đưa ra cũng gặp thuận lợi, bạn phải hiểu được rằng bạn đang có trong tay những người như thế nào, những người ấy có khả năng ra sao về mặt kỹ thuật, và làm sao có thể kết nối những con người này để đưa giải pháp trở thành hiện thực. Đó là công việc mà đòi hỏi khả năng kỹ thuật và cả khả năng con người rất tốt.
Anh có thể miêu tả một career path cụ thể cho một Solution Architect được không?
Có 2 thứ theo quan điểm mình vừa chia sẻ.
- Bạn phải là một engineer thật sự đam mê – đam mê về công việc của mình và phải là một engineer rất giỏi và có background ngôn ngữ vững vàng. Bạn phải có khát khao lớn hơn nữa – khi đứng đầu của một hệ thống bạn có thể nhìn tổng thể hệ thống vận hành ra sao. Bạn có khát khao làm sao có thể kết nối những thành phần nhỏ để tạo nên những gì lớn hơn. Cái khát khao ấy sẽ thôi thúc bạn hướng tới những sự hình thành kỹ năng, năng lực của một Architect, đó là khả năng nhìn từ trên xuống (top-down).
- Bạn cũng cần có động lực để vượt qua những khó khăn công việc của một Architect, đó là vừa phải nắm được tổng thể cũng như những chi tiết. Ngoài ra, bạn cũng cần có khả năng vượt qua rào cản về con người để thuyết phục mọi người rằng “Solution của tôi đúng”.
Kinh nghiệm bản thân khi công tác tại TIKI
Anh có thể chia sẻ về một kỉ niệm đáng nhớ cũng như kinh nghiệm xương máu về việc ứng dụng một công nghệ mới vào sản phẩm của công ty?
Kinh nghiệm đáng nhớ nhất của mình đó là khi bắt đầu apply những giải pháp giúp hệ thống có thể chia tách được. Tại thời điểm đó, nhiều khái niệm và thuật ngữ ngành còn rất mới với nhiều người. Khi đó những giải pháp của mình đưa ra không phải lúc nào cũng được mọi người ủng hộ ngay lập tức.
Và kỷ niệm vui khi ở Tiki là khi ở đây, không phải lúc nào đưa giải pháp mới mọi người cũng hiểu, và ủng hộ theo kiểu là “Tôi hiểu giải pháp của bạn là sao” nhưng mọi người luôn luôn tạo điều kiện để người đó thực hiện. Người đó có quyền thử nghiệm, thực hiện ngay tại chỗ. Và khi giải pháp này đúng, mọi người sẽ ủng hộ và áp dụng chúng trên diện rộng. Khi mình đưa giải pháp đó ra, có thể mọi người chưa hiểu và chưa ủng hộ, nhưng mọi người luôn tạo điều kiện tối đa để mình thực hiện giải pháp đó. Và sau khi giải pháp đó thành hiện thực thì công nghệ nhanh chóng trên quy mô toàn công ty, mọi người có thể sử dụng công nghệ ấy để có thể replicate data, chia tách hệ thống tốt hơn. Nhờ vậy, Tiki có thể scale tốt hơn rất nhiều.
Đây là kỷ niệm rất ý nghĩa. Với bản thân mình, mình đã chứng minh được: 1 là giải pháp đúng, 2 là mình đã hiểu được giá trị văn hóa của chúng tôi là gì. Khi làm việc cùng nhau, không phải lúc nào công việc cũng mượt mà như mọi người thường nghĩ, nhưng ở đây chúng tôi có một thứ văn hóa tốt, đấy là mọi người có quyền thử nghiệm và khi đúng thì nó sẽ được nhân rộng một cách nhanh chóng. Điều đấy rất quan trọng đối với một công ty trẻ!
Ngành CNTT chưa bao giờ hết nóng, tuy nhiên các doanh nghiệp vẫn gặp khó khăn trong việc tuyển dụng các lập trình viên phù hợp, theo anh đâu là vấn đề?
Nguyên nhân đầu tiên là do nhu cầu quá lớn, không chỉ ở riêng TIKI mà nói chung tại các công ty công nghệ, vì đây là kỷ nguyên số và tất cả mọi người đều muốn số hóa nhanh nhất có thể. Mọi người muốn hệ thống thông minh hơn, muốn hệ thống làm được nhiều thứ hơn. Vì vậy, nhu cầu về IT vô cùng lớn ở Việt Nam và trên toàn thế giới.
Về phía doanh nghiệp, bài toán này càng khó hơn và số lượng ứng viên chất lượng thì không nhiều. Tại TIKI, phía công ty cũng khó khăn trong việc tìm được người phù hợp với tiêu chuẩn của mình. Người có năng lực thấp thì rất nhiều nhưng các bạn ấy không sẵn sàng giải quyết các bài toán tại TIKI, và cũng không cảm thấy hạnh phúc khi giải quyết các vấn đề và TIKI cũng không thu được giá trị từ các bạn đó.
Anh có thể chia sẻ một số khó khăn về kỹ thuật khi mở rộng mô hình B2C sang mô hình marketplace?
Khi chuyển từ B2C to marketplace về phía công nghệ thì có 2 khó khăn lớn.
Thứ nhất, B2C là mô hình mình mua hàng về và bán, nhưng hiện nay mình trở thành một cái sàn để các seller vận hành trên đó và có đến hàng chục, hàng trăm ngàn seller vận hành. Như vậy, tính phức tạp nghiệp vụ cũng tăng lên gấp bội, vì vậy đòi hỏi kỹ năng thiết kế hệ thống phần mềm (software) phải linh hoạt, dễ dàng hoạt động cho các nghiệp vụ mới, phát sinh liên tục.
Khó khăn thứ hai, đương nhiên là về mặt hiệu năng. Khi bạn có một lượng lớn giao dịch diễn ra trên hệ thống trong 3 năm marketplace, TIKI tăng trưởng trung bình 2 đến 3 lần mỗi năm, thì lượng giao dịch, đơn hàng và sản phẩm đều tăng gấp bội. Từ vài trăm nghìn sản phẩm lên đến hàng triệu sản phẩm, và như vậy lượng xử lý trở nên vô cùng khó khăn và phức tạp. Hạ tầng cũng phải mở rộng lên gấp nhiều lần. Vì vậy, để có thể build hệ thống đáp ứng nhu cầu về hiệu năng là một challenge lớn về mặt kỹ thuật. Người engineer tại TIKI cùng lúc sẽ phải giải quyết 2 việc, bạn phải build nên một phần mềm thật linh hoạt, mềm dẻo, thay đổi nhanh tương ứng với tăng trưởng vài ba lần mỗi năm. Bạn phải có system rất scale để có thể handle hàng trăm ngàn transaction mỗi ngày và xử lý lượng dữ liệu lên đến hàng triệu sản phẩm.
Theo anh nền tảng Data và Devops đang đóng vai trò như thế nào cho những doanh nghiệp thương mại điện tử tại thị trường Việt Nam?
Data và Devops là 2 khái niệm khác nhau, nhưng cả 2 đều rất quan trọng. Đối với data thì quá hiển nhiên, tất cả doanh nghiệp khi mở rộng thì mọi quyết định đều dựa trên dữ liệu. Mà dữ liệu là thứ quan trọng bậc nhất để mọi cấp bậc từ người nhân viên lấy hàng cho tới một manager C-level để make decision. Vì vậy, data ở TIKI cũng như tất cả các công ty E-commerce khác là vàng và thứ quan trọng nhất để chúng tôi đưa ra quyết định kinh doanh hiệu quả.
Còn DevOps liên quan đến quá trình phát triển hệ thống, development và triển khai hệ thống. DevOps rất quan trọng với những công ty có scale quy mô lớn, như TIKI có đến hơn 400 services và ứng dụng khác nhau theo mô hình microservice và hàng ngàn backgroundworker để chạy của hàng trăm engineer để phát triển. Với lượng mã nguồn triển khai lớn như vậy mà nền tảng DevOps không tốt thì sẽ rất khó để scale và mở rộng. Vì vậy DevOps cực kỳ quan trọng khi mà bạn và quá trình phát triển phần mềm trở nên phức tạp với quy mô lớn. Bất kỳ công ty công nghệ nào muốn scale lên thì cần DevOps rất tốt, bạn không thể triển khai manual khi bạn chỉ có 1 – 2 project.
Lời khuyên từ chuyên gia
Anh có thể chia sẻ cụ thể về lộ trình học/nghiên cứu của các công nghệ hiện có để đảm bảo tối thiểu có thể làm việc cùng team với anh tại TIKI?
Phải hiểu một điều là công nghệ là thuật ngữ rộng, nó bao hàm những yếu tố nền tảng và học thuật. Để làm việc tại TIKI thì đầu tiên các bạn cần có background, nền tảng tốt, bạn tốt nghiệp Đại học hay tự trang bị kiến thức miễn vững vàng đều tốt. Đấy là những điều tối quan trọng để bạn có thể làm việc tại TIKI. Về công nghệ theo hướng ngôn ngữ lập trình, thì bạn chỉ cần thành thạo những ngôn ngữ phổ biến, như Java, PHP, NodeJS hay Python, đó đều là những ngôn ngữ chúng tôi đều đang sử dụng. Nếu như bạn có những khả năng cơ bản về những ngôn ngữ đó, bạn có thể làm việc tại Tiki. Tại Tiki, điều quan trọng nhất là bạn phải luôn chào đón việc học hỏi những cái mới.
Anh có thể chia sẻ quy trình tuyển dụng của Tiki Engineering không? Những điểm mạnh hoặc lợi ích, phát triển bản thân hoặc điều gì thú vị nhất khi trở thành thành viên của tech team nói chung và team của anh nói riêng?
Process tuyển dụng của Tiki khá chặt chẽ vì Tiki mong muốn rằng mình có những ứng viên thật sự chất lượng và họ phải hiểu rằng chúng tôi rất nghiêm túc trước tài năng của họ. Nếu không tính vòng lọc hồ sơ thì sẽ có 4 vòng phỏng vấn chính, trong đó:
- 2 vòng phỏng vấn về problem-solving (xử lý vấn đề) dựa trên kiến thức về cấu trúc dữ liệu và giải thuật
- 1 vòng về system design (thiết kế hệ thống)
- 1 vòng về culture fit văn hoá doanh nghiệp.
Đây là 4 vòng cơ bản, nếu 1 bạn pass được 4 vòng đó thì đủ tiêu chuẩn để làm việc tại TIKI. Phía TIKI quan tâm đến những ứng viên, đầu tiên là có background tốt (1) về những kiến thức về cấu trúc dữ liệu và giải thuật tốt – là những thứ quan trọng để có thể giải quyết những vấn đề của Tiki. Thứ hai, bạn phải có khả năng xử lý vấn đề tốt (2), tức là bạn phải có những đề xuất giải pháp nhanh chóng khi có vấn đề phát sinh. Cái thứ ba tất nhiên là bạn cần có những kỹ năng cơ bản của những engineer về lập trình và thiết kế hệ thống (3). Trong thực tiễn những điều này rất quan trọng và cũng rất hữu ích, khi bạn đối mặt với những công nghệ mới, nếu bạn học nhanh thì sẽ có nhiều thời gian để làm hơn.
Có một điều mà dưới góc nhìn và trải nghiệm của mình và những bạn đã đồng hành cùng TIKI cảm thấy là điều “hấp dẫn” nhất của TIKI. Trong vòng 1 năm qua kể từ khi ứng dụng những quy trình hoạt động mới, thì TIKI có sự tăng trưởng kinh doanh cực kỳ nhanh và vượt trội – 2 đến 3 lần mỗi năm. Thế nhưng, TIKI có một hệ thống không tốt!
Mình gọi là “hấp dẫn” là vì, đó là 2 điều kiện mà mình nghĩ rằng nó rất cần thiết đối với một bạn engineer trẻ, khao khát được học, được làm và chứng minh bản thân mình. Bởi vì khi bạn có một hệ thống không tốt mà hệ thống ấy lại tăng trưởng rất nhanh tức là bạn có cơ hội để làm rất nhiều thứ. Với mình thì đây là những điều hấp dẫn nhất đối với một bạn engineer. Và những ai đã vượt qua giai đoạn thử thách thì đều cảm thấy rất xứng đáng, vì các bạn có thể làm rất nhiều thứ, có thể cống hiến và góp sức cho những thứ mà có tầm ảnh hưởng rất lớn đến hệ thống và bộ máy TIKI.
Anh chia sẻ về một ngày làm việc của mình và team tại TIKI?
Đối với một engineer, công việc hàng ngày khá là thú vị. Thú vị ở chỗ bạn gắn với một business tăng trưởng liên tục. Bạn thường xuyên nhận được những báo cáo đòi hỏi những yêu cầu, ý tưởng kinh doanh mới. Công việc hàng ngày của engineer nói chung là phân tích những yêu cầu về business để bạn thấy được cơ hội, và có thể mang lại lợi ích cho công ty và khách hàng và làm sao để biến ý tưởng ấy trở thành hiện thực nhanh nhất có thể. Hoặc đơn giản là làm sao để bạn giải quyết những vấn đề như phải scale hệ thống gấp 2, 3 đến 10 lần trước những vấn đề về hiệu năng. Đấy là những công việc hàng ngày của bạn engineer.
Anh hay dùng công nghệ và cách thức gì để quản lý công việc của team, cũng như đo đạc hiệu quả làm việc của họ?
Về cách thức quản lý, Tiki có một mô hình tổ chức tương đối phẳng và xem trọng tính linh hoạt mà nỗ lực để giải quyết những vấn đề có thể phát sinh. Vì vậy toàn bộ bộ máy engineer của TIKI được tổ chức thành những team nhỏ, thay đổi dựa trên nhu cầu về nghiệp vụ. Các team ấy được toàn quyền quyết định với những vấn đề thuộc phạm vi mình phải giải quyết. Bạn sẽ quyết định về giải pháp, quyết định về con người, để làm sao để giải quyết nhanh nhất và hiệu quả nhất. Bởi đặc thù của E-commerce là tăng trưởng rất nhanh, vì vậy việc ra quyết định trong quá trình xây dựng sản phẩm phải làm sao nhanh chóng nhất và hiệu quả nhất có thể.
Còn về công nghệ, ở Tiki mình không nghĩ có gì quá đặc biệt. Nó vẫn tuân thủ theo những công nghệ phổ biến trong cách thức quản lý công việc, về mã nguồn cũng như là về DevOps. Mọi thứ cũng phổ biến như là Genkin, Github mọi người theo dõi những nguồn quản lý để deploy.
Nỗi sợ lớn nhất của anh trong công việc công nghệ của mình?
Tùy vị trí mà mỗi người sẽ có những nỗi sợ khác nhau. Mình nghĩ rằng đối với những bạn engineer tại Tiki, các bạn cũng có áp lực giống như nhiều công ty khác – phải làm sao để hệ thống không chết. Khi các bạn engineer submit mã nguồn thì các bạn sẽ phải thận trọng để biết rằng nó không bị ảnh hưởng tiêu cực.
Áp lực thứ hai, cụ thể hơn là với cấp quản lý, công ty tăng trưởng rất nhanh, bạn cũng cần đưa ra những giải pháp nhanh chóng để làm sao không tạo ra những tình thế buộc bụng cho doanh nghiệp, bạn phải làm sao giải quyết những vấn đề về kinh doanh tốt nhất có thể để công ty tăng trưởng và mang lại doanh thu cho khách hàng.
Công nghệ recommendation của Tiki do mình tự phát triển hay sử dụng giải pháp nào khác? Anh có thể chia sẻ thêm về công nghệ này
Thực tế thì công nghệ recommendation tại Tiki cũng là cái “bát đồng”. Cái cơ hội để hoàn thiện và phát triển là rất lớn. Điều Đáng mừng là công nghệ này do Tiki tự làm, Tiki không nói là nó đã hoàn thiện nhưng Tiki cảm thấy rằng khi làm chủ được nó, thì cơ hội để chúng tôi cải thiện là rất cao.
Tiki có ứng dụng công nghệ AI không? Nếu có anh vui lòng chia sẻ chi tiết về việc ứng dụng này
Việc ứng dụng về AI thì rất nhiều. Đối với Tiki, AI là công nghệ tiếp theo để chúng tôi có thể phát triển thị phần. Vì nhu cầu xử lý trong business đòi hỏi Tiki phải ứng dụng hoạt động này ngày càng nhiều lên. Nếu công việc xử lý bằng tay sẽ rất khó để mở rộng lên, quy mô hàng trăm nghìn khách hàng, hàng triệu seller và hàng chục triệu sản phẩm, những việc xử lý bằng tay sẽ không ra quyết định bằng cách tự mình xử lý dữ liệu. Vì vậy AI rất quan trọng trong việc scale-up và mở rộng doanh nghiệp. Tiki còn ứng dụng AI trong tự động hóa quy trình, tối ưu hóa trong Marketing, search và trải nghiệm người dùng.
Xin cảm ơn anh Nghĩa về phần chia sẻ rất chi tiết vừa rồi. Hy vọng qua bài phỏng vấn này các bạn độc giả đã học hỏi thêm về vai trò của một Solution Architect cũng như làm thế nào để trở thành master builder tại công ty. Đừng bỏ lỡ những bài phỏng vấn các chuyên gia công nghệ hàng đầu tại mục Chuyên gia nói nhé!
Xem thêm việc làm Solution Architect tại TopDev