Làm thế nào một sản phẩm API Stripe mà chúng tôi đã làm việc trong hai năm lại trở nên lỗi thời nhanh chóng mà không có bất kì lời cảnh báo trước nào?

Lịch sử hình thành

Vào cuối năm 2012, tôi cùng một cựu đối tác kinh doanh đã quyết định đây là thời điểm thích hợp để thử lại các chương trình khởi động (bootstrapping). Một vài năm trước đó, chúng tôi đã tung ra thị trường và bán một ứng dụng (không thành công) giúp xử lý các hóa đơn và các đề xuất. Mọi thứ không kết thúc như mong đợi và chúng tôi đã không nói chuyện với nhau trong nhiều năm. Tóm lại, loại nền tảng mới của Stripe đã mang đến cho chúng tôi một cơ hội ngàn năm có một. Stripe không có ứng dụng trên iOS, họ cũng không có kế hoạch tạo một ứng dụng trên đó, còn chúng tôi đã gia nhập thị trường để tạo một ứng dụng mới.

Vào thời điểm đó, ứng dụng Stripe API vẫn còn trong giai đoạn ấp trứng, chỉ tồn tại rải rác một vài điểm cuối và không thực sự mạnh chút nào. Chúng tôi rất mong đợi ứng dụng Stripe API đi vào hoạt động, vì thế chúng tôi đã xây dựng ứng dụng Paid. Sau gần 7 tháng phát triển, chúng tôi đã khởi chạy ứng dụng.

Được nhiều người yêu thích

Phần hay nhất trong việc vận hành một ứng dụng như thế này đó là nó dễ lấp vào khoảng trống. Stripe không có ứng dụng nào và bảng điều khiển (Dashboard) cũng không có bất kì phản ứng nào. Trong giai đoạn đầu của thế giới di động, thật đáng kinh ngạc khi bạn có thể kiểm tra các giao dịch trên thiết bị của mình. Nhu cầu của mọi người rất lớn còn các sản phẩm thì luôn được điều chỉnh cho phù hợp. Mặc dù chúng tôi tính phí trên ứng dụng gốc (7.99$) nhưng chúng tôi nhận thấy đã có đủ lượt tải về để điều chỉnh sang hướng phát triển khác. Chúng tôi đã thu được 1000$/tháng trên App Sales.

Trong mấy tháng đầu, chúng tôi đã tiếp xúc với hai công ty để bàn về việc chuyển giao (không phải Stripe). Một công ty phân tích dữ liệu và các thông tin khác sẵn sàng vận hành dịch vụ riêng của họ ở đầu trang của Stripe. Công ty còn lại muốn mua danh sách người dùng của chúng tôi đế hướng đến mục tiêu là khách hàng – ứng dụng chỉ là phần hưởng thêm. Cuối cùng, chúng tôi đã từ chối cả hai công ty vì chúng tôi muốn tiếp tục phát triển.

Quá khứ thăng trầm

Việc vận hành không hề suôn sẻ. Do sự đơn giản của Stripe API, dù đã thực hiện nhiều cách nhưng chúng tôi không thể lấy dữ liệu từ bảng điều khiển. Để tổng hợp thành một bản tóm tắt cho một ngày. Trước tiên chúng tôi phải tải về tất cả thông tin giao dịch của mỗi người dùng trong một ngày và sau đó tổng hợp lại. Chỉ có một cách để thực hiện điều đó. Có nhiều người dùng rất hứng thú với ứng dụng này nhưng ứng dụng lại không thể ghi nhận và tổng hợp hết tất cả thông tin. Các bản tóm tắt đã không chính xác và cuối cùng phiên bản 1 đã bị hỏng bởi các dữ liệu xấu.

