Lời khuyên cho technical founder: từ prototype, MVP đến launch

Diana Hu (YC) chỉ cách technical founder build prototype trong vài ngày, ship MVP trong vài tuần, chọn tech stack và iterate sau launch.

Đã duyệt độc lập · cập nhật 08/11/2026 · 28 min

1. Diana Hu và ba giai đoạn của bài giảng

Đây là một bài giảng trong Startup School của Y Combinator, mở đầu bằng tiêu đề "How to Build & Succeed as a Technical Founder". Người trình bày là Diana Hu. Theo mô tả video đăng ngày 21/04/2023, chị là Group Partner tại YC và từng là CTO của startup YC của chị, Escher Reality, công ty đã được Niantic (hãng làm Pokemon Go) mua lại.

Diana Hu ngồi trước bức tường cam, dòng chữ ghi Diana Hu, Group Partner, Y Combinator
Diana Hu mở đầu bài giảng; dòng chữ ghi tên chị và chức danh Group Partner, Y Combinator (video đăng ngày 21/04/2023).

Chị tự giới thiệu (video đăng ngày 21/04/2023): chị đang là group partner tại YC. Trước đó, chị là co-founder và CTO của Escher Reality, một startup xây SDK augmented reality cho các nhà phát triển game. Chị và nhóm ở Escher Reality cuối cùng đã có một thương vụ exit, bán công ty cho Niantic, nơi chị làm director of engineering và phụ trách toàn bộ nền tảng AR ở đó.

Vì vậy, chị nói mình biết đôi điều về việc xây một thứ từ một ý tưởng, thành một prototype, rồi launch một MVP (thứ mà chị gọi là hơi "duct tapey"), rồi scale nó, đạt product market fit và scale hệ thống lên hàng triệu user (video đăng ngày 21/04/2023).

Chị nói bài giảng gồm ba phần. Một: vai trò của technical founder là gì, và họ là ai. Hai: build như thế nào ở từng giai đoạn mà các bạn trong Startup School đang ở: ideating, giai đoạn mới chỉ có một ý tưởng và vừa bắt đầu; xây MVP khi đã có chút validation và đưa nó tới launch; và launch, giai đoạn bạn muốn iterate để tiến tới product market fit. Sau đó chị có một phần nhỏ về việc vai trò của technical founder thay đổi thế nào sau product market fit. Chị nói sẽ không nói nhiều về phần này, vì phần lớn các bạn trong Startup School đang ở những giai đoạn sớm hơn (video đăng ngày 21/04/2023).

Chị hào hứng với bài giảng này vì chị tổng hợp nó từ rất nhiều cuộc trò chuyện với các technical founder của YC, chẳng hạn từ Algolia, Segment, Optimizely, WayUp, và chị hào hứng với mọi góp ý và ví dụ của họ trong bài (video đăng ngày 21/04/2023).

2. Technical founder là ai, và khác một lead developer ở đâu

Đôi khi Diana nghe các non-technical founder nói: "tôi cần ai đó build app cho tôi". Theo chị (video đăng ngày 21/04/2023), như vậy là không đủ. Một technical founder là một partner trong suốt hành trình của startup, và việc này đòi hỏi một mức độ cam kết rất cao.

Technical founder làm gì? Theo Diana (video đăng ngày 21/04/2023), họ dẫn dắt phần lớn việc build sản phẩm, tất nhiên, và cả việc nói chuyện với user. Đôi khi chị được hỏi ai là CEO, ai là CTO khi có một technical founder. Chị nói câu trả lời có nhiều sắc thái: nó phụ thuộc vào loại sản phẩm, ngành bạn đang ở, và thành phần kỹ năng của cả đội. Chị đã thấy technical founder làm CEO, làm CTO, hoặc nhiều vai trò khác.

Ở giai đoạn đầu, vai trò của technical founder trông như thế nào? Theo Diana (video đăng ngày 21/04/2023), nó trông rất giống một lead developer. Nếu bạn từng là lead developer ở một công ty, bạn là người phụ trách gom dự án lại, build nó và đưa nó về đích. Hoặc nếu bạn đóng góp cho một dự án open source và là developer chính, bạn đưa ra mọi lựa chọn về tech.

Nhưng có vài khác biệt then chốt so với một lead developer, theo Diana (video đăng ngày 21/04/2023). Bạn phải làm mọi việc liên quan đến tech. Nếu bạn làm phần mềm, bạn sẽ phải làm frontend, backend, DevOps, website, UX, thậm chí cả IT để cấp tài khoản Google, bất cứ thứ gì. Nếu bạn làm hardware và có lẽ chỉ quen phần điện, quen làm việc với EagleCAD, bạn cũng sẽ phải làm quen với cả phần cơ khí. Và trong lúc làm mọi việc tech đó, tất nhiên bạn sẽ phải nói chuyện với user để thật sự lấy được những insight để iterate.

Bạn sẽ thiên về việc build một thứ "đủ tốt" thay vì một kiến trúc hoàn hảo, theo Diana (video đăng ngày 21/04/2023). Nếu bạn từng làm ở một công ty lớn, có thể bạn đã được thưởng vì kiến trúc hoàn hảo, nhưng ở startup thì không. Bạn sẽ thiên về hành động, di chuyển nhanh, và thật sự ra quyết định với rất nhiều thông tin chưa đầy đủ.

Bạn sẽ quen với technical debt, với những quy trình kém hiệu quả, với rất nhiều code xấu, và nói chung là rất nhiều hỗn loạn (theo Diana, video đăng ngày 21/04/2023). Tất cả những điều này để nói rằng technical founder cam kết với thành công của công ty, và điều đó có nghĩa là làm bất cứ điều gì cần thiết để nó chạy được. Chị đôi khi nghe người ta nói kiểu nhân viên ở một công ty: "việc này không thuộc phần việc của tôi". Không, theo chị, như vậy là không được ở đây. Bạn phải làm.

