paint-brush
Lý thuyết Windows bị hỏng trong phát triển phần mềm: Tại sao chi tiết lại quan trọngtừ tác giả@aferreira
1,476 lượt đọc
1,476 lượt đọc

Lý thuyết Windows bị hỏng trong phát triển phần mềm: Tại sao chi tiết lại quan trọng

từ tác giả André Ferreira, MSc10m2023/02/27
Read on Terminal Reader

dài quá đọc không nổi

Lý thuyết Cửa Sổ Vỡ gợi ý rằng rối loạn môi trường khuyến khích hành vi tội phạm, chống đối xã hội hoặc rối loạn dân sự. Bài viết này đưa ra một sự phản ánh và cố gắng khuyến khích sự thay đổi bằng cách giúp người đọc hiểu hành động của họ tác động đến môi trường mà họ tham gia như thế nào. Một số vấn đề trong thế giới phát triển phần mềm có vẻ không quan trọng, chúng có thể gây ra tác dụng phụ và chi phí nghiêm trọng đối với con người và xã hội.
featured image - Lý thuyết Windows bị hỏng trong phát triển phần mềm: Tại sao chi tiết lại quan trọng
André Ferreira, MSc HackerNoon profile picture
0-item


Mặc dù một số vấn đề trong thế giới phát triển phần mềm có vẻ không quan trọng, nhưng chúng có thể gây ra các tác dụng phụ và chi phí nghiêm trọng đối với con người và xã hội. Bài viết này đưa ra một sự phản ánh và cố gắng khuyến khích sự thay đổi bằng cách giúp độc giả hiểu hành động của họ tác động đến môi trường mà họ tham gia như thế nào và thậm chí một số điều nhỏ nhặt cuối cùng cũng phải trả giá đắt như thế nào.

Windows bị hỏng

Khi còn trẻ, trước khi có chiếc máy tính đầu tiên, tôi luôn đạp xe. Đối diện nhà tôi, có một khu rừng nhỏ với vài con đường mòn đi bộ hẹp, nơi tôi đạp xe thường xuyên.


Tôi thường tưởng tượng rằng chiếc xe đạp BMX của tôi là xe Công thức Một và tôi đang thi đấu với Nigel Mansell, Alain Prost hoặc Ayrton Senna. Sau đó, gần đến vạch đích, tôi sẽ thực hiện những cú vượt siêu hạng và giành chiến thắng sít sao.


Ở cuối khu rừng, có một nhà kho cũ. Nó có những cửa sổ nhỏ trên đỉnh gần mái nhà để cho ánh sáng lọt vào. Tuy nhiên, những cửa sổ đó đủ cao để người ta có thể dùng chúng để nhìn vào bên trong.


Tôi không bao giờ quên lần đầu tiên tôi dừng lại để nghỉ ngơi và chiêm ngưỡng tòa nhà. Tôi nhớ lại mình đã nghĩ: “Thật kỳ lạ! Tại sao nó không gần đường?... Ai đó đã ném đá và làm vỡ một số cửa sổ... Tại sao chúng không được sửa? Nó trông bí ẩn, nhưng ảm đạm. Tốt hơn hết là tôi nên tránh xa, có gì đó không ổn ”. Sau đó tôi sẽ đạp xe đi và không bao giờ mạo hiểm vào khu vực đó nữa.


Nhiều năm trôi qua và cuối cùng khu rừng bị cắt ngang bởi một con đường và dần dần, một số tòa nhà mới mọc lên dọc theo nó. Nhưng ít nhất trong một thời gian, nhà kho cũ vẫn tồn tại. Tuy nhiên, cứ mỗi năm trôi qua, càng có nhiều cửa sổ buộc phải chịu những viên đá ném vào chúng.


Công bằng mà nói, bất cứ ai làm vỡ cửa sổ, sẽ không bị ám ảnh bởi sự hối hận. Một số đã bị hỏng và chưa được sửa chữa, vậy ai sẽ quan tâm đến một số nữa? Rốt cuộc, chi phí thay thế sẽ giống nhau vì tất cả chúng đều cần sửa chữa.


Do đó, các cửa sổ nhà kho cũ tạo cơ hội để rèn luyện mục tiêu của một người và ăn mừng khi hỗ trợ phá dỡ sớm thành công (một cửa sổ khác bị vỡ), như tôi đã từng quan sát thấy một số thanh niên lớn tuổi hơn đã làm.


