Bài học từ việc rút ngắn thời gian xây dựng ứng dụng xuống chỉ còn ¼

Trung bình, một ứng dụng ra mắt sẽ mất từ 6-8 tháng từ giai đoạn hình thành ý tưởng, build, testing đến hoàn thiện nhưng với những công nghệ mới ra đời, thời gian này cũng rút ngắn đáng kể. Cùng TopDev gặp gỡ anh Đặng Tiến Dũng – CEO & CTO đồng thời là Co-Founder của Futurify để lắng nghe những chia sẻ từ quá trình chuyển đổi build sản phẩm theo cách thức truyền thống sang mô hình công nghệ mới và kinh nghiệm làm việc với các đối tác nước ngoài.

1/ Trước tiên, anh có thể giới thiệu đôi chút về công ty Futurify?

Futurify là công ty Outsourcing với tôn chỉ xây dựng các ứng dụng sáng tạo, cung cấp các giải pháp tối ưu nhất cho khách hàng. Được thành lập từ năm 2012, sau 5 năm thành lập và phát triển, Futurify đã tích lũy được rất nhiều kinh nghiệm và xây dựng thành công quy trình phát triển sản phẩm chuẩn. Từ những khách hàng đầu tiên ở Canada cho đến nay, Futurify đã mở rộng đến với khách hàng trong và ngoài nước thuộc nhiều nhóm ngành, lĩnh vực khác nhau.  

2/ Được biết Futurify đã triển khai rất nhiều dự án trong và ngoài nước. Vậy dự án nào khiến anh tâm đắc nhất cho tới thời điểm hiện tại?

Với một công ty startup được gầy dựng từ con số 0, nên đối với anh, mỗi dự án là một trải nghiệm mới mẻ và đều có những dấu ấn riêng. Nhưng để nói về dự án khiến anh tâm đắc nhất thì có lẽ đó là dự án M&E – là một dự án của tổ chức phi chính phủ  ActionAid Vietnam – AAV (chi nhánh của ActionAid International) nhằm giúp cải thiện cuộc sống của người dân. Đây là một dự án lớn đánh dấu bước phát triển nhảy vọt của Futurify, vì ở dự án này team Futurify tham gia toàn bộ quy trình tạo ra sản phẩm: từ lấy ý kiến khách hàng, xây dựng sản phẩm, kiểm định, training cho khách hàng. Khó khăn rất nhiều vì tụi mình phải áp dụng công nghệ mới mà team chưa từng làm trước đó. Trước đây, bên anh dùng framework Orchard build trên nền .NET MVC  nhưng dự án M&E lại yêu cầu không dùng framework, nên gần như mọi người trong team phải vừa làm vừa học mọi thứ. Cũng nhờ đó mà anh em đã học hỏi được rất nhiều kinh nghiệm: làm việc với khách hàng, hỗ trợ khách hàng, hiểu được quy trình, bản chất của sản phẩm… Những bài học có được trong dự án thực sự đã ảnh hưởng tới định hướng phát triển công ty sau này rất nhiều.

Rất may dự án M&E cũng đạt được những thành công nhất định, ứng dụng web mà Futurify tạo ra đã giúp AAV giải quyết được vấn đề mà họ gặp phải đó là theo dõi và đánh giá hệ thống trực tuyến, đưa ra các báo cáo nhằm giúp nâng cao hiệu quả hoạt động của M&E, hỗ trợ công việc của AAV tốt hơn. Futurify rất tự hào về những gì team đã làm được.

3/ Theo anh, làm dự án với đối tác nước ngoài thì có điểm gì khác so với đối tác Việt Nam?

Nhìn chung, dự án trong hay ngoài nước cũng không có nhiều khác biệt lắm, mỗi khách hàng đều có một ý tưởng, một vấn đề cần giải quyết. Tuy nhiên, thông thường, khách hàng nước ngoài sẽ biết chính xác điều họ muốn, chỉ cần cung cấp những gì họ cần, nhưng ngược lại chúng ta lại gặp khó khăn về giao tiếp. Còn đối với khách hàng Việt Nam, đôi khi họ không rõ ràng về mặt yêu cầu, nên giai đoạn hiểu nhau và đề ra giải pháp lâu hơn. Lúc đó, đòi hỏi phải có kinh nghiệm giải quyết vấn đề, giải pháp đưa ra cần rõ ràng, lộ trình cụ thể, tìm hiểu kĩ yêu cầu của khách hàng và giải pháp đề ra phải phù hợp.

4/ Điểm đặc biệt trong quy trình xây dựng sản phẩm của Futurify là gì?

Ứng dụng mới lần đầu làm mất 4 tháng, lần thứ 2 phát triển ứng dụng tương tự chỉ mất 2 tháng, còn bây giờ Futurify chỉ mất 1 tháng là làm được, rút ngắn thời gian chỉ còn ¼ so với ban đầu.