Lead developer Gom dự án, build, đưa về đích Đưa ra mọi lựa chọn tech Technical founder, thêm: Làm mọi việc tech Nói chuyện với user "Đủ tốt" thay vì hoàn hảo Quen với tech debt, hỗn loạn Làm bất cứ điều gì cần thiết
Hình 2.1Những gì Diana nói technical founder giống và khác một lead developer ở giai đoạn đầu (theo Diana, video đăng ngày 21/04/2023).

3. Giai đoạn 1, Ideating: prototype trong vài ngày

Phần tiếp theo là cách build. Giai đoạn đầu tiên là ideating, lúc bạn mới chỉ có một ý tưởng về thứ mình muốn build. Theo Diana (video đăng ngày 21/04/2023), mục tiêu ở đây là build một prototype càng sớm càng tốt, với một trọng tâm duy nhất: build thứ gì đó để cho user xem và demo. Nó thậm chí không cần chạy được hoàn toàn. Song song đó, co-founder CEO của bạn sẽ tìm một danh sách user trong vài ngày tới để xếp lịch gặp và cho họ xem prototype khi nó sẵn sàng.

Nguyên tắc ở đây, theo Diana (video đăng ngày 21/04/2023), là build thật nhanh, trong vài ngày. Đôi khi chị nghe: "Diana, một prototype trong một ngày, nghe như không thể. Làm sao được?"

Một cách làm, theo chị (video đăng ngày 21/04/2023), là build trên rất nhiều phần mềm làm prototype, và giữ mọi thứ cực kỳ đơn giản. Ví dụ, nếu bạn là công ty phần mềm, bạn sẽ build một prototype có thể bấm được, có thể dùng thứ như Figma hay InVision. Nếu bạn là công ty DevTools, có thể bạn chỉ cần một script viết trong một buổi chiều và chạy nó trên terminal.

Nếu bạn là công ty hardware hay hard tech, theo Diana (video đăng ngày 21/04/2023), vẫn có thể build prototype. Có thể sẽ lâu hơn một chút, nhưng mấu chốt là các bản dựng 3D (3D rendering) để thật sự cho thấy lời hứa của sản phẩm. Ví dụ chị đưa ra là một công ty tên Remora, đang giúp xe tải thu giữ carbon bằng một bộ phận gắn thêm (theo video đăng ngày 21/04/2023). Bản dựng 3D đó đã đủ để khiến user của họ hào hứng với sản phẩm, dù đó là hard tech.

Phần mềm Prototype bấm được (Figma, InVision) DevTools Script viết trong một buổi chiều Hardware, hard tech Bản dựng 3D (ví dụ Remora)
Hình 3.1Những cách làm prototype nhanh Diana gợi ý cho từng loại công ty (theo Diana, video đăng ngày 21/04/2023).

4. Hai prototype đời đầu: Optimizely và Escher Reality

Diana kể (theo lời kể trong video đăng ngày 21/04/2023): Optimizely đi qua YC ở batch Winter 2010, và họ dựng prototype này đúng nghĩa trong vài ngày. Lý do là họ đã nộp đơn vào YC với một ý tưởng rất khác. Họ bắt đầu với một Twitter referral widget, ý tưởng đó không thành, và họ nhanh chóng hiểu vì sao. Nên họ ghép rất nhanh prototype này.

Theo lời kể của Diana (video đăng ngày 21/04/2023), hai founder là Pete và Dan; Dan thật ra đã phụ trách analytics cho chiến dịch tranh cử của Obama, và anh nhớ lại lần được gọi đến để tối ưu một trang gây quỹ, rồi nghĩ: "hừm, cái này có thể thành một startup". Thế là họ ghép nó lại rất nhanh.

Đó là visual editor đầu tiên, theo Diana (video đăng ngày 21/04/2023): nó tạo một A/B test, chỉ là một file JavaScript nằm trên S3. Chị nói đúng nghĩa là bạn mở Option Command J nếu bạn đang ở Chrome, và các founder chạy A/B test đó thủ công ở đó, và nó chạy được. Tất nhiên không ai dùng được nó ngoài các founder, nhưng nó đủ để cho các marketer, những target user cần tối ưu site, xem và khiến họ hào hứng. Thứ này được build chỉ trong vài ngày.

Ảnh chụp prototype Optimizely trên một trang web bán vé bay trong nhà, với ô Variation chứa các dòng code jQuery
Prototype Optimizely (nhãn "Optimizely (W10)") chạy trên một trang web có sẵn: phía dưới là các bước Goals, Variations, Experiment, và ô Variation khoanh đỏ chứa các dòng code đổi màu, cỡ chữ và độ đậm của tiêu đề (hình trong video đăng ngày 21/04/2023).

Ví dụ khác là startup của chính Diana, Escher Reality. Theo chị (video đăng ngày 21/04/2023), vì chị và nhóm build thứ hard tech hơn, chị và nhóm phải đưa các thuật toán computer vision chạy được trên điện thoại, và đã làm xong việc đó trong vài tuần. Như bạn thấy trong video demo, cho người ta xem một demo về AR là gì dễ hơn rất nhiều so với việc giải thích và khua tay, và nó khiến việc bán hàng và giải thích dễ hơn rất nhiều.

Demo AR của Escher Reality: một nhân vật hoạt hình 3D đặt trên mặt đất cạnh một chiếc ghế, có các điểm tracking màu xanh
Demo AR của Escher Reality (nhãn "Escher Reality (S17)"): một nhân vật 3D được đặt vào cảnh thật, các điểm xanh nhỏ là điểm tracking của computer vision (hình trong video đăng ngày 21/04/2023).

5. Những sai lầm thường gặp với prototype

Theo Diana (video đăng ngày 21/04/2023), sai lầm thường gặp đầu tiên với prototype là bạn không nên build quá mức ở giai đoạn này. Chị đã thấy người ta có thiên hướng đó và nói với chị: "Diana, nhưng user không thấy được nó, hoặc prototype này chưa đủ tốt, nó không cho thấy toàn bộ tầm nhìn." Theo chị, đây là sai lầm khi founder nghĩ cần một MVP đầy đủ ở giai đoạn này, và thật ra không phải vậy.