Đối với tôi và một số đồng nghiệp khác, con đường cho phép con đường đến trường ngắn hơn. Tuy nhiên, tất cả chúng tôi đều thích con đường cũ hơn và dài hơn một chút, bởi vì đó là con đường quen thuộc và nó cho phép chúng tôi tránh được tòa nhà xuống cấp khiến chúng tôi cảm thấy khó chịu một cách kỳ lạ. Đó là một cái gì đó ít phải suy nghĩ hoặc lo lắng.


Tôi chia sẻ câu chuyện này, từ thời trước khi có điện thoại di động, với mục đích đưa bạn về thời thơ ấu của chính mình và cố gắng tìm ra những cảm giác tương tự mà bạn có thể đã trải qua khi còn nhỏ khi quan sát một tòa nhà hoặc khu vực xuống cấp, đồng thời giới thiệu Lý thuyết Windows bị hỏng .


Tóm lại, lý thuyết cửa sổ vỡ gợi ý rằng rối loạn môi trường khuyến khích hành vi tội phạm, chống đối xã hội hoặc rối loạn dân sự. Không có cửa sổ nào bị vỡ đồng nghĩa với ít khả năng xảy ra rối loạn hơn, thiên về hòa bình và hợp pháp. Đối với những cửa sổ bị vỡ của nhà kho cũ, khi đã có nhiều thứ lộn xộn, thì việc chất thêm vào sẽ dễ dàng hơn.


Lần đầu tiên tôi biết đến lý thuyết cửa sổ vỡ cách đây nhiều tháng, khi đang đọc cuốn Lập trình viên thực dụng . Nếu bạn chưa quen với thế giới Phát triển phần mềm, thì đây là một cuốn sách đáng đọc.


Sự khôn ngoan về lý thuyết cửa sổ vỡ thường xuất hiện trong tâm trí tôi. Chắc chắn các nhà tội phạm học và chuyên gia hành vi sẽ có nhiều điều để nói về nó, nhưng đối với tôi, đó là một minh họa khắc sâu về cách môi trường ảnh hưởng đến hành vi của con người.


Và trong khi một số học giả gần đây tuyên bố rằng lý thuyết này không còn đứng vững nữa, ngay cả khi không đọc các bài báo hoặc tuyên bố của họ, thì tôi đã thách thức: “Xin lỗi. Tôi hiểu bạn là một chuyên gia, nhưng theo kinh nghiệm của tôi thì điều đó vẫn đúng ”.


Nếu bạn thích chương trình truyền hình “Bing Bang”, thì bạn biết rằng ngay cả các chuyên gia cũng có thể sai và bị bạn bè chứng minh là sai.


Tôi hy vọng bạn hiểu rằng những ô cửa sổ bị vỡ trong câu chuyện về nhà kho cũ kỹ này đã mời gọi hành vi chống đối xã hội, hành vi này cũng sẽ khiến những người qua đường, như thể được hướng dẫn bởi một linh cảm tự động về rắc rối, bước ra khỏi nó và loại bỏ nó khỏi tâm trí.

Công nghệ và tội phạm

Để bạn không nghĩ rằng tôi quá già, hãy cho phép tôi sử dụng thử thách TikTok Kia làm một ví dụ khác (được thực hiện, có thể bao gồm cả việc đập vỡ kính xe).


Nếu bạn chưa biết, thì đó là về một video được chia sẻ trên nền tảng đó dẫn đến một loạt vụ trộm xe cơ giới nhắm vào Kia và Hyundai, chủ yếu là do thanh thiếu niên thực hiện, dẫn đến thiệt hại về tài sản, đau buồn, mất mạng và các hành vi bất chính khác. hậu quả, tất cả đều tiêu cực… ngoại trừ lợi nhuận của TikTok và sự nổi tiếng hơn nữa của nền tảng.


Dù là một quyết định thiết kế có chủ đích hoặc đáng tiếc của các nhà sản xuất ô tô đó, nhưng đó vẫn là một điểm yếu của hệ thống, được khai thác thành công thông qua cáp USB thông thường.


Hình ảnh nhà máy ô tô


