Screen Shot 2558-09-19 at 2.51.22 PM
สำหรับ developer ทั้งมีประสบการณ์มาก หรือ น้อย
มักจะมีปัญหากับ Curse of knowledge หรือ คำสาปของความรู้

ผลที่เกิดมาก็คือ
อธิบายเรื่องที่ตนเองเข้าใจให้คนอื่นไม่เข้าใจ
ทั้ง ๆ ที่คุณคิดว่าสิ่งที่พูด หรือ อธิบายออกไปมันง่ายมาก ๆ

และสิ่งที่ผู้พูดมักจะคิดก็คือ
คิดเหมาไปเองว่า คนอื่น ๆ

  • จะรู้เหมือนที่เรารู้
  • จะเข้าใจเหมือนที่เราเข้าใจ
  • จะทำได้เหมือนที่เราทำ

ดังนั้นมาปรับปรุงการอธิบายของตัวเราเองกันหน่อยไหม ?

ผมว่าทุกคนเคยประสบภัยจากปัญหานี้อย่างแน่นอน

เช่น เมื่อคุณเข้าไปทำงานในบริษัทใหม่ ๆ
มักจะมีการอธิบายงานให้ฟังจากหัวหน้างาน
ซึ่งหัวหน้างานมักจะคิดว่า
คุณมีความรู้พื้นฐานต่าง ๆ เหมือนกับที่หัวหน้างานรู้
ดังนั้นจึงทำการอธิบายในเรื่องต่าง ๆ มากมาย
สุดท้ายเมื่อเวลาผ่านไปสักครู่
ตัวคุณเองจะไม่เข้าใจอะไรเลย !!!

ยิ่งในโลกของการพัฒนา software ปัจจุบันเต็มไปด้วยความซับซ้อน

เราจะเอาตัวรอดจากมันได้อย่างไรนะ ?

เริ่มด้วยการทำความเข้าใจความสำคัญของความซับซ้อนก่อน
จากนั้นต้องพยายามลด และ ขจัด ปัญหาที่เกิดจากความซับซ้อน
อย่าปล่อยให้มัน drama ล่ะ
ยิ่งปล่อยให้อยู่นาน มันยิ่งมีค่าใช้จ่ายในการแก้ไขสูง

ยังไม่พอนะ
เราต้องเรียนรู้วิธีการลดความซับซ้อนลงไปด้วย
ซึ่งมีวิธีการมากมาย
แต่ก่อนอื่น ต้องอธิบายสิ่งที่มันซับซ้อน
และวิธีการแก้ไขต่าง ๆ ให้คนอื่นเข้าใจก่อนไหม ?

ดังนั้นสิ่งที่ developer ต้องฝึกก่อนคือ Soft skill

สิ่งแรกคือ พูดกับคนอื่นให้รู้เรื่อง (Communication skill)
ไม่เพียงแค่อธิบายให้ developer คนอื่นเท่านั้น
แต่ต้องสามารถอธิบายให้กลุ่มคนที่ไม่อยู่ในสายการพัฒนา software เข้าใจด้วย
เริ่มง่าย ๆ ด้วยการไปพูดในงาน meetup งานสัมมนา การสอน และ coaching ทีม เป็นต้น

ลองคิดสิว่า
ถ้าคุณต้องอธิบายให้กับ CEO, CIO และ MD ที่ไม่มีความรู้ในการพัฒนา software เลย
คุณจะอธิบายเกี่ยวกับ IoC (Inversion of Control) และ DI (Dependency Injection) ให้เข้าใจ
ว่าสิ่งเหล่านี้มันดีอย่างไรต่อ code ของระบบ ?

ถ้าคุณในฐานะ developer ทำการทำนองว่า

  • มันคือการ inject พวก dependency !!
  • มันช่วยให้เราเปลี่ยนการติดต่อไปยัง database โดยไม่ต้องทำการ recompile code !!

มันคือการอธิบายสิ่งที่ซับซ้อน ให้ ซับซ้อนเข้าไปอีกหรือเปล่า
ยิ่งคนฟังไม่มีความรู้ด้วยแล้ว ยิ่งไปกันใหญ่

ลองถามตัวเราเองสิว่า
สิ่งที่พูด และ อธิบายออกไป มันง่ายจริง ๆ หรือไม่ ?

มาถึงตรงนี้
ไม่น่าจะแปลกใจนะว่า ทำไมใคร ๆ ก็บอกว่า developer มันพูดไม่รู้เรื่อง
… ในความเป็นจริงนะ รู้เรื่อง แต่ …

ดังนั้นสิ่งที่ต้องฝึก คือ การพูด และ อธิบายนี่แหละ
จะพูดอย่างไร เพื่ออธิบายสิ่งที่มันซับซ้อน ยาก ๆ
ให้คนฟังเข้าใจได้ง่าย โดยที่ข้อมูล และ รายละเอียดยังสมบูรณ์

ถ้าถามผม ผมก็ไม่รู้หรอกนะ
แต่มีทางเดียวที่สามารถช่วยได้ คือ การฝึกฝน
คุณต้องให้เวลาในการฝึกฝนเสียบ้าง

ลองถามตัวเองสิว่า

เราเข้าใจสิ่งเหล่านั้นจริง ๆ หรือไม่
คิดย้อนกลับไปหน่อยว่า

คุณเคยไม่รู้ในเรื่องนั้น ๆ แล้วคุณรู้สึกอย่างไร
เชื่อเถอะว่า คนที่รับฟังคุณก็รู้สึกอย่างนั้น

และก่อนจะอธิบายอะไรออกไป
ช่วยดู และ สังเกตกลุ่มผู้ฟังก่อนไหม ว่าเป็นคนกลุ่มไหน อย่างไร
มันจะทำให้คุณสามารถอธิบายได้ชัดเจน และ เข้าใจได้ง่ายขึ้น

สุดท้าย

รู้นะว่ามันยาก
รู้นะว่ามันเจ็บ
แต่มันสามารถฝึก และ ปรับปรุงให้ดีขึ้นได้นะครับ

ขอฝากไว้ว่า

If you can’t explain it simply, you don’t understand it well enough.
Albert Einstein