Sai lầm khác, theo Diana (video đăng ngày 21/04/2023), hiển nhiên là không nói chuyện hay không lắng nghe user đủ sớm. Bạn sẽ thấy không thoải mái khi đem cho người ta xem thứ prototype chắp vá mà bạn vừa ghép vội, và điều đó không sao cả. Bạn sẽ nhận được feedback.

Sai lầm còn lại ở giai đoạn này, theo Diana (video đăng ngày 21/04/2023), và ví dụ là Optimizely: khi founder quá gắn bó với ý tưởng, khi feedback từ user khá rõ ràng là nó chưa tới, không phải thứ user muốn, mà vẫn không buông bỏ ý tưởng tồi.

Build quá mức (nghĩ cần MVP đầy đủ) Không nói chuyện với user đủ sớm Không buông bỏ ý tưởng tồi
Hình 5.1Ba sai lầm với prototype mà Diana nêu; hai dòng chữ hiện lên lúc này ghi "Prototype mistake: not talking to users" và "Prototype mistake: Not letting go of bad ideas" (video đăng ngày 21/04/2023).

6. Giai đoạn 2: xây MVP, và có nên tuyển người lúc này

Phần tiếp theo: hãy hình dung bạn đã có prototype, bạn đã nói chuyện với mọi người, và có đủ sự quan tâm. Khi đó bạn chuyển sang giai đoạn tiếp theo, thật sự xây một MVP chạy được để đưa tới launch. Theo Diana (video đăng ngày 21/04/2023), mục tiêu về cơ bản là build để launch, và việc này cũng nên được làm rất nhanh: có thể trong vài ngày đến vài tuần, đôi khi vài tháng, nhưng lý tưởng là trong khoảng vài tuần với phần lớn công ty phần mềm. Một lần nữa, hardware và deep tech là ngoại lệ.

Mục tiêu ở giai đoạn này, theo Diana (video đăng ngày 21/04/2023), là build thứ gì đó mà bạn nhận được cam kết từ user rằng họ sẽ dùng sản phẩm. Và lý tưởng thì cam kết đó trông như việc họ trả tiền. Lý do bạn có prototype là trong lúc bạn build, co-founder hay CEO của bạn có thể nói chuyện với user, cho họ xem prototype, và thậm chí nhận cam kết rằng họ sẽ dùng nó khi nó sẵn sàng launch.

Diana rẽ sang một chuyện bên lề, vì đôi khi founder quá hào hứng: "Tôi đã cho xem prototype, mọi người hào hứng, và có quá nhiều thứ phải build. Tuyển người có phải ý hay không?" Với một founder lần đầu, cảm giác là: "trời ơi, có fit rồi, người ta muốn nó". Theo chị (video đăng ngày 21/04/2023), có phải ý hay không thì thật sự tùy. Nó thật ra sẽ làm bạn chậm lại trong việc launch nhanh. Vì nếu bạn tuyển từ một nhóm người, những engineer mà bạn không quen, sẽ mất hơn một tháng hoặc lâu hơn để tìm được một người giỏi. Và rất khó tìm người ở giai đoạn này, khi mọi thứ còn rất mơ hồ và hỗn loạn.

Nên nó sẽ khiến bạn di chuyển chậm, theo Diana (video đăng ngày 21/04/2023). Và điều âm thầm nguy hiểm hơn là nó khiến bạn không phát triển được một số insight về sản phẩm, vì sản phẩm của bạn sẽ thay đổi. Nếu một người khác trong team build phần đó chứ không phải các founder, bạn sẽ bỏ lỡ bài học then chốt đó, thứ có thể chứa một hạt vàng, nhưng nó không do bạn build. Chị nói có ngoại lệ: bạn có thể tuyển muộn hơn một chút, khi mọi thứ đã được build ra nhiều hơn, nhưng ở giai đoạn này thì việc đó vẫn khó.

Tuyển người trước MVP? Chậm launch: tìm một người giỏi mất hơn một tháng Founder bỏ lỡ insight về sản phẩm
Hình 6.1Hai lý do Diana nêu vì sao tuyển người ở giai đoạn MVP có thể là sai lầm (theo Diana, video đăng ngày 21/04/2023).

7. Justin.tv và Twitch: các founder tự viết MVP

Diana đưa một ví dụ (theo lời kể trong video đăng ngày 21/04/2023): Justin.tv và Twitch. Lúc đó chỉ có bốn founder, trong đó có ba technical founder rất giỏi. Ở thời điểm đầu, với MVP, chỉ có các founder build phần mềm với tư cách software engineer. Và điều kỳ diệu là Justin, Emmett và Kyle build những phần khác nhau của hệ thống. Kyle trở thành một engineer xuất sắc, không biết sợ, xử lý những bài toán khó của video streaming. Emmett làm toàn bộ phần database, Justin làm phần web. Và chừng đó là đủ để đưa nó tới launch.

Ảnh bốn người với nhãn Justin Kan, Emmett Shear, Kyle Vogt, Michael Seibel; nhãn Michael Seibel hiện mờ hơn
Bốn founder của Justin.tv: Justin Kan, Emmett Shear, Kyle Vogt và Michael Seibel; nhãn tên Michael Seibel hiện mờ hơn ba nhãn còn lại khi Diana nói về ba technical founder (hình trong video đăng ngày 21/04/2023).

Diana cũng đưa ra một ngoại lệ (theo lời kể trong video đăng ngày 21/04/2023): sau khi launch, họ đã tuyển những engineer giỏi. Nhưng điều then chốt là họ rất giỏi ở chỗ không quan tâm đến CV. Họ thật sự cố tìm những người "lạc loài", những engineer mà Google bỏ qua, và những người đó hoá ra rất xuất sắc. Chị kể hai engineer như vậy rất thoải mái trong công việc và rất giỏi, và họ đã đảm nhận phần lớn phần video web chỉ trong ba tháng kể từ khi vào. Theo chị, bạn muốn những người như vậy, những người có thể tự cất cánh và chạy.

