Có những dự án bắt đầu không phải vì mình nghĩ ra một sản phẩm gì đó thật hay, mà đơn giản là có một người cần giải quyết một vấn đề cụ thể.
Tuần này, mình muốn ghi lại câu chuyện về một plugin WordPress nhỏ mà mình vừa làm cho thevowbridal.com, một startup có xuất phát điểm từ Mỹ và đang triển khai hoạt động tại Việt Nam.
Từ Calendly trên Shopify đến một plugin WordPress
Trước đây, khách hàng sử dụng Shopify cho website và Calendly để hỗ trợ việc đặt lịch. Khi chuyển sang WordPress tại Việt Nam, chị muốn có một giải pháp booking phù hợp hơn với website mới, thay vì tiếp tục sử dụng cách tích hợp đang có.
Đây là một bài toán khá quen thuộc với những người làm web: khách hàng không nhất thiết cần một hệ thống mới với hàng chục tính năng. Họ cần một cách để khách truy cập website có thể đặt lịch thuận tiện, còn người quản lý có thể tiếp nhận và xử lý những lịch hẹn đó.
Vậy là mình bắt tay vào xây dựng một plugin WordPress riêng.
Mình không định làm ra một đối thủ của Calendly. Mình cũng không có ý định xây dựng một plugin booking tổng quát có thể đáp ứng mọi loại hình kinh doanh. Mục tiêu đơn giản hơn nhiều: giải quyết nhu cầu thực tế của dự án, tích hợp vào website WordPress và giữ cho hệ thống dễ sử dụng, dễ kiểm soát.
Không phải cứ nhiều tính năng là tốt
WordPress không thiếu plugin booking. Có những sản phẩm đã phát triển nhiều năm, hỗ trợ lịch phức tạp, nhiều loại dịch vụ và đủ kiểu tích hợp.
Nếu nhìn vào danh sách tính năng, plugin mình làm chắc chắn không thể so sánh với những sản phẩm đó.
Nhưng mình nghĩ cần đặt một câu hỏi trước khi lựa chọn công nghệ: khách hàng thực sự cần gì, và phần nào là đủ cho giai đoạn hiện tại?
Một startup ở giai đoạn đầu có thể chưa cần một hệ thống đặt lịch quá phức tạp. Nếu đưa vào quá nhiều chức năng, người quản lý có thể phải học thêm những thứ không cần thiết, trong khi việc phát triển và bảo trì cũng trở nên tốn kém hơn.
Ngược lại, tự viết plugin cũng không mặc nhiên là lựa chọn tốt hơn. Nếu một plugin có sẵn đáp ứng đầy đủ yêu cầu, sử dụng nó thường tiết kiệm thời gian và chi phí hơn.
Trong trường hợp này, mình chọn xây dựng một plugin nhỏ vì nó phù hợp với nhu cầu cụ thể của dự án. Phạm vi vừa phải cũng giúp mình chủ động hơn trong việc điều chỉnh khi khách hàng cần thay đổi.
Điều quan trọng không phải là viết được bao nhiêu dòng code, mà là có giải quyết đúng vấn đề hay không.
Một sản phẩm nhỏ vẫn cần được làm nghiêm túc
Có lẽ vì đã làm WordPress nhiều năm, mình ngày càng ít hứng thú với việc thêm tính năng chỉ để sản phẩm trông có vẻ mạnh mẽ hơn.
Một plugin nhỏ vẫn cần có cấu trúc rõ ràng, xử lý dữ liệu hợp lý, tương thích với môi trường mà nó chạy và đủ dễ hiểu để sau này có thể tiếp tục phát triển.
Mình cũng muốn giữ mã nguồn ở một nơi có thể xem lại và cải thiện dần, thay vì để toàn bộ logic nằm trong một dự án khách hàng rồi quên mất nó sau khi bàn giao.
Mã nguồn của plugin được công khai tại GitHub:
Đây không phải một sản phẩm booking hoàn chỉnh để cạnh tranh với những nền tảng lớn. Nó là một giải pháp nhỏ được xây dựng từ một nhu cầu có thật.
Và mình nghĩ như thế đã là một lý do đủ tốt để viết code.
Làm sản phẩm là học cách biết điểm dừng
Trước đây, khi bắt tay vào một dự án, mình thường dễ nghĩ đến những thứ có thể bổ sung: thêm chức năng này, cải thiện giao diện kia, hỗ trợ thêm trường hợp nọ.
Những ý tưởng đó không xấu. Nhưng nếu không có giới hạn rõ ràng, một yêu cầu nhỏ có thể biến thành một dự án dài không cần thiết.
Làm việc với những startup giúp mình nhìn rõ hơn sự khác biệt giữa điều có thể xây dựng và điều nên xây dựng.
Một giải pháp vừa đủ không có nghĩa là làm qua loa. Nó có nghĩa là hiểu rõ phạm vi, ưu tiên những gì mang lại giá trị và không tạo ra sự phức tạp chỉ vì mình có thể làm được.
Tất nhiên, nếu nhu cầu thay đổi, sản phẩm cũng có thể cần phát triển thêm. Không ai biết chắc một plugin nhỏ hôm nay sẽ cần những gì sau một năm. Điều mình có thể làm là giữ cho nền tảng đủ rõ ràng để những thay đổi đó không trở thành gánh nặng.
Tuần này, mình có thêm một plugin nhỏ vào danh sách những thứ đã làm. Nhưng điều đáng ghi lại hơn cả có lẽ là một lời nhắc dành cho chính mình:
Đừng cố xây dựng giải pháp lớn nhất. Hãy cố xây dựng giải pháp phù hợp nhất với vấn đề đang có.
Đôi khi, như thế là đủ.



