Case Study xây dựng phần mềm SaaS dưới $40k
Giới thiệu
Mình muốn viết kiểu bài case study vì nó cung cấp nhiều kiến thức một cách cụ thể - người thật, việc thật. Nhưng khi xây dựng phần mềm cho khách hàng, có một số điều khoản mình không thể chia sẻ trên mạng được.
Vì thế, mình đã tìm một bài viết về quá trình làm SaaS khá hay và chi tiết từ idea đến lúc launch. Mình nghĩ đây là bài phải đọc với mọi solo/non-tech founder.
Mình đã nhắn tin xin anh Ryan Shank (tác giả bài viết) - cũng là founder của SaaS PhoneWagon để có thể dùng bài gốc làm nguồn tham khảo.
<!--
-->
Mình sẽ không dịch lại toàn bộ bài viết mà chỉ liệt kê lại những việc anh Ryan đã làm; kèm theo là quan điểm của mình ở từng phần.
Bài viết này sẽ phù hợp cho những founder muốn outsource phần mềm khi chỉ mới có ý tưởng nhưng còn đắn đo các bước cần làm.
Từ dùng trong bài viết:
stakeholder: Là cá nhân hay tổ chức có ảnh hưởng đến kết quả dự án. Trong bài viết này, mình ám chỉ Ryan - người đi thuê/outsource
Insight: là sự thật ngầm hiểu, diễn giải về hành vi và xu hướng của khách hàng.
Launch: ra mắt sản phẩm
Link bài viết gốc:
https://neilpatel.com/blog/built-and-launched-a-saas-company/
Ý tưởng
Ryan có kinh nghiệm 6 năm bán các loại phần mềm back-office cho doanh nghiệp. Điều này giúp cho anh ấy hiểu insight, nỗi đau của doanh nghiệp gặp phải trong lĩnh vực tổng đài ảo.
Ryan có 1 khoảng tiền và đang phân vân giữa việc trở thành đầu tư thiên thần cho một startup hay là trở thành 1 founder. Anh ấy đã chọn phương án 2.
Mô tả yêu cầu phần mềm
Thường thì đây là khâu khó nhất của các founders không có tech/product background. Họ rất khó để mô tả ý tưởng của mình một cách rõ ràng và rành mạch.
Càng đào sâu về chi tiết phần mềm thì họ càng lúng túng. Thường thì sẽ có một người với vai trò Business Analyst ngồi với founder để phân tích và viết document lại một cách chi tiết giúp lập trình viên có thể hiểu yêu cầu đúng nhất.
Tuy nhiên việc làm này thường phù hợp với môi trường doanh nghiệp, còn startup thì cần các phương pháp lean (tinh gọn) hơn.
Với trường hợp của Ryan, mặc dù anh ấy không viết được mô tả phần mềm mức chi tiết. Nhưng cái hay của anh ấy là đã viết các tài liệu như tổng quan, use case để các bên như design, developer có thể hiểu được tại sao cần phải làm 1 phần mềm như vậy.
Dưới đây là các tài liệu về sản phẩm cần viết để designer, developer cũng như chính founder hiểu hơn về project của bạn:
1. Product Design Overview:
Tổng quan về sản phẩm. Cách hoạt động của nó? Ví dụ Product Design Overview - PhoneWagon
2. Product Features:
Liệt kê và mô tả sơ về các tính năng của phần mềm Ví dụ Product Features - PhoneWagon
3. Real life use case story (optional):
Giả định về một user sẽ dùng phần mềm của bạn như thế nào? Ví dụ Use case story
4. Pain Points & Solutions (optional):
Nỗi đau và giải pháp. Thường dùng để làm trang landing pages luôn
5. User Stories: Mô tả chi tiết hơn về từng tính năng.
User Story là một tài liệu sơ giản về yêu cầu sản phẩm với góc nhìn người dùng. Thông thường, User Story do khách hàng, hoặc đại điện của khách hàng viết.
Viết User story theo mẫu sau:
` Là <người dùng cụ thể/vai trò> ,
tôi muốn <làm gì đó>
để <phục vụ mục đích nào đó> `
Ví dụ:
` Là người quản lý,
tôi muốn thu âm cuộc gọi
để đánh giá cuộc gọi đó tốt hay không `
Ví dụ thêm về User Story của PhoneWagon:
6. Hook Model worksheet:
Các bước để dẫn dắt, lôi cuốn người dùng sử dụng lại sản phẩm của bạn. Dựa theo quyển sách nổi tiếng về product Hooked: How to Build Habit-Forming Products - Dẫn Dắt Người Dùng của Nir Eyal.
Đây là bước để thiết kế các tính năng nhằm thúc đẩy user sử dụng sản phẩm của bạn như một thói quen của họ. Bạn có thể xem thêm hook worksheet
Tìm designer - Thiết kế UI, UX
Tìm designer ở đâu?
Ryan lên Dribbble để tìm designer với các từ khoá là "b2b dashboard”, “saas dashboard”
<!-- Mình cũng đã có kinh nghiệm tìm designer để desing lại giao diện cho HappyTrade. Mình tìm design ở trên trang DesignCrowd -->
Kinh nghiệm của mình khi tìm designer là: designer phải là người dựa theo mô tả phần mềm để recommend UI,UX. Còn mình chỉ là người đưa ra feedback, insight trong lĩnh vực đó để bản thiết kế đó hoàn thiện hơn. Chứ không phải tìm một designer chỉ biết làm theo những yêu cầu của bạn.
Với trường hợp của Ryan, anh ấy gửi mô tả ngắn về dự án cho khoảng 10 designers trên Dribbble. Sau đó anh ấy tiến hành gọi vài người để trao đổi thêm.
Sau khi trao đổi và xem profile của chục designer, Ryan đã chọn designer có profile phù hợp nhất.
Chi phí
Chi phí mà Ryan đã bỏ ra cho phần design là $14,261.
Mình nghĩ đây là chi phí khá lớn so với tiền Việt. Khó có founder nào sẵn sàng trả một mức giá khá cao như vậy ở thị trường Việt Nam. Mình nghĩ nếu chịu khó bỏ thời gian thêm để tìm kiếm thêm designer thì có thể giảm bớt chi phí design xuống.
Ngoài ra, nếu ở mức thử nghiệm MVP thì có thể sau này sẽ đổi design, UX. Anh Ryan là muốn đầu tư một lần luôn để sau này không cần phải thay đổi, redesign lại cả ứng dụng.
Cách làm việc với designer
Thiết kế UI,UX là một việc tốn khá nhiều thời gian cho cả stakeholder và designer. Ryan và designer trao đổi ý tưởng và UX qua Skype. Ban đầu sẽ thiết kế wireframe trước để thống nhất về phần UX, sau đó mới đến phần design.
Xem thêm: Sketch, Wireframe, Mockup, Prototype là gì và ví dụ?
Một số tools Ryan và designer sử dụng để làm việc:
Quản lý dự án: Trello
Trao đổi: Skype
Prototype, Design Feedback: Invisionapp
Hoá đơn: Freshbooks
Thanh toán: Paypal
Tìm lập trình viên - Phát triển phẩn mềm
Tìm lập trình viên ở đâu
Dưới đây là bảng giá thuê lập trình viên theo giờ.
Dễ dàng thấy là lập trình viên ở Ấn Độ (hay Việt Nam cũng vậy) giá sẽ rẻ hơn nhiều so với USA.
Ryan sử dụng nền tảng tìm freelancer nổi tiếng là Upwork.
Theo mình, ngoài Upwork, một số sites khác cũng khá chất lượng bạn có thể tham khảo thêm:
https://www.guru.com/
https://www.toptal.com/
Dưới đây là bảng mô tả về dự án của Ryan
Cách của Ryan là mô tả tổng quan về dự án (không chi tiết). Sau đó gọi điện phỏng vấn từng ứng viên để chọn.
Trên Upwork thì sẽ có các tiêu chí sau để đánh giá một freelancer:
Reviews (lượt đánh giá)
Job Success Score (điểm trung bình hoàn thành dự án)
Number of Verified Hours (số giờ đã làm việc)
Chi phí
Chi phí cho dự án này là khoảng $20,000 và thời gian khoảng 6 tháng.
Cách làm việc với lập trình viên
Với case của Ryan thì do đã thảo luận về UI,UX và tính năng với designer rồi nên làm việc với lập trình viên cũng khá dễ dàng vì đã nắm rõ được yêu cầu chi tiết phần mềm.
Ryan chỉ cần trao đổi thêm với developer về logic của phần mềm mà thôi. Lúc này người developer có tâm sẽ là người phân tích thêm các trường hợp logic, trường hợp ngoại lệ mà stakeholder chưa lường trước được để trao đổi và đưa ra quyết định cuối cùng.
Theo mình, với dự án tốn nhiều thời gian thì nên chia ra từng giai đoạn (phase). Việc chia giai đoạn ra giúp developer dễ báo cáo công việc hơn. Bạn có thể yêu cầu báo cáo công việc theo phase, theo tuần, theo tính năng hoặc theo ngày để nắm bắt tiến độ của dự án.
Marketing & Sale
Khi sắp hoàn thành product, thì cần làm landing page để giới thiệu app của mình với khách hàng tiềm năng.
Ryan tiếp tục lên Upwork để thuê lập trình viên làm trang landing page với Wordpress.
Sau đó chạy quảng cáo Facebook với trang landing page này. Cuối cùng thì Ryan cũng có khách hàng đầu tiền trả tiền để sử dụng PhoneWagon
Kết
Mình nghĩ với case study của Ryan khá là chi tiết về cách làm, các bước để xây dựng một phần mềm nói chung cũng như SaaS nói riêng. Bạn hoàn toàn có thể theo các bước như trong bài viết để xây dựng phần mềm thành công.
Tuy nhiên về mặc chi phí, bạn có thể linh hoạt sử dụng các dịch vụ, nền tảng khác để giảm bớt chi phí cũng được.
Nếu sử dụng con người ở VN hết thì hoàn toàn có thể launch được product tương tự với chi phí dưới $15k hoặc rẻ hơn.
Ngoài ra, với bài viết gốc của Ryan, ta có thể thấy được 2 điểm:
Cần xây dựng phần mềm để giải quyết vấn đề của người khác. Mà để hiểu được vấn đề của người khác thì cần có insight trong lĩnh vực đó. Chúng ta không thể tự đẻ ra vấn rồi tự mình làm giải pháp được. (Ryan có kinh nghiệm làm việc 6 năm với các doanh nghiệm vừa và nhỏ)
Không phải cứ có tiền sẽ xây dựng được phần mềm thành công. Với trường hợp của Ryan, mặc dù có tiền nhưng anh ấy cũng phải bỏ thời gian và công sức để tìm kiếm, làm việc với thời gian 7-8 tháng để xây dựng phần mềm. Nên bạn cần lên kế hoạch sắp xếp có một khoản thời gian dài để theo dự án nhé.