8. Nguyên tắc 1: Do things that don't scale, và ví dụ Stripe

Quay lại các nguyên tắc để build tới MVP. Nguyên tắc thứ nhất, theo Diana (video đăng ngày 21/04/2023), là essay kinh điển của Paul Graham, "Do Things That Don't Scale". Về cơ bản, hãy tìm những mẹo khéo léo để launch nhanh, theo tinh thần làm những việc không scale.

Và trong phiên bản meme Drake của ý này, theo Diana (video đăng ngày 21/04/2023): tránh những thứ như self-onboarding tự động, vì nó đòi hỏi rất nhiều engineering; tránh build một backend scalable, tránh các script tự động. Những thứ đó nghe hay vào một lúc nào đó, nhưng không phải ở giai đoạn này. Mẹo thay thế có thể là onboarding thủ công: bạn đúng nghĩa là sửa database và tự thêm user, các bản ghi và dữ liệu vào. Và một điều ngược trực giác nữa là hỗ trợ khách hàng một cách "điên rồ": chỉ có bạn, các founder, ở tuyến đầu làm việc, làm những việc không scale.

Meme Drake: lắc đầu với Self-onboarding, Scalable backend, Automated scripts; gật đầu với Manual-onboarding, Editing database, Insane custom support
Meme Drake trên slide: từ chối "Self-onboarding, Scalable backend, Automated scripts", chọn "Manual-onboarding, Editing database, Insane custom support" (slide trong video đăng ngày 21/04/2023).

Một ví dụ kinh điển là Stripe (theo lời kể trong video đăng ngày 21/04/2023). Diana cho xem trang web lúc họ launch: rất đơn giản. Họ có API để developer gửi thanh toán. Nhưng ở backend, thứ không scale là đúng nghĩa các founder tự xử lý từng yêu cầu thủ công và điền các mẫu đơn ngân hàng để xử lý thanh toán lúc ban đầu. Và như vậy là đủ tốt để giúp họ launch sớm hơn.

Trang web devpayments.com với tiêu đề Payment Processing Done Right và ba cột Sane simple open-source APIs, Immediate sign-up, Powerful analytics
Trang web đời đầu của Stripe, khi đó mang tên /dev/payments tại devpayments.com: tiêu đề "Payment Processing Done Right.", ba cột "Sane, simple, open-source APIs", "Immediate sign-up", "Powerful analytics", chân trang ghi ©2010 /dev/finance inc (hình trong video đăng ngày 21/04/2023).

9. Nguyên tắc 2: giải pháp 90/10

Nguyên tắc thứ hai, theo Diana (video đăng ngày 21/04/2023), là "giải pháp 90/10" nổi tiếng, một khái niệm do Paul Buchheit đặt ra; chị giới thiệu ông là một trong các group partner ở YC và là người tạo ra Gmail ban đầu.

Câu trích của Paul Buchheit về giải pháp 90 phần trăm
Câu trích của Paul Buchheit trên slide: "Look for a way in which you can accomplish 90% of what you want with only 10% of the work/effort/time. A 90% solution to a real customer problem which is available right away, is much better than a 100% solution that takes ages to build." (slide trong video đăng ngày 21/04/2023).

Hãy nhớ, theo Diana (video đăng ngày 21/04/2023), phiên bản đầu tiên sẽ không phải phiên bản cuối, và rất có thể nhiều phần code sẽ bị viết lại, và điều đó không sao. Hãy đẩy càng nhiều tính năng càng tốt sang sau launch. Và khi nói launch nhanh bằng một giải pháp 90/10, chị không có ý là tạo ra bug. Bạn vẫn muốn nó đủ tốt, nhưng bạn muốn giới hạn sản phẩm để nó chạy trên một số chiều hạn chế: có thể là tình huống, loại dữ liệu bạn xử lý, chức năng, loại user bạn hỗ trợ, số lượng thiết bị, hoặc vùng địa lý.

Hãy tìm cách cắt bài toán ra để đơn giản hoá nó, theo Diana (video đăng ngày 21/04/2023). Và đây có thể là siêu năng lực bí mật của bạn với tư cách một startup lúc ban đầu, vì bạn có thể di chuyển nhanh hơn rất nhiều. Các công ty lớn không thể làm vậy. Hoặc ngay cả khi startup của bạn đã lớn, bạn có luật sư, đội tài chính, đội sales, những thứ khiến bạn di chuyển chậm lại. Dòng chữ hiện lên lúc chị nói ý này ghi "Start off with limited features".

10. DoorDash: Palo Alto Delivery dựng trong một buổi chiều

Diana đưa ví dụ DoorDash (theo lời kể trong video đăng ngày 21/04/2023). Lúc đầu, họ ghép nó trong một buổi chiều, và họ thật ra có tên là Palo Alto Delivery. Họ lấy các file PDF thực đơn, và đúng nghĩa là để số điện thoại của mình lên đó; số điện thoại đó là của một trong các founder. Và site không dynamic mà là static.

Trang web Palo Alto Delivery: Your favorite Palo Alto restaurants delivered to you, phần How It Works ba bước và danh sách nhà hàng
Trang Palo Alto Delivery: tiêu đề "Your favorite Palo Alto restaurants delivered to you", dòng "Just $8 per delivery", ba bước "Pick your food", "Call us to order", "We deliver the food!", và danh sách nhà hàng có link "View Menu" (hình trong video đăng ngày 21/04/2023).

Theo lời kể của Diana (video đăng ngày 21/04/2023), frontend của họ đúng nghĩa chỉ là HTML, CSS thuần và PDF. Họ không buồn build backend. Cái "backend", trong ngoặc kép, đúng nghĩa chỉ là Google Forms và Google Docs, nơi họ điều phối mọi đơn hàng. Và họ thậm chí không build thứ gì để theo dõi tài xế hay ETA. Họ làm việc đó bằng Find My Friends trên iPhone để theo dõi từng đơn giao đang ở đâu. Như vậy là đủ.