Thực ra không có bất kỳ phép màu hay công cụ nào đặc biệt đứng đằng sau giúp đẩy nhanh quá trình tạo ra sản phẩm. Tất cả nằm ở kiến trúc Microservices, mỗi dự án sẽ gồm nhiều services, bằng cách tận dụng hiệu quả các nền tảng đã có trong các dự án cũ, chúng ta có thể rút ngắn thời làm sản phẩm nhưng không làm giảm chất lượng sản phẩm tạo ra, thậm chí còn có thể làm tốt hơn sản phẩm trước đó.

Đồng thời giải pháp này cũng đáp ứng nhu cầu của nhiều khách hàng, đôi khi khách hàng chưa cần 1 sản phẩm đầy đủ các tính năng ngay từ đầu. Họ chỉ cần một vài tính năng cơ bản, thể hiện được ý tưởng của họ, một bản Demo sản phẩm là đủ cho khách hàng. Đối với các ứng dụng như vậy team làm theo từng MVP. Giảm thời gian đồng nghĩa với giảm chi phí rất nhiều.

5/ Lập trình viên khi làm việc với kiến trúc Microservices cần phải lưu ý những vấn đề gì?

Theo anh, khó khăn lớn nhất mà các lập trình viên cần quan tâm là thay đổi tư duy lập trình: làm thế nào để cùng làm ra các services khác nhau nhưng sản phẩm tạo ra cuối cùng đồng nhất với nhau. Nó đòi hỏi khả năng phối hợp tốt, cần có 1 kế hoạch cụ thể, phân công nhiệm vụ rõ ràng và cách thức liên kết với nhau ra sao. Thời gian đầu việc này tốn nhiều thời gian hơn so với cách thông thường, nhưng về lâu dài thì tối ưu hơn cách thông thường.

6/ Hiện nay, các dự án Cross-platform đang thu hút sự chú ý đặc biệt của cộng đồng lập trình, anh có đánh giá gì về tiềm năng của lập trình đa nền tảng trong thời gian sắp tới?

Cross-platform rất có tiềm năng trong tương lai gần. Bởi những ưu điểm viết code một lần nhưng build ra nhiều nền tảng, giảm thời gian, giảm thiểu chi phí, chỉ trong một  tháng là có thể hoàn thành một ứng dụng. Đối với các lập trình viên vốn quen làm việc trong môi trường  Native khi chuyển sang làm việc với cross-platform thì có rất nhiều lợi thế. Vì làm Native rất chuyên sâu về ứng dụng, hiểu rõ về ứng dụng và chỉ cần học thêm framework của cross-platform là có thể làm được. Còn những bạn từ Cross-platform sang làm Native thì khó khăn hơn.

7/ Với những bạn lập trình viên mong muốn được làm việc tại Futurify cần đáp ứng những yêu cầu gì?

Tất nhiên, bên cạnh những kỹ năng, kiến thức cần có để đáp ứng yêu cầu công việc, anh đánh giá cao những bạn ham học hỏi. Bởi kiến thức trong nhà trường chỉ là kiến thức nền tảng, nó chưa đủ để mình làm việc hiệu quả. Những bạn ham học hỏi sẽ tiến bộ nhanh hơn những bạn khác vì trong một môi trường bận rộn, không ai có đủ thời gian và kiên nhẫn để cầm tay chỉ việc từng bạn, các bạn cần chủ động tự học, tự tìm cách giải quyết vấn đề.
Văn hóa Futurify là: thân thiện, năng động, sáng tạo. Những bạn có cùng mindset đó sẽ rất dễ thích nghi với môi trường công ty. Sở dĩ anh đánh giá cao những bạn sáng tạo, vì những người như vậy luôn biết cách làm cho mọi việc trở nên dễ dàng hơn, nghĩ ra được phương pháp tối ưu hơn.

Và quan trọng là các bạn phải thực sự đam mê lập trình. Bản thân anh rất mê lập trình, đối với anh khi các bạn mê lập trình sẽ không phải làm việc một ngày nào, bạn coi đó là trải nghiệm, một phần cuộc sống của mình. Các bạn lập trình vì đó là niềm vui của các bạn chứ không phải là để phục vụ cho người khác. Đôi khi anh rất bận nhiều công việc giấy tờ, mệt mỏi và anh tìm đến lập trình để thư giãn đầu óc.

8/ Anh có thể chia sẻ về định hướng phát triển của Futurify trong thời gian tới?

Trước mắt, Futurify sẽ tập trung vào mảng Marketplace, xây dựng các ứng dụng cross-platform và mở rộng thị trường đến các khách hàng tiềm năng trên nhiều nước khác trên thế giới. Ngoài ra, Futurify cũng lên kế hoạch phát triển những engine có khả năng reuse (tái sử dụng), việc này giúp rút ngắn thời gian và chi phí phát triển phần mềm cho khách hàng. Futurify sẽ áp dụng phương pháp này đối với những phần mềm được xây dựng trên cùng một nền tảng, có những tính năng và business logic tương tự nhau. Lúc này, mình không phải tập trung quá nhiều vào kỹ thuật, mà tập trung vào ý tưởng, từ đó công việc sẽ trở nên thú vị hơn.

Cảm ơn anh Dũng đã dành thời gian chia sẻ với TopDev.