Lưu ý: bài viết này không mang tính chất truyền bá tôn giáo, mà chỉ là một góc nhìn thú vị về thế giới công nghệ, cụ thể là phát triển phần mềm.  

Trong bài viết này, tác giả đã viết một danh sách những điều mà theo trải nghiệm cá nhân, ông coi là sai lầm lớn nhất mà các kỹ sư có thể mắc phải khi phát triển phần mềm. 

1. Lust (Ham muốn)

Điều và trải nghiệm nhiều với bất cứ ai khi bắt đầu phát triển phần mềm. Thật hấp dẫn khi muốn thử mọi thứ trong thế giới mới mẻ này, chẳng hạn như sử dụng framework hoặc ngôn ngữ mới nhất vừa ra mắt. Nhưng điều này hầu như luôn trực tiếp dẫn đến thảm họa.

Nếu bạn sử dụng một framework mới vừa được phát hành đơn giản vì có vẻ như nó sẽ giải quyết được mọi thứ (như quảng cáo) hoặc vì chỉ bạn thích “đú” công nghệ - ngay cả khi nó chưa trưởng thành hoặc không có cơ sở người dùng lớn đằng sau, hiển nhiên là trong quá trình phát triển dự án, bạn có thể sẽ nhận ra những thiếu sót, lỗi hoặc lỗ hổng bảo mật. Và rồi bạn sẽ phải vá tất cả code của mình.

Tệ hơn nữa, người sáng tạo hoặc cộng đồng đằng sau framework đó có thể ngừng hỗ trợ và từ bỏ nó. Nếu điều này xảy ra, bạn sẽ buộc phải đổi framework nếu không muốn tạo ra một khoản nợ kỹ thuật lớn cho tương lai. Và việc chuyển đổi giữa chừng này tốn rất nhiều thời gian.

Tóm lại về Trọng tội chết mình thứ nhất: Là việc sử dụng không cân đối các thư viện, công cụ hoặc framework chỉ nhằm mục đích thử nghiệm một cách không cần thiết.

 

2. Gluttory (Tham “ăn”)

Vấn đề này xảy ra thường xuyên khi chúng ta thực hiện code review. Ví dụ:

  • Sử dụng các functions mà không cần tối ưu hóa.
  • Sử dụng thư viện để làm một việc gì đó trong khi bạn có thể giải quyết đơn giản chỉ bằng một vài dòng code và cập nhật chúng.
  • Tải các tập tin khổng lồ vào bộ nhớ và xử lý chúng thay vì đọc chúng theo từng đoạn và xử lý chúng.
  • Chèn hàng trăm bản ghi vào cơ sở dữ liệu bằng cách mở và đóng các kết nối cho mỗi thao tác.
  • Lấy nhiều thông tin từ cơ sở dữ liệu hơn mức cần thiết.
  • Gửi các đối tượng có nhiều thuộc tính hơn mức cần thiết cho client.
  • Lựa chọn kiểu dữ liệu và cấu trúc dữ liệu kém.
  • Xử lý các tác vụ tốn kém trong ứng dụng khách sẽ chạy trơn tru trên máy tính để bàn nhưng không chạy được trên điện thoại di động. Ví dụ: cố gắng phân trang danh sách các đối tượng trên client bằng cách tải xuống toàn bộ danh sách (dù nó rất lớn), thay vì thực hiện trên máy chủ.
  • Thực hiện song song các tác vụ, khiến phần còn lại của máy không có tài nguyên cho các tác vụ khác.

Tóm lại về Trọng tội chết mình thứ hai: Là sử dụng các tài nguyên có sẵn mà không nghĩ đến chi phí, hoặc code mà không chú ý đến các yêu cầu phần cứng cần thiết để thực hiện tác vụ.

3. Greed (Tham lam)

Đã bao lần bạn nghe rằng: “Tôi đã tạo code đó. Đừng soi mói, nó đang hoạt động tốt mà!” hoặc “Tôi đã làm việc với dự án này ngay từ đầu và tôi không muốn bất kỳ ai khác tham gia”? Chúng ta phải biết rằng khi chúng ta làm việc trong một nhóm, code không phải của riêng ai và chúng ta đều phải chia sẻ nó với đồng nghiệp của mình, giúp đỡ họ càng nhiều càng tốt.

Trong những trường hợp khác, chúng ta có thể muốn trở thành người không thể thiếu, trở thành trung tâm của mọi sự phát triển và là người đưa ra mọi quyết định. Có lẽ bạn nghĩ rằng, nếu bạn là người không thể thiếu được, bạn sẽ là người cuối cùng bị sa thải nếu mọi việc diễn ra không như ý muốn?

Tóm lại về Trọng tội chết mình thứ ba: Là khi chúng ta tin rằng mọi thứ thuộc về mình hoặc cố gắng ôm đồm nhiều hơn những gì chúng ta thật sự có thể.

4. Sloth (Lười biếng)