Thứ này được ghép lại đúng nghĩa trong một buổi chiều, và họ đã launch được (theo lời kể trong video đăng ngày 21/04/2023). Điều rất thiên tài họ làm, theo Diana, là vì họ là sinh viên Stanford, họ giới hạn để nó chỉ chạy ở Palo Alto. Và ngược trực giác, việc tập trung vào Palo Alto và làm cho đúng ở đó trong lúc lớn lên đã giúp họ tập trung và làm đúng việc giao hàng và unit economics ở vùng ngoại ô ngay từ đầu, để họ có thể scale điều đó và làm đúng, so với đối thủ, vốn tập trung vào các thành phố lớn. Chị nói bạn đã thấy câu chuyện diễn ra thế nào: với đối thủ, unit economics và vận hành khó hơn nhiều, và họ đã không làm đúng được.

Theo Diana (video đăng ngày 21/04/2023), điều thú vị là việc tập trung ngay từ đầu và làm đúng những thứ đó có thể giúp bạn tập trung và làm đúng những việc mà về sau sẽ phục vụ bạn tốt.

11. Chọn tech stack theo tốc độ iterate

Ở giai đoạn này, chọn tech stack thế nào? Theo Diana (video đăng ngày 21/04/2023), một điều là cân bằng giữa thứ hợp lý cho sản phẩm của bạn và chuyên môn cá nhân của bạn, để ship nhanh nhất có thể. Hãy giữ nó đơn giản. Đừng chọn một ngôn ngữ lập trình mới, hay ho chỉ để học nó cho startup của bạn. Hãy chọn thứ mà bạn đủ "nguy hiểm" và đủ thoải mái để launch nhanh.

Điều đó dẫn tới nguyên tắc tiếp theo, theo Diana (video đăng ngày 21/04/2023): chọn tech vì tốc độ iterate. Và một điều nữa: rất dễ build MVP thật nhanh bằng các framework và công cụ API bên thứ ba, và bạn không cần tự làm nhiều phần việc đó. Ví dụ: authentication thì có những thứ như Auth0; thanh toán thì có Stripe; hỗ trợ đa nền tảng và rendering thì có những thứ như React Native; cloud infrastructure thì có AWS, GCP; landing page thì có Webflow; backend, serverless thì có Lambda, Firebase hay database dạng hosted.

AuthenticationAuth0 Thanh toánStripe Đa nền tảng, renderingReact Native Cloud infrastructureAWS, GCP Landing pageWebflow Backend, serverlessLambda, Firebase, database dạng hosted
Hình 11.1Các ví dụ framework và API bên thứ ba Diana nêu để build MVP nhanh (theo Diana, video đăng ngày 21/04/2023).

Theo Diana (video đăng ngày 21/04/2023), trong quá khứ các startup hết tiền trước cả khi launch, vì họ phải build mọi thứ từ đầu. Đừng cố làm kiểu engineer "ngầu", cứ build mọi thứ từ đầu. Không, hãy dùng tất cả những framework này. Nhưng chị biết có những CTO nói với chị: "dùng API bên thứ ba này đắt quá", hoặc "dùng XYZ thì chậm quá".

Với điều này, chị nói (video đăng ngày 21/04/2023) chuyện dùng bên thứ ba có hai mặt. Ý chị là dùng để di chuyển nhanh, nhưng không có nghĩa là thế này, và chị đưa ra một meme mà chị gọi là rất hay, do head of developer experience của Airbyte đăng.

12. Noob, mid và Jedi master: chuyện PHP của Facebook

Diana giải thích meme (video đăng ngày 21/04/2023). Điều buồn cười là ở phần đầu đường phân phối, bạn có kiểu "noob", người vừa học PHP hay chỉ JavaScript và dùng nó để build chiếc xe đồ chơi. Có những engineer chế giễu người mới vì "PHP không scale", hay JavaScript, đủ thứ: "PHP không phải ngôn ngữ tốt, blah blah blah".

Rồi ở giữa là engineer trung bình, theo cách Diana tả (video đăng ngày 21/04/2023): người nói "được rồi, tôi sẽ mặc quần engineer người lớn vào và làm như Google sẽ làm", build một thứ tối ưu và scalable, dùng cho backend những thứ như Kafka, Rust, Prometheus, Kubernetes, Envoy, hay hàng trăm microservice. Đó là technical founder trung bình. Và startup trung bình thì chết. Nên đó không phải kết cục tốt.

Meme đường cong phân phối: bên trái nhân vật noob với PHP, JS và xe đồ chơi; giữa nhân vật khóc với xe hybrid và các logo công nghệ; bên phải nhân vật trùm mũ với PHP, JS và siêu xe
Meme đường cong phân phối: hai đầu là PHP và JS (một bên kèm xe đồ chơi, một bên kèm siêu xe), ở giữa là nhân vật khóc với một chiếc xe hybrid và một cụm logo công nghệ backend (hình trong video đăng ngày 21/04/2023).

Điều buồn cười là, theo Diana (video đăng ngày 21/04/2023), bạn có Jedi master. Và khi nheo mắt nhìn, giải pháp của họ trông giống hệt của người mới. Họ cũng chọn PHP và JavaScript, nhưng chọn vì lý do khác: không phải vì họ vừa học nó, mà vì họ nhận ra như vậy họ có thể di chuyển nhanh hơn rất nhiều. Điều chị muốn nhấn mạnh là nếu bạn build một công ty và nó chạy được, bạn có đủ user, thì các lựa chọn tech không còn quan trọng đến thế. Bạn có thể giải quyết để thoát ra.

Ví dụ Diana đưa (theo lời kể trong video đăng ngày 21/04/2023): Facebook nổi tiếng là được build trên PHP vì Mark rất quen với nó. Và tất nhiên PHP không hẳn scale hay không hiệu năng lắm. Nhưng nếu bạn là Facebook và đạt tới quy mô số user như vậy, bạn có thể giải quyết để thoát ra. Đó là lúc họ build một transpiler riêng tên HipHop để biên dịch PHP sang C++ cho tối ưu. Chị gọi đó là một nước đi Jedi. Và ngay cả với JavaScript, theo chị, có V8 engine khiến nó khá hiệu năng, nên chị nghĩ như vậy là ổn.

13. WayUp, và lựa chọn tech gắn với lời hứa với khách hàng

Diana kể về WayUp (theo lời kể trong video đăng ngày 21/04/2023): một công ty YC năm 2015, giúp các công ty tuyển dụng và là một job board cho sinh viên đại học. JJ, CTO, dù không học chính quy khoa học máy tính hay kỹ thuật ở UPenn, đã tự học lập trình và làm freelance vài năm trước khi bắt đầu WayUp.

Và JJ, một lần nữa như một Jedi master, đã chọn công nghệ vì tốc độ iterate, theo Diana (video đăng ngày 21/04/2023). Anh chọn Django và Python, dù nhiều người cùng thời bảo anh nên dùng Ruby on Rails. Diana nghĩ vào năm 2015, Ruby on Rails phổ biến gấp 10 lần theo Google Trends. Và điều đó vẫn ổn, nó hoàn toàn không giết công ty. Theo chị, đó là lựa chọn đúng với họ vì có thể di chuyển nhanh và đưa sản phẩm ra cửa rất nhanh. Backend được giữ đơn giản: Postgres, Python, Heroku, và nó đã chạy tốt với họ.

Diana tóm lại (video đăng ngày 21/04/2023): những lựa chọn tech duy nhất quan trọng là những lựa chọn gắn với lời hứa với khách hàng của bạn. Ví dụ, ở Escher, chị và nhóm thật ra đã viết lại và vứt bỏ rất nhiều code, nhiều lần, khi scale qua các giai đoạn khác nhau của công nghệ. Nhưng lời hứa mà chị và nhóm giữ với khách hàng nằm ở tầng API trong Unity và các game engine. Đó là thứ không thể vứt bỏ. Còn mọi thứ khác, chị và nhóm viết lại, và điều đó không sao.

Lời hứa với khách hàng: tầng API trong Unity và các game engine (giữ nguyên) Mọi thứ khác: viết lại, vứt bỏ nhiều lần khi scale
Hình 13.1Ví dụ Escher Reality: tầng API giữ nguyên với khách hàng, phần còn lại được viết lại nhiều lần (theo Diana, video đăng ngày 21/04/2023). Dòng chữ hiện lên lúc này ghi "The only tech choices that matter are the ones tied to your customer promises".

14. Giai đoạn 3, Launch: iterate với hard data và soft data

Phần ba: bạn đã có MVP, bạn đã build và launch nó. Ở giai đoạn này điều gì xảy ra? Theo Diana (video đăng ngày 21/04/2023), mục tiêu ở giai đoạn launch là iterate để tiến tới product market fit. Nguyên tắc thứ nhất là iterate nhanh với hard data và soft data.

Với hard data, theo Diana (video đăng ngày 21/04/2023), là technical founder, bạn hãy đảm bảo đã dựng một dashboard với analytics theo dõi KPI chính. Và một lần nữa, hãy chọn công nghệ cho analytics stack theo tốc độ. Giữ nó cực kỳ đơn giản: những thứ như Google Analytics, Amplitude, Mixpanel. Đừng làm quá với những thứ cực kỳ phức tạp như Logstash, Prometheus. Theo chị, những thứ đó rất tốt cho công ty lớn, nhưng không phải ở giai đoạn của bạn; bạn chưa có tải đó.

Còn soft data, theo Diana (video đăng ngày 21/04/2023): hãy tiếp tục nói chuyện với user sau khi launch, và kết hợp hai loại dữ liệu này để biết vì sao user ở lại hay rời đi, và hỏi để tìm ra những vấn đề mới mà user có, để iterate và build.

Hard data Dashboard analytics, KPI chính (Google Analytics, Amplitude, Mixpanel) Soft data Tiếp tục nói chuyện với user sau launch Vì sao user ở lại hay rời đi, vấn đề mới nào để build
Hình 14.1Kết hợp hard data và soft data sau khi launch (theo Diana, video đăng ngày 21/04/2023).

Diana kể về WePay (theo lời kể trong video đăng ngày 21/04/2023), một công ty YC khác. Khi launch, họ là một sản phẩm thanh toán B2C, hơi giống Venmo. Nhưng nó không bao giờ thật sự cất cánh. Họ đã iterate. Về analytics, họ thấy một số tính năng đã launch, như nhắn tin, không ai quan tâm, không ai dùng. Và họ phát hiện ra rằng, xét về lượng thanh toán, user lớn nhất của họ khi đó là GoFundMe.

Họ cũng nói chuyện với user, theo lời kể của Diana (video đăng ngày 21/04/2023). Họ nói chuyện với GoFundMe, bên không quan tâm gì đến phần giao diện B2C này; GoFundMe chỉ quan tâm đến việc nhận được thanh toán. Và rồi WePay phát hiện ra một cơ hội tốt hơn là trở thành một API, và về cơ bản đã pivot sang đó. Họ làm phiên bản đầu tiên, một lần nữa áp dụng nguyên tắc làm những việc không scale: họ thậm chí không có tài liệu kỹ thuật, và họ làm việc với GoFundMe để có phiên bản này. Và phiên bản API này mới là thứ thật sự cất cánh và đưa họ tới product market fit.

15. Liên tục launch: câu chuyện Segment

Nguyên tắc thứ hai trong giai đoạn launch, theo Diana (video đăng ngày 21/04/2023), là liên tục launch. Ví dụ hoàn hảo là Segment, công ty khởi đầu với một sản phẩm rất khác: analytics cho lớp học. Câu chuyện tương tự: họ vật lộn với ý tưởng đầu tiên này, và nó không thật sự thành công cho tới khi họ launch một phiên bản rút gọn chỉ gồm phần backend, thứ chính là Segment.

