Software Developer và 5 bài học kinh nghiệm quan trọng

4693

Dịch từ bài viết của tác giả Stephen McLean

Với 4 năm làm việc ở vị trí Software Developer tôi đã rút ra được nhiều bài học lớn cho bản thân và hy vọng bài viết này sẽ giúp các dev học hỏi thêm những điều mình chưa biết.

  10 Công cụ Go-To Tech dành riêng cho các Software Developer
  Biến Git và GitHub trở thành công cụ đắc lực cho Software Engineer

Những bài học kinh nghiệm của Software Developer

1. Đừng cho rằng mọi thứ luôn hoạt động trơn tru

Ở job đầu tiên của mình sau khi ra trường, tôi được giao một task nhỏ trong chuỗi dự án dài hạn. Dự án này có sự tham gia của rất nhiều dev và phải chạy nước rút nhiều lần để hoàn thành. Nó có lượng codebase cực kỳ lớn, phức tạp và tích hợp với nhiều dịch vụ outsource.

Xem thêm Thị trường Outsourcing Vietnam 2019 – Thiên đường Outsourcing mới của thế giới

Công việc của tôi là fix một số unit tests không thể chạy liên tục, code của unit tests này tương đối cũ và được viết bởi một Senior Developer. Vì chúng hoạt động tốt trên UI và đã thông qua bài kiểm tra QA nên tôi nghĩ rằng sai sót có thể nằm ở kỹ năng kiểm thử của mình.

topdev

Tôi dành gần 3 ngày để fix những tests không có vấn đề gì như thế nên thời gian lâu hơn. Khi trình bày với sếp, anh ấy nói với tôi rằng đừng bao giờ cho rằng code của người khác thì luôn đúng. Lời khuyên này dường như không chỉ đúng với việc viết code:

  • Đừng nghĩ rằng khi bạn giao việc gì thì người thực hiện đều làm đúng theo như vậy mà thay vào đó, hãy có một thỏa thuận rõ ràng và theo dõi kỹ càng các task đã giao để đạt được kết quả tốt.
  • Đừng cho rằng đối phương đã hiểu những gì bạn nói kể cả khi họ nói đã hiểu và có thể làm được. Tôi rút ra bài học này sau khi là mentor của nhiều Junior Developer. Để chắc chắn bạn nên yêu cầu họ trình bày lại những gì bạn đã hướng dẫn theo cách họ hiểu.
  • Đừng nghĩ rằng đối phương luôn sai. Nhiều người quá tin tưởng vào code của mình và đổ lỗi cho người khác khi code không chạy được. Bạn sẽ được đánh giá cao hơn nếu biết nhìn nhận và test lại code của mình để đảm bảo sự chính xác hơn là chỉ chối lỗi.

Xem thêm Junior developer là gì? Những quy tắc bất biến dành cho Junior developer

2. Hãy suy nghĩ trước khi code

Sự thật là đa phần các dev đều thích automation, họ luôn tìm cách tự động hóa mọi thứ để cải thiện vấn đề. Tuy nhiên, đừng vội vàng viết code để làm điều đó, nhất là khi coding để sửa lỗi sai. Hãy nghiên cứu kỹ nguyên nhân vấn đề chứ đừng vội vàng tìm giải pháp. Trao đổi với nhiều người khác nhau không chỉ các dev để xem đây là lỗi kỹ thuật hay do quy trình, sau đấy hãy tìm giải pháp thực hiện. Vì nếu không hiểu được ngọn nguồn vấn đề, các dev và team của mình sẽ tiếp tục phạm phải nhiều sai lầm hơn khi làm việc mà thôi. 

Tham khảo tuyển dụng software engineer lương cao trên TopDev

3. Kết quả quan trọng hơn cách tạo ra kết quả

Sau 4 năm là Software Developer tôi nhận ra rằng, tools được sử dụng để xây dựng phần mềm là gì không quan trọng, miễn là nó có thể giúp tôi hoàn thành tốt nhiệm vụ là được. Khách hàng cũng chỉ quan tâm đến sản phẩm cuối cùng và hoạt động của nó có hiệu quả hay không, họ không để ý đến việc làm sao để nó hoạt động được như vậy.

topdev

4. Những vấn đề không do lỗi kỹ thuật mới là vấn đề khó giải quyết nhất

Khi ở giảng đường, mọi sai sót đều do kỹ thuật và bạn dễ dàng tìm được cách để đoạn code mình viết chạy được. Nhưng trong công việc thì không đơn giản như vậy. Bạn sẽ gặp rất nhiều chuyện phát sinh khi chạy một dự án: Làm sao để đảm bảo sự kết nối giữa các bên liên quan với nhau tốt nhất dù khác múi giờ làm việc, làm sao đảm bảo quy trình hoạt động và document được lưu trữ đầy đủ, giúp đỡ các dev mới trong team, giới thiệu cách hoạt động dự án cho khách hàng một cách dễ hiểu nhất,… Đó chỉ là một trong rất nhiều các vấn đề bạn phải giải quyết khi là Software Developer.

  Liệu Software Engineer có phải là nghề dễ ăn?
  20 trường hợp sử dụng lệnh Docker cho developer

5. Mọi vai trò trong team đều quan trọng như nhau

Một dự án sẽ không thể diễn ra suôn sẻ nếu không có sự kết hợp giữa các team liên quan và mỗi thành viên trong một team với nhau. Mỗi người sẽ đóng một vai trò nhất định từ BA, QA, quản lý dự án, quản lý các bên liên quan khác đến các dev. Code sẽ vô nghĩa nếu không có các stakeholder cùng nhau xây dựng dự án.

Kết luận

Hy vọng rằng những chia sẻ trong bài viết này có thể giúp bạn có thêm kinh nghiệm để hoạt động hiệu quả hơn với tư cách là một Software Developer.

Bài viết gốc được đăng tải tại freecodecamp.org

Có thể bạn quan tâm:

Xem thêm các việc làm IT hấp dẫn tại TopDev