Người trưởng thành, hoặc ít nhất là điều có trách nhiệm phải làm, là tiết lộ lỗ hổng nói trên cho cả hai thương hiệu và hy vọng họ sẽ thực hiện các bước để khắc phục. Tất nhiên, điều đó có nghĩa là các tác giả của video rất có thể sẽ không bao giờ trở nên nổi tiếng, họ cũng sẽ không thấy vui khi làm điều đó.


Điều thú vị đối với tôi là giới trẻ ngày nay thà trở thành những người có ảnh hưởng, ngay cả khi là đại sứ của cái ác, hơn là lính cứu hỏa, bác sĩ hay phi hành gia. Làm tốt công việc truyền thông đại chúng! (nỗ lực của tôi nhằm mỉa mai những người gặp khó khăn trong việc mỉa mai).


Vì vậy, trong ví dụ này, chúng ta có thể thừa nhận rằng ngay cả khi vô tình, một cửa sổ bị vỡ (và cáp USB) có thể dẫn đến hậu quả nghiêm trọng hơn là chỉ bị vỡ kính.


Kể từ đó, cả hai công ty đã thực hiện các bước để cố gắng giảm thiểu và giải quyết hành vi tội phạm, hay nói cách khác là sửa cửa sổ bị hỏng, nhưng không phải trước khi bị thiệt hại về danh tiếng và tổn thất tài chính.

Thiết kế phát triển phần mềm: Ví dụ về HTTP Referer Header

Một ví dụ từ thế giới phần mềm đã bị hỏng cửa sổ trong nhiều năm, đó là tiêu đề Người giới thiệu HTTP, một lỗi chính tả của từ người giới thiệu. Nó đã gây ra vấn đề cho tôi, có lẽ cho bạn và cho hàng trăm, nếu không muốn nói là hàng ngàn người nữa.


Giống như tôi, có lẽ bạn cũng chế giễu (đưa ra những nhận xét thô lỗ và chế giễu, thường là lớn tiếng) với các tác giả. Bạn cũng có thể đã tìm kiếm xem đó là lỗi của ai và cũng có khả năng kết luận rằng, thậm chí sau rất nhiều năm, rằng lý do quá bận rộn hoặc rằng “Cuối cùng thì tôi cũng sẽ sửa được”... là rất con người, như bạn đã cho chắc chắn đã nghe lý do tương tự trước đây, đối với các cửa sổ bị hỏng khác.


Ai quan tâm đến việc người khác mất thời gian khi thật dễ dàng để dạy rằng bạn cần phải làm điều gì đó sai, bởi vì đó là cách làm đúng? Hoặc, đây là một suy nghĩ buồn cười, tại sao chúng ta không thay đổi từ điển? Khi đó sẽ không còn là sai lầm nữa.


Mở trình soạn thảo văn bản bạn chọn và viết một câu với phiên bản sai chính tả có từ điển bằng tiếng Anh. Từ này có bị đánh dấu là lỗi đánh máy không?

Các kết quả có thể làm bạn ngạc nhiên.


Một cửa sổ bị vỡ, không được sửa chữa, sẽ dẫn đến nhiều cửa sổ bị vỡ hơn, nhưng nếu ngay cả các chuyên gia cũng không quan tâm đến những điều đó, thì tại sao những người còn lại của chúng ta lại quan tâm? Tại sao không phá vỡ nhiều cửa sổ hơn? Chắc chắn một ngày nào đó, tất cả phải được sửa chữa.


Đây là một lý do tiềm năng! Nó liên quan đến các con số, rất dễ hiểu sai, nhưng hãy thử xem.


Hãy sử dụng mức lương lập trình viên trung bình ở Hoa Kỳ vào năm 2021 là $93 000 theo nguồn này. Giả sử 40 giờ một tuần và 52 tuần làm việc để nhận được giá trị hàng giờ là 44,71 đô la (người Mỹ dường như không thích nghỉ hè).


Cho rằng, chỉ riêng ở Hoa Kỳ, có 4,3 triệu lập trình viên theo nguồn này. Ngay cả khi chúng tôi chỉ lấy 5% trong số đó (tôi đã chọn giá trị tùy ý), chúng tôi sẽ có 215 000 lập trình viên bằng cách này hay cách khác gặp phải lỗi đánh máy và phải thực hiện các bước để hiểu và giải quyết nó.


