Technical Debts: How to build without owing.

What is technical debt?

It’s the debt owed by technical decisions while crafting softwares. To solve a problem by creating more problems. Problems in software are debts that a software engineer is unable to pay.

To understand technical debt, hardware best explains. Hardware is the foundation of software. There must be no technical debt when building hardwares. CPU is the most extreme example of building hardware. CPU is the brain of hardware. The brain must not contain any defects. Such defects when they happen in the brain can cause catastrophic failures to the whole system from other parts of the hardware to software: https://www.zdnet.com/pictures/all-the-major-intel-vulnerabilities/. The names of the top of the major vulnerabilities show how catastrophic they cause: Meltdown, Fallout. Meltdown means total systemic failure. Fallout means apocalyptic failure. It explains why it takes a lot of time to craft CPUs: to assure no vulnerabilities. No technical debt. Debts owed by hardware are also extremely hard to pay. Fixing with BIOS (the software that manages the hardware: firmware) is a workaround. The only way to fix a CPU that couldn’t apply any workaround is replacing it with a cured CPU. Hardware replacement is the final solution that costs a lot of resources. There must not be any technical debt in hardware.

Software is the greatest invention in technology. The greatest attribute of software is flexibility. Flexibility conveys elasticity. Elasticity means it can be changed at any giving time. Anything can be changed, but software changes the fastest. It also explains how software impacts digital transformation: everything built with or on top of software changes immediately and immensely. This flexibility has a flaw: people building software knowing this flexibility allows them to deploy with defects in production. “This can be fixed later when we have time”. We never know “when” when it doesn’t have an exact date time. We never have time when time is not reserved. It will stay there as long as it can until it causes problems. Problems do not motivate action when it’s not severe enough. If a leader is not aware of the problem, he will be put in crisis mode when the system begins to melt down. The organization is in crisis.

A systemic fallout happens when technical debts reach a critical mass. The limit break.

Critical mass is an unmeasurable number, reached at an unpredictable point in time. Only measurable when it happens. When critical mass happens: one prevails the battle losing least, one awakes to infinity and beyond, one grips the meta or total annihilation fallout, apocalypse, doomsday, evolutionary failure. The mass effect.

Anything that can go wrong will go wrong - Murphy's law.

To avoid total annihilation is to avoid owing technical debts.

To not owe technical debt, always craft with care. Carefulness helps identify potential problems that can be caused by technical debts. When one crafts with care, one needs a lot of time to simulate and experiment fallout scenarios. Points of failures. Carefulness helps create solutions: better approaches, backup plans, redundancies, failover setups, crisis handling plans. How much of each of these and how many of these solutions best measure care. The best artisan crafts with care creates null defects - it doesn’t exist. Nothing is owed. Nothing to be paid for. No crisis situation. Nothing is urgent. Never emergency. It creates reliability, stability, and sustainability.

One manages crisis. One obtains longevity.

At Papaya, we call ourselves artisans. We craft with care to provide care ❤️.

Nợ kỹ thuật: Xây dựng sao cho không mắc nợ

Ở Papaya, tụi tôi tự gọi mình là artisan. Chúng tôi chế tác bằng sự tận tâm để trao đi sự chăm sóc.

Bản Dịch Phép Thuật Dịch từ Tiếng Anh bởi Claude. Mọi suy nghĩ gốc đều là của tác giả.
Read the Original Manuscript →

Nợ kỹ thuật: Xây dựng sao cho không mắc nợ.

Nợ kỹ thuật là gì?

Là khoản nợ đến từ những quyết định kỹ thuật trong quá trình chế tác phần mềm. Giải quyết một vấn đề bằng cách tạo ra thêm vấn đề. Các vấn đề trong phần mềm là những khoản nợ mà một kỹ sư phần mềm không thể trả.

