Từ Thuyết Cửa Sổ Vỡ, đến những dòng Code tởm dần đều theo năm tháng

Thuyết “Cửa Sổ Vỡ” ra đời vào năm 1982, dựa theo 1 quan sát khá kỳ lạ:

  • Những căn nhà/ô tô có một cửa sổ bị vỡ, nếu không được sửa chữa kịp thời, dần dần sẽ bị dân phá hoại… đập hết các cửa sổ còn lại
  • Đường đi bộ, đất trống khi bị xả rác, nếu không được lau dọn kịp thời, dần dần sẽ thành nơi dân tình ra tổng hết rác thải vào

Nguyên nhân là vì sao:

  • Khi thấy cửa sổ không được sửa, dân phá hoại sẽ nghĩ “nhà này chắc bỏ hoang, đập chắc cũng không ai quan tâm”.
  • Khi thấy rác chất chồng, dân xả rác sẽ nghĩ “chỗ này ai cũng xả rác, mình xả thêm có sao đâu?

Điều này được mấy bác cảnh sát và các nhà tâm lý học đồng tình. Có những hư hỏng, phá hoại nhỏ (cửa sổ vỡ), nhưng nếu để lâu không quan tâm sẽ trở thành những hiểm hoạ to lớn.

 

Ủa mà cái thuyết lạ lol này thì có liên quan gì đến code, đến lập trình đâu nhỉ? Ấy vậy mà có đấy, bạn đọc tiếp sẽ rõ.

Những dòng Code tởm dần đều theo năm tháng

Để mình kể bạn nghe câu chuyện về 1 dự án phần mềm. Ngày xửa ngày xưa, có 1 team toàn các anh dev pro mang tên ChichDev, xây dựng mạng xã hội Chich Me, cạnh tranh với Zing Me.

Có 1 team toàn các anh dev pro mang tên ChichDev, xây dựng mạng xã hội Chich Me, cạnh tranh với Zing Me

 

Thời gian đầu, code của team viết rất rõ ràng mạch lạc, clean code, có architecture rõ ràng; chức năng quan trọng phải có document; code xong phải có unit test/integration test.

Thế nhưng, đến cuối năm, vào trúng đợt chịch cao điểm, team cần code chức năng “Ghép Cặp Chịch (chịch ở đây tức là chơi game chung bạn nhé)”. Thời gian gấp rút, cả team phải OT hơn tháng để làm, code vội ẩu tả cho chạy xong, chẳng kịp viết code hay unit test gì.

Dự án thành công, chức năng may mắn được nhiều người dùng! Team ChickDev cũng rất phấn khởi, tiếp tục dự án, nhưng lại … bỏ quên không viết test, không viết document cho chức năng này. Đó là chiếc cửa sổ vỡ đầu tiên.

Ở những chức năng sau, dù không bị task dí, anh em dev đôi khi vẫn … code ẩu, hoặc lười viết document. Họ đều nhìn lại tính năng Ghép Chịch, tặc lưỡi: Kệ, không có document vẫn chạy được mà.

Những tính năng code ẩu tả, thiếu test, thiếu document bắt đầu dần nhiều lên. Codebase của Chich.vn dần trở thành 1 đống hổ lốn, tởm dần đều theo năm tháng, vì chả ai thèm quan tâm nữa!

Codebase của Chich.vn dần trở thành 1 đống hổ lốn, tởm dần đều theo năm tháng

Lấp cửa sổ vỡ ngay trong trứng nước

May mắn thay, theo thuyết cửa sổ vỡ này, ta có thể ngăn chặn những hiểm hoạ to lớn, bằng cách ngăn chặn, sửa chửa những lỗi nhỏ nhặt ngay khi chúng còn nhỏ:

  • Nếu cửa sổ được sửa kịp thời, dân phá hoại thấy ô tô nguyên vẹn sẽ không dám đập phá nữa
  • Nếu đường được lau dọn kịp thời, dân tình sẽ biết đây là nơi sạch sẽ, không xả rác nữa

Quay lại câu chuyện của team ChichDev và Chich Me. Nếu như xong chức năng Chịch Cùng Nhao, cả team ngồi lại nghỉ ngơi, refactor lại code, viết thêm document và test; thì có lẽ các chức năng về sau sẽ chỉnh chu hơn.

Đơn giản là vì khi code cho 1 project chỉnh chu, không ông dev nào dám…. code ẩu tả, dám làm người đầu tiên đập vỡ cửa sổ cả.

Khi code cho 1 project chỉnh chu, không ông dev nào dám…. code ẩu tả, dám làm người đầu tiên đập vỡ cửa sổ cả.

Tạm kết

Không chỉ áp dụng được trong lĩnh vực ngăn chặn tội phạm, làm việc nhóm, thuyết cửa sổ vỡ này cũng có thể áp dụng trong các thói quen hàng ngày, thói quen làm việc của các bạn nhé.

Có những thói quen xấu ban đầu rất nhỏ nhặt như: Dậy trễ/đi làm trễ 5 phút; mỗi ngày bỏ 15 phút cày 1 ván LOL, trốn tập thể dục 2,3 ngày…

Nếu để nguyên không làm gì, chúng sẽ tiến hoá thành nữa thói quen xấu hơn như: Đi làm trễ 30 phút, cày LOL 1-2 tiếng mỗi ngày, bỏ tập thể dục nguyên tuần ….

Do vậy, các bạn nhớ cẩn thận, đừng để những thói quen xấu này manh nha và phát triển nha (Thằng viết bài này lỡ để rồi nên đang sửa, ân hận lắm hức hức).

Nhớ đừng cài Lol: Wild Rift trên di động để khỏi bị bạn bè dụ chơi nhé =))

 

Nguồn tham khảo

4 thoughts on “Từ Thuyết Cửa Sổ Vỡ, đến những dòng Code tởm dần đều theo năm tháng”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s