Giao tiếp hiệu quả cho dev

Tại sao nên đọc bài này?

  • Cách để giao tiếp hiệu quả cho dev
  • Giành cho người hướng nội, ngại giao tiếp

Giao tiếp cho dev

Dù gì thì khi bắt đầu đi làm hoặc đã làm rất lâu trong lĩnh vực này thì đều phải thừa nhận rằng kĩ năng giao tiếp (Communication skill) là thứ rất quan trọng vì
  • Kiểu gì thì cũng phải có team làm chung, mà có team thì phải giao tiếp
  • Tao pro, tao solo? Nếu vậy thì bạn cũng phải giao tiếp với khách hàng
  • Tôi là người hướng nội, tôi sợ giao tiếp với con người? Nếu vậy thì càng phải giỏi hơn về giao tiếp để có thể nói tối thiểu những thứ cần nói
Mình là người hướng nội, hồi mới bắt đầu đi làm mình cũng sợ con người lắm, thấy gì cũng ok cả? Sếp hay đồng nghiệp hỏi ai còn ý kiến gì không? Thì câu trả lời là … im lặng xong xách lap về gặm nhắm những suy nghĩ đáng ra mình nên hỏi chỗ này, đáng ra mình nên nói chỗ kia,…
Nên hy vọng qua bài viết này, mình chia sẽ những kinh nghiệm mà mình đã tiến bộ trong khoản giao tiếp, để ít ra ko khiến mình bị tụt lùi lại.

Template

Đây là những case mà mình thấy dev hay gặp, nên viết thành thành kiểu template cho các bác sử dụng

Cần support fix bug

Template
Anh ơi em đang bị Bug chỗ này {{insert hình kèm mũi tên, khoang tròn chỗ cần chỉ}} Em đang làm {{task A}} theo các bước thì bị Em thử search google với keyword {{keyword}} nhưng vẫn chưa solve được
VD
Anh ơi em đang bị bug git nó hiện file changes nhiều quá
notion image
Em clone code về thì thấy bị vậy, cũng ko biết search Google gì luôn?
 

Cần hỏi nên dùng library/framework gì?

notion image
Template
Anh ơi em đang làm {{project/task}} này Trong đó có phần cần dùng đến {{chức năng cần implement}}, em đang phân vân không biết nên dùng {{lib a}} hay {{lib b}} [Optional] Em thấy {{lib A}} thì phù hợp hơn vì - {{Lý do 1}} - {{Lý do 2}} Anh có suggest library/framework nào phù hợp hơn không anh?
VD
Anh ơi em đang làm Task: Add carousel cho landing page
Trong đó có phần carousel có nhiều thư viện quá. Em có thấy keen-slidersplidejs khá nổi.
Mà em thấy mình dùng keen-slider sẽ hợp lý hơn vì
  • Nhẹ hơn (5.5kB)
  • Support react hook nên dễ integrate hơn
Anh có suggest library nào phù hợp hơn không anh?
🐣
New tech for newbie, old tech for real man

Khi nhận feedback chê từ đồng nghiệp

notion image
Đầu tiên phải bỏ cái tôi của bạn thân để nhìn nhận là feedback đó đúng không (Đi thằng vảo trọng tâm, focus vào kết quả công việc, không công kích cá nhân,…)
Nếu bạn thấy cần phản biện lại thì mới nên dùng template dưới đây
Template
Em làm theo hướng này vì task đang làm có những lý do - {{Lý do 1}} - {{Lý do 2}} - … Vì context trong dự án là {{context dự án}} nên những case anh nói sẽ không hoặc rất khó để có thể xảy ra
 
VD
Chỗ này em chỉ support hiện tooltip hover trên desktop thôi, không support được trên tablet vì:
  • Tablet không support rõ ràng action hover nên mình support cũng khó
  • Trang này là trang admin, đa số user dùng từ desktop nên mình cũng không cần support quá chi tiết trên Tablet
Nên em thấy feedback đó mình có thể bỏ qua hoặc support improve sau này thôi
🐣
Bạn là người làm trong prj này, trong task này, bạn là người nắm rõ context nhất, bạn là người make tradeoff, không phải người khác!

Clarify task đang làm

notion image
Template
Hi anh, Em đang làm task {{Task đang làm}} thì có chỗ này em cần hỏi: {{Câu hỏi}}, em nghĩ là mình nên làm theo hướng {{Hướng suggest mình thấy hợp lý}} vì - {{Lý do 1}} - {{Lý do 2}}
VD
Hi anh,
Em đang làm task user input ngày sinh thì có chỗ này em muốn hỏi: Mình bỏ input ngày tháng mà chỉ input năm sinh thôi được không vì em thấy
  • Hệ thống mình chỉ cần quan tâm tới Năm sinh của user là đủ để chạy rồi
  • Việc thêm Ngày, tháng vào đó sẽ take time implement để validate nữa
 

Khi nghĩ sẽ không kịp estimate

notion image
Khi nhắm thấy làm không kịp estimate thì nên báo ngay nhé, càng sớm càng tốt
Hi anh, {{Task A}} em đang làm em đang gặp khó ở chỗ {{Chỗ gặp khó khăn}} nên em thấy khả năng cao là không kịp estimate như ban đầu. Em đang gặp vấn đề - {{Lý do delay 1}} - {{Lý do delay 2}} Em nhắm chắc khoảng {{estimate mới}} thì mới giải quyết xong các vấn đề trên được
 