Ngắn gọn là làm cho một cái gì đó hoạt động mà không cần biết nó hoạt động như thế nào (làm cho xong việc).

  • Không thêm phạm vi test tốt hoặc thậm chí không thêm bất kỳ test nào.
  • Không quan tâm đến việc sử dụng các practice tốt và tuân theo các nguyên tắc như SOLID, DRY hoặc những nguyên tắc khác.
  • Không sử dụng hệ thống kiểm soát phiên bản hoặc sử dụng hệ thống này nhưng làm sai.
  • Thấy các dòng code trùng lặp hoặc đã chết và không làm gì với nó.
  • Viết code mà không cần suy nghĩ về “người đến sau”.
  • Copy & paste code từ Stack Overflow mà không hiểu mô tê gì.
  • Bỏ qua lỗi hoặc cảnh báo.
  • Bắt đầu code trực tiếp mà không hề dừng lại để suy nghĩ.
  • Xây dựng các hệ thống được ghép nối cao vì có vẻ dễ dàng hơn.

Tóm lại về Trọng tội chết mình thứ tư: Là khi chúng ta chỉ cố gắng tiết kiệm thời gian làm việc mà không quan tâm đó có phải là cách tốt nhất để làm việc đó hay không, phớt lờ chất lượng công việc và việc học hỏi của bản thân

5. Wrath (Phẫn nộ)

Mất bình tĩnh một cách vô cớ.

  • Phát cáu khi ai đó muốn sử dụng một ngôn ngữ hoặc framework và cố gắng biện minh bằng mọi cách có thể chỉ vì bạn không biết về ngôn ngữ/framework đó.
  • Mắng một ai đó đã tạo ra một git push và tải lên một cái gì đó phá vỡ cấu trúc, khiến bạn lãng phí cả giờ đồng hồ để cố gắng sửa chữa mà không biết rằng chính bạn cũng có thể phạm sai lầm này vào một lúc nào đó.

Tóm lại về Trọng tội chết mình thứ năm: Là kiểu: “Tôi không bao giờ mắc sai lầm. Tại sao những người khác không cẩn thận hơn?”

6. Envy (Đố kỵ)

Cản trở công việc của người khác để giữ vị trí an toàn cho bản thân.

  • Từ chối sử dụng hoặc chỉ trích một công nghệ mới chỉ vì bạn không biết về nó.
  • Biết thư viện hoặc tiện ích có thể giải quyết một vấn đề mà một vài đồng nghiệp đang gặp phải, nhưng lại giữ im lặng và cố tình để họ mất nhiều thời gian hơn trong việc tìm ra giải pháp và không “ghi điểm” trong mắt sếp.

Tóm lại về Trọng tội chết mình thứ sáu: Là kiểu: “Nếu không phải là tôi, thì sẽ không là bất kỳ ai khác.”

7. Pride (Kiêu ngạo)

Tin rằng bạn là người giỏi nhất và bạn không bao giờ sai.

  • Sửa đổi code đang hoạt động chỉ vì bạn nghĩ rằng làm vậy sẽ tốt hơn.
  • Tiếp tục mù quáng develop, từ chối nhận ra là mình đã mắc sai lầm và đó không phải cách tốt nhất cho dự án này.
  • Tin rằng code của bạn hoạt động và lỗi trong code là do người khác tạo ra.
  • Tải các cam kết của bạn lên production branch mà không kiểm tra cẩn thận, vì tin chắc rằng “code của tôi thì lỗi làm sao được”.
  • Nghĩ rằng bạn là người hiểu biết nhất về mọi thứ và không chấp nhận lời khuyên hoặc ý kiến ​​từ đồng nghiệp. Hoặc thậm chí tệ hơn, luôn nghĩ rằng các ý kiến trái chiều là sai và bạn luôn đúng.
  • Biện minh cho một quyết định ngay cả khi nó sai. Ví dụ: quyết định sử dụng giải pháp dữ liệu lớn trong khi cơ sở dữ liệu quan hệ như Postgres là quá đủ.
  • Over-engineering để cố gắng chứng tỏ bạn là người giỏi nhất trong khi tất cả những gì bạn làm chỉ là phức tạp hóa mọi thứ.
  • Không lắng nghe khách hàng và nghĩ rằng họ không hiểu chính lĩnh vực của họ.

Tóm lại về Trọng tội chết mình thứ bảy: Là kiểu: “Tôi là người giỏi nhất trong mọi việc, và tôi không chấp nhận bất kỳ lời chỉ trích nào từ bất kỳ ai.”

Kết luận

Nếu bạn đã phát triển phần mềm một thời gian, bạn có thể đã phạm một trong số 07 trọng tội chết mình này hoặc chứng kiến người khác phạm phải. Hãy thật cẩn thận để tránh biến mình trở thành nhân vật gây nản cho đồng đội và tự hại chết tư duy, thương hiệu cá nhân nhé. 

Tổng hợp việc làm IT - Software trên VietnamWorks
VietnamWorks InTECH
Theo betterprogramming