Lúc đó, trong đầu chúng tôi đã có một giải pháp khá rõ ràng và có hướng đi cụ thể. Chúng tôi có thể dùng Stripe để tổng hợp các bảng tóm tắt (vì họ sở hữu dữ liệu nên họ có thể viết các truy vấn một cách dễ dàng) hoặc chúng tôi có thể xây dựng một dịch vụ bổ trợ để tự mình thực hiện. Mặc dù chúng tôi cảm thấy rằng, mình giữ vai trò quan trọng đối với người dùng Stripe để điều chỉnh công việc này nhưng những nỗ lực và yêu cầu mà chúng tôi đưa ra với nhóm của Stripe lại không được chú ý và chúng tôi bị cô lập.

Ứng dụng Paid không thể tiếp tục vận hành theo cách mà nó được tạo ra.

Nỗ lực lần thứ hai

Mặc dù phiên bản 1 đã thu hút được hơn 2100 người sử dụng nhưng chúng tôi biết rằng muốn tóm tắt dữ liệu chính xác hơn, chúng tôi phải thay đổi cấu trúc của ứng dụng (một vấn đề khá tốt). Cuối cùng, chúng tôi đã quyết định viết một tầng dịch vụ riêng ở đầu trang của Stripe để thu thập các dữ liệu giao dịch (dựa trên webhooks) nhằm tạo ra các bảng tóm tắt. Đây là cách duy nhất đế chúng tôi có thể đảm bảo cho dữ liệu chính xác. Điều này được thực hiện sau khi iOS 7 phát hành nên chúng tôi buộc phải viết lại ứng dụng.

Mục đích cuối cùng là đơn giản hóa mọi thứ – từ giao diện người dùng (UI), sự tương tác, đến thương hiệu. Chúng tôi muốn ứng dụng Paid thoát khỏi tay của các chủ doanh nghiệp.

Miễn phí cho mọi người

Chúng tôi cũng đã đưa ra quyết định miễn phí tải ứng dụng cho mọi người để thu hút càng nhiều người dùng càng tốt (đọc thêm: “Để biến cửa hàng ứng dụng nhỏ của chúng tôi trở thành một mục tiêu đáng giá mà Stripe mong muốn”). Không phải mọi thứ đều miễn phí vì chúng tôi đã chọn tính phí cho mục khả năng quản lý nhiều tài khoản. Đây chắc chắn là tính năng được yêu cầu nhiều nhất trong vòng một năm rưỡi.

Lượng tải trong tháng 9 tăng.

Bản thử nghiệm

Hàng chục người đã giúp chúng tôi thực hiện thử nghiệm beta. Chúng tôi đã nhận được nhiều yêu cầu từ các nhân viên của Stripe để đăng kí vào danh sách dùng bản thử nghiệm và chúng tôi rất vui mừng vì điều đó. Mặc dù thú thật là, chúng tôi cũng không nhận được các phản hồi một cách chủ động từ họ. Chúng tôi cho rằng, họ chỉ có hứng thú “xem thử” những gì chúng tôi đang xây dựng hơn là “giúp chúng tôi kiểm tra thử”.

Chúng tôi không tin rằng Stripe muốn “cướp” hay “điều tra” bất cứ điều gì từ ứng dụng của chúng tôi.

Phiên bản 2 tốt hơn

Dù cho chúng tôi không kì vọng rằng phiên bản 2 sẽ được đón nhận tốt hơn nhưng không ngờ lượng người dùng đã tăng lên nhanh chóng (mặc dù không nhất quán theo thời gian). Đối với một dự án phụ, chúng tôi cảm thất rất hài lòng với số lượt tải về. Dữ liệu dường như cũng rất tốt (mặc dù khá đắt tại Heroku), lượng sử dụng và tham gia cũng rất lớn (nhưng phát triển chậm).

Sự kết thúc của một kỷ nguyên

Thật không may cho chúng tôi, đội của Stripe đã tạo ra một thứ đáng kinh ngạc. Tuần trước, chúng tôi phát hiện ra rằng, trong khoảng thời gian thử nghiệm phiên bản 2, dự án ứng dụng Dashboard iOS đã khởi động tại Stripe.

