@manhng

Welcome to my blog!

Technical Debt

January 18, 2022 10:34

Technical Debt (edit)

Technical debt hay câu chuyện về nợ kĩ thuật – Thảo Trịnh (thaotrinh.info)

Technical Debt - Nợ kĩ thuật - Nợ code không chỉ trả bằng code (viblo.asia)

Technical debt là gì? Hướng dẫn xử lý Technical debt (got-it.ai)

Technical debt là gì? Làm sao để xử lý Technical debt? (topcv.vn)

Xây dựng một React Component như thế nào cho hợp lý?

Thinking in React – React (reactjs.org)

Bí kíp toàn thư về React mà bạn cần phải biết (phần 1) | TopDev

Bí kíp toàn thư về React mà bạn cần phải biết (phần 2) | TopDev

Xây dựng một React Component như thế nào cho hợp lý? (viblo.asia)

Hướng dẫn cấu trúc thư mục và cách viết component chuẩn trong React (huongdanlaptrinh.net)

Cấu trúc thư mục và cách viết component chuẩn trong React (viblo.asia)

Hướng dẫn cấu trúc thư mục và cách viết component chuẩn trong React – Blog tâm sự về lập trình với Mỹ Vân Msita (wordpress.com)

Technical debt - Nợ kỹ thuật

Nợ không đáng sợ. Cái đáng sợ là không biết mình đang nợ.

Không biết không có tội. Nhưng không học thì rất có tội. Vì vậy luôn luôn thực hành, tái cấu trúc và cập nhật các công nghệ mới nhất, hữu ích.

Code như đứa con tinh thần của mỗi chúng ta. Hãy đối xử tốt với nó.

  1. Do áp lực, yêu cầu gấp và đẩy nhanh tiến độ từ cấp trên, nơi mà doanh nghiệp cần một cái gì đó launch sớm hơn trước khi tất cả các thay đổi cần thiết hoàn tất
  2. Thiếu quy trình và kiến thức trong quá trình phát triển phần mềm
  3. Thay đổi yêu cầu ở những giây phút cuối
  4. Tech lead không đủ năng lực, thiếu tầm nhìn về bài toán tổng thể business và áp dụng công nghệ
  5. Công nghệ đã lạc hậu, không có convention cụ thể, thiếu các quy chuẩn…
  6. Thiếu sự hợp tác giữa các bên liên quan, vấn đề tam sao thất bản
  7. Phát triển phần mềm không hướng người dùng, mà hướng tới sở thích của boss
  8. Không kiểm thử, không document…
  9. Do tính thiếu cẩn thận, tặc lưỡi cho qua, hết giờ làm mà vẫn phải fix bug, nên làm tạm cho nó chạy rồi xử lý sau(mà thường thì sau là không có hồi đáp)

“Do it now because we really need.`"

— Làm nó gấp cho tao, bởi vì tính năng này cần gấp.

“We’ll come back to this later when we have the time.”

— Chúng ta sẽ quay lại làm nó sau khi chúng ta có thời gian.

Và chúng ta thường đi đến một thỏa hiệp thông qua việc tăng nợ kỹ thuật lên. Nói như vậy không có nghĩa nợ kỹ thuật là điều xấu. Giống như nợ tài chính có thể giúp bạn đạt được các mục tiêu lớn trong cuộc sống nhanh hơn, không phải tất cả các khoản nợ kỹ thuật đều xấu và quản lý nó tốt có thể mang lại lợi ích to lớn cho công ty của bạn.

Có 3 loại nợ như sau:

1. Cố tình nợ

Thông thường thì các lập trình viên sẽ tìm và chọn cách nào nhanh nhất và đúng đắn để làm một tính năng, module nào đó ra mắt khách hàng sớm nhất có thể, dẫn tới việc họ chịu gánh nợ để đạt được điểu đó.

2. Vô tình nợ

Đây là vấn đề về kiến thức và kinh nghiệm. Trước khi thiết kế hay viết code chúng ta không thể lường trước được các case cũng như sự thay đổi trong business, nếu kiến thức và kinh nghiệm chưa đủ lớn thì chúng ta rất dễ dẫn tới việc hệ thống khó maintain và scale sau này. Đây thực sự là cái chúng ta thông cảm được, bởi nó nằm ngoài tầm kiểm soát của chúng ta.

3. Nợ không cần trả

Có những cái nợ mà chúng ta không cần trả. Đó là ở những công ty khởi nghiệp trẻ, khi mà họ chấp nhận đánh đổi nợ ban đầu để đổi lấy việc release MVP sớm nhất có thể. Nhưng có đến 90% các công ty khởi nghiệp thất bại và khoản nợ sẽ không bao giờ cần phải trả nữa. (Friendster là điển hình của một điều ngược lại, họ chết không phải vì không có khách hàng, họ chết vì nợ kỹ thuật quá nhiều).

“Hãy cố gắng đừng để vấn đề của bạn trở thành nỗi đau cho người đến sau. Có trách nhiệm và cẩn thận hơn với những gì mình đã làm ra. Đừng biến nợ kỹ thuật trở thành thói quen của bạn.”

Categories

Recent posts