Tình thế tiến thoái lưỡng nan của nhà phát triển

Quyết định giữa việc sử dụng một dịch vụ hoặc nền tảng hiện có và xây dựng nền tảng của riêng bạn

Có một vấn đề lớn mà tôi đang gặp phải, ngay bây giờ.

Tôi đang thử các nền tảng khác nhau để xem liệu chúng có phù hợp để trở thành nơi tôi có thể tổ chức các khóa học của mình trong tương lai hay không.

Nền tảng tôi sử dụng bây giờ dựa trên một trang web tĩnh có giao diện sử dụng tích hợp tùy chỉnh và các công cụ không mã (như Airtable). Thanh toán và đăng ký khóa học được quản lý bằng dịch vụ Node.js. Bạn có thể gọi nóJAMstack,không có máy chủ, hoặc bất kỳ thuật ngữ ưa thích nào hiện nay.

Trên thực tế, tôi có một số nền tảng SAAS, tất cả đều giống nhau, cho mỗi khóa học của tôi. Tôi thích giữ mọi thứ đơn giản và dễ hiểu nhất có thể. Khi tôi mới bắt đầu, tôi đã làm một trang web cho một khóa học.

Sau đó, khi đến lúc thực hiện một khóa học khác, tôi chỉ sao chép trang web đó và tạo một “phiên bản” khác của nó.

Bây giờ số lượng các khóa học đã tăng lên 7 và đã đến lúc tôi phải xem lại cơ sở hạ tầng tổng thể mà tôi sử dụng.

Suy nghĩ đầu tiên của tôi là sử dụng một nền tảng mà tôi có thể sử dụng, có thể đóng vai trò như một trung tâm tập trung cho tài liệu khóa học và cung cấp chức năng mà tôi không phải tự xây dựng.

Vì vậy, tôi đã đi ra ngoài và thử một số dịch vụ phổ biến, bao gồm Teachable, Podia và nhiều dịch vụ khác.

Nhưng tôi đã gặp phải điều mà tôi gọi là Thế tiến thoái lưỡng nan của nhà phát triển.

Ngay từ cái nhìn đầu tiên, những nền tảng đó thật tuyệt vời. Được thiết kế tốt, giao diện của họ bóng bẩy, hoạt động tiếp thị của họ tỏa sáng và nó thực sự trông rất tuyệt.

Sau đó, tôi bắt đầu sử dụng chúng.

Và tôi bắt đầu leo lên thang bậc của sự thất vọng.

  1. "Cái này trông rất tuyệt"
  2. "Tôi thích nó về tổng thể, nhưng điều đó có thể khác"
  3. "Người biên tập tệ quá"
  4. "Tôi ước tôi có thể sử dụng markdown"
  5. "Có một lỗi, làm sao có thể tôi là người duy nhất gặp phải lỗi này?"
  6. “Này bộ phận hỗ trợ, tôi gặp sự cố này” - “chúng tôi đã đưa nó lên nhóm kỹ thuật, chúng tôi sẽ thông báo cho bạn”
  7. “Ôi trời, tôi đã mất rất nhiều thời gian cho việc này rồi”

Tôi là một nhà phát triển lười biếng. Tôi coi đây là khả năng kỹ thuật tốt nhất của mình.

Phần mềm kỹ thuật quá mức, khi bạn là một nhà phát triển lười biếng, không phải là một vấn đề. Nó không bao giờ xảy ra. Tôi chỉ viết số lượng mã tối thiểu cần thiết để thực hiện một tác vụ.

Tôi chống lại sự phức tạp.

Tại sao điều này là tuyệt vời? Bạn không thể lường trước được những nhu cầu của ngày mai, những vấn đề của ngày mai. Và tôi đã học được điều này theo thời gian.

Là một nhà thầu, tôi đã làm việc trên những cơ sở mã phức tạp đến mức tôi muốn khóc và bất cứ khi nào có thể, tôi thích đơn giản hóa quá mức hơn phức tạp.

Là một nhà phát triển lười biếng cũng khiến tôi suy nghĩ rất nhiều trước khi viết phần mềm.

Bởi vì viết phần mềm là một trách nhiệm.

Bạn đang viết ra trọng lượng mà bạn sẽ mang theo trong tương lai.

Giả sử, tiếp tục những gì tôi đã viết ở trên về việc chọn một nền tảng khóa học, tôi quyết định viết nền tảng khóa học của riêng mình.

Điều này có nghĩa là tôi phải viết mã nó, trước tiên.

Tôi cần phải đưa ra quyết định. Quyết định có thể đúng, quyết định có thể sai.

Và sau khi tôi xây dựng phần mềm mà tôi mơ ước, tôi cần phải duy trì mã trong tương lai. Tôi chịu trách nhiệm về nó. Không có nút "yêu cầu hỗ trợ" nữa.

Là một nhà phát triển, chúng tôi có khả năng đáng kinh ngạc trong việc tạo ra các công cụ chúng tôi cần. Tuy nhiên, với chi phí, trách nhiệm.

Nhưng đó cũng là một vấn đề nan giải về quyền sở hữu. Tôi có muốn dựa vào nền tảng cụ thể này trong 5-10 năm tới không? Điều gì sẽ xảy ra nếu quyết định họ đưa ra không phù hợp với quyết định của tôi? Nếu họ tăng giá thì sao? Liệu tôi có thể rời khỏi nó một cách dễ dàng không?

Trong trường hợp lý tưởng, tôi sẽ luôn chọn nền tảng của riêng mình thay vì nền tảng do người khác quản lý. Nhưng tôi cũng sẽ chọn con đường dễ dàng nhất.

Nguồn lực lớn nhất và quý giá nhất đối với tôi là thời gian. Tôi có thể có nhiều thời gian hơn bằng cách chọn một giải pháp hiện có.

Tôi có nên dành một tháng để viết nền tảng các khóa học của riêng mình không?

Đó là trường hợp hiện tại của Thế lưỡng nan của Nhà phát triển mà tôi đang phải đối mặt.

Tôi đã thử tất cả các giải pháp có thể được thực hiện trước cho nó.

Tất cả họ đều không thực hiện đúng lời hứa của mình (hoặc với hình ảnh tôi đã có trong đầu) bằng cách này hay cách khác.

Tôi quyết định tôi sẽ viết giải pháp của riêng tôi. Tất nhiên, giải pháp đơn giản nhất.


Các hướng dẫn phòng thí nghiệm khác: