อย่าใช้ MP เกินครึ่งหลอด

อย่าใช้ MP เกินครึ่งหลอด
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it? — Brian Kernighan

วันก่อนผมมีโอกาสได้สอน concept เรื่อง dependency injection ให้ทีม มีสมาชิกคนหนึ่งตื่นเต้นกับเรื่องราวใหม่นี้ หาโค้ดตัวอย่างที่เคยเห็นๆมา เอามากางให้ผมดู เพื่อถามและทำความเข้าใจเพิ่มเติมอย่างกระตือรือร้น (คนแบบนี้สอนสนุกจริงๆ :D) แล้วน้องเค้าก็พูดมาคำหนึ่งว่า

ผมจะพยายามหาที่ที่เล่นท่านี้ดูนะ

แวบนั้นสัญญาณนิรภัยในหัวผมก็ดังขึ้นมา แล้วก็โพล่งไปก่อนว่า “อย่า” ผมเล่าต่อว่า สมัยก่อน บ่อยครั้งที่ผมมักจะตื่นเต้นกับท่าใหม่ๆที่ได้เรียนมา แล้วก็หาทางเอาไปใช้ในงาน ผลลัพธ์เป็นเอกฉันท์ทุกครั้งไป คือโดนท่านั้นกลับมาแว้งกัดตัวเอง ตอนแรกผมไม่แน่ใจว่าผมเป็นแค่โปรแกรมเมอร์ดวงซวย หรือการใช้ท่ายากมันจะต้องโดนแว้งกัดเสมอไปนะ? จนกระทั่งมาเจอ quote ของ Brian Kernighan (จริงป่าวไม่รู้ แต่ wikipedia บอกว่าเค้าเป็นคนพูด) ว่า การ debug เนี่ย มันยากกว่าเขียนโด้ดตอนแรกตั้งเท่าตัว เพราะฉะนั้น ถ้าใช้ท่าที่ยากเกินครึ่งนึงของความสามารถเราเขียนมันขึ้นมา by definition เลยแปลว่า เราจะไม่มีปัญญา debug มันตอนมีปัญหา


เรื่องนี้สอนให้รู้ว่า ผม โชคชัย by definition ไม่มีทางดวงซวย #ไม่เห็นจะเกี่ยว #จบๆ กลับไปทำงานกัน

ref: https://en.wikiquote.org/wiki/Brian_Kernighan

credit:

  • ป้อ ที่เป็นแรงบันดาลใจให้เขียน blog นี้
  • โจ้ ที่เป็นต้นเหตุให้เกิด blog นี้

Read more

สุดยอดทีม (Extraordinary Team)

สุดยอดทีม (Extraordinary Team)

ท้ายหนังสือ Teamwork is an Individual Skill ของ Christopher Avery ได้กล่าวถึงสมการของสุดยอดทีมไว้ดังนี้ครับ Extraordinary Collaboration = Exchange + Expansion + Integrity ผมใช้เวลาอ่านตรงนี้ และอีก 3 บทที่ขยายความเรื่อง Exchange, Expansion และ Integrity อยู่เกือบ 2 สัปดาห์กว่าจะพอเข้าใจมันอย่

By Chokchai
ไล่ตามความฝัน กับ ดูแลตัวเอง

ไล่ตามความฝัน กับ ดูแลตัวเอง

ไล่ตามความฝัน กับ ดูแลตัวเอง ก่อนหน้านี้ผมเคยเล่าถึงขั้วตรงข้าม (Polarity) ระหว่างความคล่องตัวกับความสร้างสรรค์ไปแล้ว ครั้งนี้ผมมองว่า “การไล่ตามความฝัน” และ “การดูแลตัวเอง” (เปรียบเสมือน นักรบ กับ นักรัก) ก็เป็นแสงและเงาของกันและกั

By Chokchai
สกรัมเป็น Empirical process

สกรัมเป็น Empirical process

กระบวนการแก้ปัญหาในโลกแบ่งเป็น 2 แบบ แบบแรกคือ Defined process ซึ่งเป็นกระบวนการที่มีขั้นมีตอนชัดเจน เช่น Waterfall เป็นต้น ส่วนแบบที่สองคือ Empirical process หรือ "กระบวนการเชิงประจักษ์" ซึ่งเป็นการทำไปแล้วก็ปรับไปเรื่อย ๆ สกรัมเป็นแบบหลัง

By Chokchai
สกรัมมาสเตอร์ observe ผู้คน

สกรัมมาสเตอร์ observe ผู้คน

ครั้งที่แล้วผมแบ่งปันไปว่าสิ่งหนึ่งที่ผมตอนเป็นสกรัมมาสเตอร์มองหาคือ polarity หรือขั้วตรงข้าม ซึ่งคู่แรกที่ผมแบ่งปันไปคือ ระเบียบ (control) และความสร้างสรรค์ (creative) วันนี้ผมตะมาแบ่งปันอีกรูปแบบหนึ่งของ 2 ขั้วนี้ที่เรียกว่า survive (อยู่รอดปลอดภั

By Chokchai