Nếu mỗi lập trình viên đó chỉ mất trung bình 1 giờ để giải quyết các tác dụng phụ và hiểu tại sao nó lại ở đó ngay từ đầu, thì chi phí cho lần gặp đầu tiên của họ sẽ là 9,6 triệu đô la . Nếu là 30% (1 290 000 người) thì giá trị sẽ là 57,7 triệu đô la . Xin nhắc lại: Chỉ ở Hoa Kỳ .


Ngay cả khi bạn chọn một tỷ lệ phần trăm tùy ý khác, sự lãng phí vẫn sẽ rất lớn.


Hình ảnh một người cầm tiền bằng cả hai tay như đang đếm


Và xin lưu ý rằng tôi đã không cân nhắc rằng các sự cố được phát hiện sớm hơn trong chu kỳ phát triển có chi phí thấp hơn đáng kể so với các sự cố phát sinh trong quá trình sản xuất. Tôi cũng không thêm các điều chỉnh lạm phát, cũng như không xem xét các quốc gia hoặc sinh viên và giáo sư khác nhau dành thời gian giải quyết nó, cũng như những người có trang web và không được coi là lập trình viên, cũng như những người đã nghỉ hưu, cũng như những người vẫn còn để học nó.


Bây giờ, ngoại suy giá trị đó để bao gồm cả thế giới. Bao nhiêu tiền, bao nhiêu giá trị, bao nhiêu mạng sống, bạn có tin rằng đã mất và sẽ mất?


Tôi mong mỏi ngày mà một tâm hồn tốt bụng sẽ chia sẻ ở đâu đó, “Nhân tiện, chúng tôi đã sửa nó và cách cũ sẽ không được dùng trong phiên bản X”. Bởi vì đối với tôi, trừ khi những người chịu trách nhiệm cho sai lầm dễ dàng đó đáng khinh đến mức đáng phải ghi nhớ vì lỗi đánh máy này, còn không thì thời điểm tốt nhất để sửa nó là ngày hôm qua. (Bạn có biết ai đó tại Quỹ Apache hoặc làm việc với Nginx không? Làm ơn đi! Làm phiền họ!)


“Hãy bắt đầu với mục đích cuối cùng”, bao gồm những gì bạn đã làm hoặc không làm cho người khác.


Tuy nhiên, đây chỉ là một ví dụ từ thế giới phần mềm, không phải là kỳ lân, chúng tôi còn nhiều hơn thế.

Sự trưởng thành của công ty và Windows bị hỏng

Theo kinh nghiệm của tôi, độ trưởng thành, kinh nghiệm của các bên liên quan và tuổi thọ của phần mềm càng cao thì khả năng các cửa sổ bị hỏng tồn tại trong thời gian dài hơn hoặc không bao giờ được giải quyết càng cao.


Và không. Tôi không đứng sau hay thậm chí bên cạnh những người hài lòng với việc phát hành sớm và thường xuyên, bởi vì điều đó thường dẫn đến chất lượng và sự quan tâm kém hơn. Biết rằng bạn đang phát hành hầu hết các cửa sổ bị hỏng, các tính năng hoàn chỉnh không được nghĩ đến, không phải là nhanh nhẹn, mà là cẩu thả.


Và vâng, tôi biết rằng nhiều lý do sẽ xuất hiện và mâu thuẫn với tuyên bố trên, nhưng tôi tin rằng không lý do nào trong số đó sẽ chống lại sự thay đổi thời tiết do một kẻ thù mạng quyết định trục lợi mang lại. Rõ ràng hơn: cơ sở mã của các công ty khởi nghiệp thường là nơi chín muồi cho tội phạm, nói cách khác, là những trái cây treo thấp để bọn tội phạm hái.


Nhưng đối với các tổ chức đã trưởng thành, các lực lượng mạnh nhất đằng sau thực tế trưởng thành ôm lấy các cửa sổ bị phá vỡ là lợi tức đầu tư thấp và các ưu tiên cấp bách khác chỉ ra và thực thi nhu cầu chú ý của các nguồn lực sẵn có.


Ngoài ra, các tổ chức được thành lập bị ràng buộc bởi các quy định và tuân thủ hạn chế họ chấp nhận những rủi ro nhất định mà nếu thành hiện thực, sẽ có tác động xã hội rộng lớn. Đó cũng là lý do tại sao những công ty này thích ươm tạo các công ty khởi nghiệp hơn, cho phép họ đạt được những ngóc ngách nhất định, sau đó đợi cho đến khi các quy định và hoạt động ổn định hơn, trước khi thực sự mua lại.