VD
Hi anh,
Cái task Show Avatar em đang gặp khó chỗ lấy Image nên khả năng cao là không kịp estimate như lúc đầu vì bên API đang gặp vấn đề lúc trả về lúc không.
Em có cach up với bên backend thì bên đó bảo 2 ngày nữa mới solve dc nên chắc task này phải 3 ngày sau mới làm xong được nha anh.
 

Khi đã không kịp estimate

notion image
Template
Nên cực kì hạn chế case này sảy ra vì nó rất bad. Nhưng đã lỗi rồi thì phải nhận thôi, nam nhi lên nào
Em không kịp làm {{Task A}} rồi anh ơi, em bị {{lý do 1}}, {{lý do 2}} nên em đã không báo cho em. {{Lession learn}} để sau không bị vậy nữa.
Nên cực kì hạn chế case này sảy ra vì nó rất bad. Nhưng đã lỗi rồi thì phải nhận thôi, nam nhi lên nào
VD
Khá bad nên mình không nghĩ ra được ví dụ đâu 🙃

Core của Giao tiếp

notion image
 
Thực ra mình tin khá cao là các bạn sẽ không dùng đống template ở trên, vì mình cũng vậy nhưng mình hiểu được cái core khi giao tiếp của các bạn dev nên có thể áp dụng một cách khá là linh hoạt trong nhiều trường hợp.
Đầu tiên phải bỏ đi những assumption mà bạn đang có
  • Sếp/Manager/Lead là người rất rành tất cả mọi thứ bạn đang làm. Không có đâu! Code mình viết sau này nhìn lại còn ko hiểu được thì sao có người nào khác hiểu được thứ bạn đang làm 😹
  • Mình không làm xong là do không có ai support, hay gặp lỗi quá tầm với bản thân. Có thể có issue X, issue Y khiến bạn không thể làm xong được công việc nhưng bạn phải là người có trách nhiệm với công việc đó, nếu làm không xong thì cần ask support, nhờ người khác để làm cho xong hoặc ít nhất là đảm bảo không xong cũng không quá ảnh hướng tới team/project 🥸
  • Mình hướng nội nên ngại giao tiếp, thôi thì sao cũng được. Cái này cực kì không nên luôn, vì bạn im một lần sẽ dẫn tới im nhiều lần, im nhiều lần dẫn tới bug nhiều lần, bug nhiều lần dẫn tới phải giao tiếp nhiều lần hơn nữa 😨.
  • Tôi gặp vấn đề, tôi hỏi. That’s it. Noooo way, môi trường đi làm không phải như trường học, bạn gặp vấn đề, bạn không hiểu thì bạn hỏi, thấy cô sẽ ở đó, luôn nở nụ cười và giảng lại cho bạn. Cái này là bạn đi làm, bạn được trả tiền để giải quyết vấn đề 🧑‍💼 chứ không phải trả tiền để đi học. Mà làm việc nghĩa là bạn phải đóng góp value gì đó cho công việc, do đó hãy là: Tôi gặp vấn đề, tôi tìm cách giải quyết một cách độc lập, nếu không tự giải quyết được, tôi sẽ hỏi đồng nghiệp để cùng giải quyết nó.
 
Nếu bạn xem lại tất cả mẫu template ở trên thì sẽ thấy nó gồm 3 phần:
  • Issue: Nêu ngắn gọn vấn đề mình đang gặp phải là gì. Cái này giúp bạn đi thẳng vào trọng tâm của vấn đề.
  • Context: Vấn đề đó xảy ra ở đâu? Dự án nào, task nào, context nào? Người bạn giao tiếp (sếp, đồng nghiệp) sẽ mất rất nhiều thời gian để có thể hình dung được vấn đề bạn đang gặp phải là gì, để từ đó đưa ra cách giải quyết. Do đó bạn cần mô tả cách ngắn gọn nhất về context cho issue đó. Bước này là quan trọng nhất để tránh phải giao tiếp nhiều vì nếu bạn không nói rõ context thì kiểu gì người ta sẽ phải hỏi lại để có thêm context, mà hỏi lại thì lại phải giao tiếp tiếp, mệt không? - Communicate hell 🙃 Hãy giao tiếp như người nghe không biết gì cả
  • Solution [Optional - should have] bạn đang làm, hoặc đang nghĩ tới. Khi gặp bất cứ vấn đề nào, chắc chắn rằng bạn có suy nghĩ, do homework cho vấn đề đó. Mình feel rất bad khi gặp các bạn chỉ hỏi thôi mà chưa có suy nghĩ, tìm hiểu giải pháp cho nó vì nếu không làm như vậy thì chả khác gì mình làm task đó cả và quan trọng hơn nữa, sau này khi gặp một vấn đề cũng khá tương tự thì bản thân người đó cũng không tự giải quyết được. Solution bạn có thể sai, có thể đúng nhưng ít nhất khi bạn tìm hiểu về vấn đề đó thì bạn sẽ có cái nhìn tốt hơn về issue, các solutions có thể áp dụng.
 
Đó công thức giao tiếp đó
Issue + context + solution [optional - should have]

Tổng kết

Là lập trình viên thì giao tiếp là việc không thể tránh khỏi, bạn giao tiếp gọn gàng thì càng bớt phải giao tiếp. Đừng để vì ngại mà code nhiều bug hơn, vậy thì bad lắm🙃
 
 

Loading Comments...

Follow me @cuthanh15