Theo lời kể của Diana (video đăng ngày 21/04/2023), hãy nhìn số lần launch ấn tượng của họ. Lần launch đầu tiên là từ tháng 12/2012, bài đăng đầu tiên của họ, và bạn thấy mức tương tác trên Hacker News rất cao. Theo chị, đó là một chút dấu hiệu của product market fit. Họ hào hứng, pivot sang hướng này, và tiếp tục launch hằng tuần.

Năm bài đăng Hacker News về Analytics.js và Segment.io từ tháng 12/2012 đến tháng 2/2013
Năm bài đăng Hacker News của Segment: "Show HN: Analytics.js – The analytics API you've always wanted" (326 points, Dec 12, 2012), "The Future of Analytics.js" (Jan 7, 2013), "Show HN: Analytics.js for Node" (Jan 14, 2013), "Segment.io (YC S11) Lets Developers Integrate Multiple Analytics Services" (Jan 25, 2013) và "Segment.io - We just added support for PHP and WordPress" (Feb 1, 2013) (hình trong video đăng ngày 21/04/2023).

Theo Diana (video đăng ngày 21/04/2023), họ có tổng cộng năm lần launch trong khoảng một tháng. Và họ tiếp tục thêm tính năng và iterate, thêm hỗ trợ cho nhiều thứ hơn. Khi launch, nó chỉ hỗ trợ Google Analytics, Mixpanel và Intercom. Và nhờ lắng nghe user, họ thêm hỗ trợ Node, PHP, WordPress, và cứ thế tiếp tục. Điều đó đưa họ thành một unicorn, rồi cuối cùng exit bằng việc bán cho Twilio với giá hơn 3 tỷ đô (theo lời kể trong video đăng ngày 21/04/2023). Chị gọi đó là khá ấn tượng.

16. Cân bằng giữa build và fix: Pokemon Go

Nguyên tắc cuối cùng khi bạn launch, theo Diana (video đăng ngày 21/04/2023): có một trạng thái buồn cười khi bạn vừa build tech. Bạn muốn cân bằng giữa build và fix. Bạn muốn đưa ra những lựa chọn có cân nhắc giữa sửa bug, thêm tính năng mới hay xử lý technical debt. Và điều chị muốn nói là tech debt hoàn toàn ổn.

Bạn sẽ quen một chút với cái nóng của tech đang cháy, theo Diana (video đăng ngày 21/04/2023). Hoàn toàn ổn. Bạn sẽ sợ đúng những thứ cần sợ, và đó là những thứ đưa bạn tới product market fit. Đôi khi một bug nhỏ về rendering có lẽ không quan trọng để sửa ở thời điểm này. Thật ra, rất nhiều sản phẩm đời đầu hỏng rất nặng.

Diana kể (theo lời kể trong video đăng ngày 21/04/2023): có lẽ bạn rất quen với Pokemon Go khi nó launch năm 2016. Không ai đăng nhập vào game được. Và đoán xem? Điều đó hoàn toàn không giết công ty. Thật ra, chị nghĩ cho đến nay, năm ngoái (tính từ video đăng ngày 21/04/2023) Pokemon đã làm ra hơn một tỷ đô doanh thu. Điều đó không giết họ.

Chị giải thích một chút bối cảnh về chuyện đã xảy ra với tech (theo lời kể trong video đăng ngày 21/04/2023). Nó khá đơn giản. Họ có một load balancer trên Google Cloud, một backend, và việc TCP termination cùng các HTTP request được làm bằng Nginx để route tới các server khác nhau, tức các AFE, application frontend, để quản lý mọi request.

Sơ đồ kiến trúc năm 2016: Datacenter router, Load balancer (Maglev), Nginx và các AFE trong Kubernetes Cluster
User đi qua "Datacenter router" và "Load balancer (Maglev)" (cụm NLB), rồi tới hai Nginx làm "TCP/SSL Termination & HTTP request buffering and routing", phía sau là các AFE trong "Kubernetes Cluster" (hình trong video đăng ngày 21/04/2023).

Vấn đề ở đó, theo Diana (video đăng ngày 21/04/2023), là khi user kết nối, các kết nối không bị terminate cho tới khi tới được Nginx. Và hệ quả là client cũng retry. Đó là điều xảy ra khi có tải khổng lồ như vậy. Thật ra, chị nghĩ Pokemon Go, chỉ trong tháng đầu tiên sau launch, đã có số người dùng hoạt động ngang Twitter, thứ mà Twitter mất 10 năm để đạt được, còn họ đạt được trong một tháng (theo lời chị trong video đăng ngày 21/04/2023).

Tất nhiên mọi thứ sẽ hỏng, theo Diana (video đăng ngày 21/04/2023). Về cơ bản là rất nhiều user cố đăng nhập, và nó tạo ra một kiểu tấn công DDoS.

17. Sai lầm sau launch, và vai trò thay đổi sau product market fit

Diana tóm lại một chút về lúc launch, với một số sai lầm thường gặp sau khi launch, và chị nói chính chị cũng từng mắc, từng làm "CTO Doge" buồn (video đăng ngày 21/04/2023). Rất dễ bị cám dỗ build và hỏi "Google sẽ làm gì?". Theo chị, đó gần như chắc chắn là một cái bẫy: cố build như một công ty lớn, hoặc tuyển người để cố di chuyển nhanh; chị nói câu hỏi tuyển người này có nhiều sắc thái hơn, nó có thể là một sai lầm.

Meme Doge khóc với các dòng chữ Wow building like Big Tech, Many hiring before PMF, Very soon refactoring code, Amaze not talking to users, Much fixing bugs or cleaning tech debt, So not spending dev cycles on growth
Meme Doge rơi nước mắt với các dòng: "Wow building like Big Tech", "Many hiring before PMF", "Very soon refactoring code", "Amaze not talking to users", "Much fixing bugs or cleaning tech debt", "So not spending dev cycles on growth" (slide trong video đăng ngày 21/04/2023).