Stripe đã tạo ra một thứ mà hai chàng trai với công việc toàn thời gian và gia đình bận rộn không thể tạo ra như một dự án ưa thích.

Chúng tôi sẽ có buổi offline giới thiệu ứng dụng Paid vào tuần sau.

Chúng tôi không lên lịch cụ thể cho EOL nhưng việc đó sẽ diễn ra. Thật vô nghĩa khi chúng tôi cứ tiếp tục thanh toán hóa đơn trên Heroku cho các dữ liệu mà bạn nhận được miễn phí qua một ứng dụng được công nhận.

Dashboard của Stripe

Điều tuyệt vời về ứng dụng Dashboard mới đó là họ đã giải quyết những điểm gây khó chịu (và những dịch vụ trên đầu trang của Stripe) mà chúng tôi đã chỉ ra. Người dùng của chúng tôi mong muốn được tìm kiếm, xem đồ thị và các điểm tóm tắt nhanh hơn/tốt hơn. Có lẽ vì Stripe phải bận rộn thống trị thế giới (Twitter, Pinterest, Apple,…) nên họ không có thời gian (và cũng không muốn) đáp ứng các yêu cầu của chúng tôi. Có lẽ chúng tôi sẽ không bao giờ biết được.

Sự phản ánh

Chúng tôi có cảm thấy đau đớn khi ứng dụng Dashboard của Stripe được phát hành không? Tất nhiên rồi. Có thấy thất vọng khi đã làm rất nhiều việc để rồi bị xóa sổ không? Có chứ. Có phải chúng tôi muốn được Stripe mua lại không? Đúng vậy. Có phải chúng tôi tiếp cận họ để thực hiện ứng dụng của mình toàn thời gian như một nhân viên của Stripe? Đúng, mặc dù chúng tôi chưa bao giờ nghe điều đó. Mọi thứ đã đi xuống theo cách mà chúng tôi muốn phải không? Không. Chúng tôi có cảm thấy bị lừa dối không? Không hẳn.

Chúng tôi không thể nói ra ý định của bất kì ai ngoài bản thân chúng tôi. Chúng tôi đã làm mọi thứ có thể cho người dùng của mình, người dùng của Stripe. Chúng tôi bù đắp những phần thiếu sót trong việc kinh doanh của họ trong suốt hai năm và đã học hỏi được rất nhiều điều trong việc cạnh tranh với các ứng dụng tương tự, xây dựng các ứng dụng có thể mở rộng và nuôi dưỡng một mối quan hệ theo thời gian.

Rút ra bài học

  1. Việc xây dựng một ứng dụng nằm ở đầu của API rất dễ dàng. Có hàng tấn dịch vụ cần có những ứng dụng tốt hơn. Hãy xây dựng một ứng dụng nào đó.
  2. Là ứng dụng của một bên thứ ba không phải lúc nào cũng là giải pháp tốt nhất. Bạn có thể bị phá vỡ bất cứ lúc nào mà không có bất kì sự cảnh báo trước, bất kể bạn có các mối quan hệ tốt trong công việc. Việc có được lòng tin cũng rất khó khăn.
  3. Việc hỗ trợ khách hàng mất khá nhiều thời gian. Việc tiếp tục sẽ thú vị hơn nhiều.
  4. Kiếm tiền là một việc khó khăn. Chúng tôi bắt đầu thu phí thì không thấy tăng trưởng, chúng tôi cho miễn phí thì lại không có thu nhập.
  5. Giai đoạn giảm thiểu nỗi đau qua nhanh hơn so với dự tính.
  6. Quyết định tách Paid và Payment là một quyết định đúng đắn. Ứng dụng Payment sẽ hoạt động như một ứng dụng riêng biệt cho đến khi nó bị thay thế bởi một ứng dụng chính thức. Hãy hy vọng rằng Stripe sẽ không di chuyển vào khu vực hoạt động của Square.

Tác giả: Ryan Scherf

Nguồn: Medium.com

Người dịch: Bồng

LEAVE A REPLY

Please enter your comment!
Please enter your name here