Để hiểu nợ kỹ thuật, phần cứng là ví dụ tốt nhất. Phần cứng là nền tảng của phần mềm. Khi xây dựng phần cứng thì không được có nợ kỹ thuật. CPU là ví dụ cực đoan nhất của việc chế tác phần cứng. CPU là bộ não của phần cứng. Bộ não không được chứa bất kỳ khuyết tật nào. Những khuyết tật như vậy khi xảy ra trong bộ não có thể gây ra thất bại thảm khốc cho toàn hệ thống, từ các bộ phận khác của phần cứng cho đến phần mềm: https://www.zdnet.com/pictures/all-the-major-intel-vulnerabilities/. Tên của những lỗ hổng lớn nhất cho thấy mức độ tàn khốc của chúng: Meltdown, Fallout. Meltdown nghĩa là sự sụp đổ toàn hệ thống. Fallout nghĩa là thất bại kiểu ngày tận thế. Điều này giải thích vì sao chế tạo CPU tốn rất nhiều thời gian: để đảm bảo không có lỗ hổng nào. Không có nợ kỹ thuật. Những khoản nợ do phần cứng gây ra cũng cực kỳ khó trả. Sửa bằng BIOS (phần mềm quản lý phần cứng: firmware) là một giải pháp chắp vá. Cách duy nhất để sửa một CPU mà không thể áp dụng bất kỳ workaround nào là thay nó bằng một CPU đã được chữa. Thay thế phần cứng là giải pháp cuối cùng tốn rất nhiều tài nguyên. Phần cứng không được phép có bất kỳ nợ kỹ thuật nào.

Phần mềm là phát minh vĩ đại nhất trong công nghệ. Thuộc tính lớn nhất của phần mềm là tính linh hoạt. Linh hoạt mang lại tính đàn hồi. Đàn hồi nghĩa là có thể thay đổi vào bất cứ lúc nào. Mọi thứ đều có thể thay đổi, nhưng phần mềm thay đổi nhanh nhất. Nó cũng giải thích vì sao phần mềm tác động mạnh tới chuyển đổi số: mọi thứ được xây bằng hoặc trên phần mềm đều thay đổi ngay lập tức và to lớn. Sự linh hoạt này có một khuyết điểm: những người làm phần mềm biết rằng sự linh hoạt đó cho phép họ deploy với những khuyết tật lên production. "Cái này có thể sửa sau khi rảnh". Chúng ta không bao giờ biết "khi nào" nếu không có ngày giờ cụ thể. Chúng ta không bao giờ có thời gian khi thời gian không được dành ra. Nó sẽ nằm đó chừng nào còn có thể cho đến khi gây ra vấn đề. Vấn đề không thúc đẩy hành động khi chưa đủ nghiêm trọng. Nếu người lãnh đạo không biết về vấn đề, anh ta sẽ bị đặt vào chế độ khủng hoảng khi hệ thống bắt đầu sụp đổ. Tổ chức rơi vào khủng hoảng.

Một cú fallout toàn hệ thống xảy ra khi nợ kỹ thuật đạt tới khối lượng tới hạn. Điểm giới hạn bị phá vỡ.

Khối lượng tới hạn là một con số không thể đo đếm, đạt tới ở một thời điểm không thể đoán trước. Chỉ đo được khi nó đã xảy ra. Khi khối lượng tới hạn xảy ra: một bên thắng trận với tổn thất ít nhất, một bên thức tỉnh bước vào vô cực và hơn thế nữa, một bên nắm lấy meta hoặc là diệt vong toàn diện — fallout, apocalypse, doomsday, thất bại tiến hóa. Hiệu ứng khối lượng.

Anything that can go wrong will go wrong — định luật Murphy.

Để tránh diệt vong toàn diện thì phải tránh mắc nợ kỹ thuật.

Để không mắc nợ kỹ thuật, luôn chế tác với sự tận tâm. Sự cẩn thận giúp nhận diện những vấn đề tiềm ẩn có thể do nợ kỹ thuật gây ra. Khi chế tác với sự tận tâm, người ta cần rất nhiều thời gian để mô phỏng và thử nghiệm các kịch bản fallout. Các điểm thất bại. Sự cẩn thận giúp tạo ra giải pháp: cách tiếp cận tốt hơn, phương án dự phòng, dư thừa, setup failover, kế hoạch xử lý khủng hoảng. Bao nhiêu phần của mỗi thứ và có bao nhiêu giải pháp như vậy là thước đo tốt nhất cho sự tận tâm. Người artisan giỏi nhất chế tác với sự tận tâm tạo ra null defect — không có khuyết tật. Không có gì phải nợ. Không có gì phải trả. Không có tình huống khủng hoảng. Không có gì gấp gáp. Không bao giờ khẩn cấp. Nó tạo ra độ tin cậy, sự ổn định và bền vững.

Một bên thì đi quản lý khủng hoảng. Một bên thì đạt được sự trường tồn.

Ở Papaya, tụi tôi tự gọi mình là artisan. Chúng tôi chế tác bằng sự tận tâm để trao đi sự chăm sóc ❤️.

Thắp sáng ký ức này

Cú Bưu Điện

Nhận ký ức mới qua email. Không spam, không phép thuật đen.

No comments yet

Cú bưu điện được kiểm duyệt và có thể mất một lúc để tới nơi.

Phù phép bởi CC