Sai lầm khác, theo Diana (video đăng ngày 21/04/2023), là tập trung quá nhiều vào việc sửa, refactor mà không build tính năng để iterate tới product market fit, không khám phá insight từ user. Đôi khi chị thấy CTO nói "được rồi, mình launch rồi, giờ tôi được cắm đầu vào build". Chị nói hoàn toàn không. Một lần nữa, vai trò technical founder của bạn rất khác. Bạn sẽ tham gia vào hành trình và thật sự hiểu insight về lý do user ở lại hay rời bỏ sản phẩm. Bạn phải tiếp tục nói chuyện với họ.

Và sai lầm khác chị thấy, theo Diana (video đăng ngày 21/04/2023), là kiểu "chúng tôi chỉ build tính năng cho sản phẩm". Nhưng bạn cũng cần build tech để tăng trưởng. Thật ra, theo chị, một số growth hack hay nhất là do engineer kết hợp với những người làm sales và growth không có nền tảng kỹ thuật.

Phần cuối là vai trò thay đổi thế nào. Giả sử bạn đã đạt product market fit, điều gì xảy ra? Theo Diana (video đăng ngày 21/04/2023), đây là thời điểm bạn thật sự có thể mặc quần engineer người lớn vào và tìm ra những phần tech cần được build để scale. Tech sẽ hỏng, và đó thật ra là chuyện tốt, hỏng vì quá nhiều nhu cầu. Hoàn toàn ổn; đó là ví dụ Pokemon Go của chị. Bạn sẽ tìm ra những phần cần làm lại, refactor. Đây là lúc làm việc đó, chứ không phải trước product market fit.

Bạn cũng sẽ quyết định engineering culture trông như thế nào, theo Diana (video đăng ngày 21/04/2023). Và đây là giai đoạn bạn thật sự tuyển người nhiều hơn. Có lẽ bạn sẽ chuyển từ dẫn dắt một team engineer nhỏ sang tuyển dụng. Những người đầu tiên bạn tuyển sẽ là những người bạn quen. Và ở điểm này vai trò của bạn thật sự thay đổi, vì bạn bắt đầu có chi phí giao tiếp (communication overhead).

Đây là lúc bạn nhận ra vai trò của mình biến đổi, theo Diana (video đăng ngày 21/04/2023). Với 2 đến 5 engineer, bạn vẫn có khoảng 70% thời gian để code. Khi lên 5 đến 10, bạn chỉ còn dưới 50%. Và trên 10, có lẽ bạn sẽ không thật sự còn thời gian để code, và phải quyết định cách tổ chức mọi thứ, và bạn muốn tiếp tục ở vai trò kiểu kiến trúc sư hay muốn thiên về vai trò con người hơn.

khoảng 70% dưới 50% có lẽ không còn 2 đến 5 engineer 5 đến 10 engineer trên 10 engineer
Hình 17.1Thời gian code của technical founder theo quy mô team; slide "Hiring" ghi "2-5 engineers: you still have ~70% time to code" và "5-10 engineers: you'll be coding <50%", còn mức trên 10 engineer là lời Diana nói (video đăng ngày 21/04/2023).

18. Tóm tắt: startup di chuyển nhanh

Diana tóm tắt bài giảng (video đăng ngày 21/04/2023). Giai đoạn một, ideating: mục tiêu là build một prototype càng sớm càng tốt, và nguyên tắc là build rất nhanh, trong vài ngày.

Giai đoạn hai, theo Diana (video đăng ngày 21/04/2023), là quá trình xây MVP, giai đoạn mà chị nghĩ nhiều bạn đang ở, hoặc ở giai đoạn trước đó. Mục tiêu là build thật nhanh để launch trong vài tuần. Các nguyên tắc là làm những việc không scale, tạo một giải pháp 90/10, và chọn tech vì tốc độ iterate.

Và giai đoạn cuối, khi bạn đã launch, theo Diana (video đăng ngày 21/04/2023): mọi ý trước đó về giải pháp 90/10 và làm những việc không scale vẫn áp dụng, và bạn thêm những điều này vào. Mục tiêu là iterate để tới product market fit. Bạn sẽ iterate nhanh với hard data và soft data, bằng analytics và phỏng vấn user. Bạn sẽ liên tục launch. Và bạn sẽ tìm sự cân bằng tinh tế giữa build và fix, nơi tech debt hoàn toàn ổn. Cảm nhận cái nóng của tech debt đó, hoàn toàn ổn.

Ideating Build prototype thật nhanh, trong vài ngày Xây MVP Do things that don't scale Giải pháp 90/10 Chọn tech vì tốc độ iterate Launched Iterate với hard và soft data Liên tục launch Cân bằng build và fix
Hình 18.1Ba giai đoạn và các nguyên tắc Diana tóm tắt cuối bài; slide "Launched" ghi "Quickly iterate with hard & soft data", "Continuously launch", "Balance building vs fixing" (slide trong video đăng ngày 21/04/2023).

Và nếu chỉ có một điều rút ra từ cả bài giảng, theo Diana (video đăng ngày 21/04/2023), thì đó là: startup di chuyển nhanh. Chị cảm ơn mọi người.

Nguồn và liên kết 5 nguồn

  1. Tên gốc: Tips For Technical Startup Founders | Startup School
  2. Sự kiện: YouTube
  3. Video gốc: https://www.youtube.com/watch?v=rP7bpYsfa6Q youtube.com
  4. Kênh YouTube Y Combinator (Diana Hu): youtube.com/channel/UCcefcZRL2oaA_uBNeo5UOWg youtube.com
  5. Paul Graham, "Do Things that Don't Scale" (July 2013), essay mà Diana gọi là nguyên tắc thứ nhất để build tới MVP (video đăng ngày 21/04/2023): paulgraham.com/ds.html paulgraham.com