Một hình ảnh của một số hồ sơ xếp chồng lên nhau


Xã hội không thiên vị những người thất bại, chúng tôi tôn vinh những người chiến thắng! Vì vậy, con người luôn phòng thủ khi phạm sai lầm hoặc thất bại. Chúng tôi yêu cầu tất cả những người khác, ngoại trừ chúng tôi, không bao giờ bỏ lỡ một quả phạt đền hoặc một quả đá phạt nào cho vấn đề đó. Ngoài ra, các lập trình viên chắc chắn không tử tế với nhau, nhưng đây không phải là vấn đề của riêng họ.


Vì vậy, không có gì ngạc nhiên khi một nhóm hoặc một cá nhân phản hồi với những lý do như: “Đó không thực sự là một lỗi”, “Đó không thực sự là một lỗi”, đó là một quyết định thiết kế”, “Chúng tôi chưa bao giờ nghĩ rằng nó có thể được sử dụng như vậy ”, “không ai có thể làm điều đó”, “nó không làm hại ai cả”, “nó đang hoạt động như dự định”, v.v.


Và khi các cửa sổ bị hỏng không được sửa chữa, ít nhất là bất cứ lúc nào sớm thôi, theo kiểu hài hước lập dị, các lập trình viên gọi chúng là: “ một tính năng ”.


Nghe có vẻ ngớ ngẩn phải không? Hãy xem những gì có thể đang xảy ra.


Nếu chúng ta ngồi lại một cách thoải mái, cố gắng chống lại những thành kiến của chính mình, có lẽ nhiều người trong chúng ta cũng có thể quan sát thấy điều tương tự: một nhóm người kiếm sống bằng cách giải quyết vấn đề, có thể chắc chắn và dễ dàng nhận ra những ô cửa sổ bị vỡ. Và bởi vì một số vấn đề sẽ không bao giờ được sửa chữa, các cá nhân sẽ tìm cách để ngừng lo lắng và loại bỏ chúng khỏi những tồn đọng trong tâm trí họ.


Bởi vì giống như rất nhiều thứ khác trong cuộc sống không thể kiểm soát trực tiếp hoặc riêng lẻ, những thứ đó sẽ đè nặng lên bạn nếu bạn tiếp tục dành năng lượng để nghĩ về chúng.

Phần kết luận

Khi nào thì hành vi phổ biến mang tính tiêu cực và không mong muốn này trở nên không thể chấp nhận được? Có phải chỉ khi mọi người va chạm và cái chết xảy ra?


Nếu vậy, thì, có một số thứ sẽ không bao giờ sửa được… hãy tiếp tục thua, hay chính xác hơn là để người khác tiếp tục thua.


Giữa những mảnh kính vỡ chỉ ảnh hưởng đến chủ kho hàng, đến chủ sở hữu phương tiện, những người đã cướp chúng và cuối cùng là đến những lập trình viên khác, việc giải quyết các chi tiết, dù nhỏ, cũng sẽ tạo ra sự khác biệt.


Tôi hy vọng rằng lần sau nếu bạn làm điều gì sai trái, hãy cân nhắc sửa chữa nó ngay lập tức hoặc cho phép người đã làm điều đó sửa đổi nó.


Và hãy ngừng xả rác vì những người khác cũng vậy.


Và nếu đó là những chuyên gia, hãy thách thức họ! Họ là con người, họ phạm sai lầm và thậm chí họ có thể không nhận thấy. Nếu họ phản ứng như những kẻ ngốc, hãy trả lời: “không có gì”.


Nếu tôi phải trả giá cho tất cả những lỗi chính tả và những điều ngớ ngẩn khác mà tôi đã làm cho đến nay trong cuộc đời mình…


Nhưng tôi luôn cố gắng làm một việc : sửa chữa chúng, ngay khi tôi biết về chúng. Bạn cũng nên!


Những điều nhỏ nhặt, chúng quan trọng. Và nếu không chính xác là họ, thì sự hiện diện của họ biểu thị điều gì.


Đừng để “cửa sổ hỏng” (thiết kế xấu, quyết định sai hoặc mã kém) không được sửa chữa. - Lập trình viên thực dụng của Dave Thomas và Andy Hunt

(bao gồm cả những đứa trẻ nhỏ)