โลกการเขียนโค้ด ตอน ซามูไรกับสปาตั้น

โลกการเขียนโค้ด ตอน ซามูไรกับสปาตั้น
“Seven Samurai 3” by andy z is licensed under CC BY-NC-SA 2.0

ซามูไรที่ได้รับความไว้วางใจให้แก้ core logic จะมีสัญชาตญาณซามูไร คือแก้ตรงนี้ จับยามสามตาแล้วรู้เลยว่าจะไประเบิดตรงโน้น แล้ววิ่งไปสกัดบั๊กไว้ก่อนความเสียหายจะเกิด (ถ้าเป็นในหนัง ตอนนี้เป็นบทที่บั๊กร้องว่า “มืงรู้ได้ไง?!” :D)

หลังจากที่ผมรู้จัก TDD โลกการเขียนโปรแกรมของผมก็เปลี่ยนไป

นึกถึงกลุ่มชาวบ้านที่กำลังจะต้องต่อสู้กับกองทัพซามูไรที่มีประสบการณ์การรบมาหลายปี อาวุธอะไรก็ไม่มี เลยนั่งเหลาไม้ไผ่ทำหอก ทำโล่ แล้วใช้กลยุทธ์ตั้งแถวหน้ากระดานด้วยโล่ เห็นอะไรระหว่างช่องของโล่ก็แทง ๆ เข้าไป (นึกภาพการรบของชาวสปาตั้นในเรื่อง 300)

“SPARTA 2” by Gabor Richter is licensed under CC BY-NC 4.0

วิธีการนี้ฝึกแค่ 3 เดือนก็ออกรบกับซามูไรที่ฝึกมาหลาย ๆ ปีได้ แต่ทีมเวิร์คต้องแข็งแรงมาก เพราะถ้าโล่ก็แตกคนนึงคือตายทั้งกอง

โล่ของชาวสปาตั้นนั้นไม่ได้เอาไว้ปกป้องตัวเอง แต่เอาไว้ปกป้องเพื่อนที่อยู่ทางซ้าย ในทีมที่ทำ TDD ทุกคนเขียน automate test เพื่อปกป้องเพื่อนในทีม จากการที่ทุกคนพยายาม capture คุณค่าที่ตัวเองกำลังสร้างให้ลูกค้า ทำให้ผมที่อยู่ในทีมกล้าที่แก้โค้ดที่ตัวเองไม่ได้เขียน เพราะเชื่อใจว่า ถ้ามีอะไรพังไป ผมจะเห็นเทสซักตัวแดง จะมีโล่ที่เพื่อนตั้งไว้ ปกป้องผมจากไฟบน production

ตอนผมใช้ชีวิตแบบซามูไร ที่ทุกคนปกป้องตัวเอง อาศัยสัญชาติญาณของตัวเอง ใครอ่อนแอก็แพ้ไป แต่ในการรบแบบชาวสปาตั้น ผมจะมีสมาธิแทงของที่โผล่มาระหว่างช่องของโล่ได้ ก็เพราะไว้วางใจว่าโล่ของเพื่อนจะปกป้องผม ถ้าเราชนะ เราจะชนะไปด้วยกัน เรารู้ว่าถ้าโล่แตกคนนึงก็ตายกันหมด การเขียนโค้ดแบบนี้ทำให้ผมได้รู้จักกับสิ่งใหม่ที่ไม่เคยพบเจอมาก่อนในโลกของซามูไร คือคำว่า “โค้ดของเรา” สำหรับชาวสปาตั้น มันไม่มีโค้ดฉันโค้ดเธอ มีแต่โค้ดของเรา ทุกคนช่วยกันปรับปรุง ดูแล และทำให้มันดีขึ้น ผมจึงได้รู้ว่า collective code ownership ไม่ใช่แค่นิยายปรัมปรา แต่มันมีอยู่จริง

source code สมัยนี้มันโตเร็วมาก มันซับซ้อนมาก และมันเละง่ายมาก ถ้าผมยังใช้ชีวิตอยู่บนวิถีซามูไร ผมนึกไม่ออกเลยว่าจะเอามันอยู่ได้ยังไง ตัองลุยเป็นทีมนี่แหละ มันถึงจะเอาอยู่

สำหรับตัวผมในวันนี้ในฐานะ technical coach แล้ว ผมมอง TDD เป็นความหวัง ผมมีโอกาสได้พบเจอหลายคนที่เคยเข็ดกับความยาก และ ความโดดเดี่ยวของชีวิตซามูไรกลับมามีโอกาสได้สัมผัสกับประสบการณ์การเขียนโค้ดอีกครั้งในบรรยากาศที่แปลกออกไป มันไม่ได้ง่ายขึ้นหรอกนะ แต่การที่รู้ว่าข้างขวาเรามีคนถือโล่ปกป้องอยู่มันทำให้มีกำลังใจจะปกป้องคนที่อยู่ทางซ้าย มีกำลังใจที่จะฝึกฝนเพื่อจะช่วยเพื่อนในทีมได้มากขึ้น แล้ววันยาก ๆ มันก็ยากอย่างมีความหมาย ทำให้ใบหน้าที่เคยเปื้อนแต่ดินกับเหงื่อมันเปื้อนรอยยิ้มขึ้นมา :)

ป.ล.

สำหรับคนที่อ่านแล้วอินมากเลย ตัดสินใจเลยว่าตั้งแต่นาทีนี้ชั้นจะไม่เขียนโค้ดโดยไม่มีเทสอีก ผมอยากชวนให้อ่าน อย่าทำ TDD ถ้า… ก่อนตัดสินใจ

ส่วนคนที่ไม่อินกับนิทาน แต่สนใจว่าทำ TDD นี่มันคุ้มค่าการลงทุนไหม ผมเคยแชร์ ประสบการณ์ TDD ไว้ อาจจะมีประโยชน์ครับ

Read more

ในวันที่เพื่อนผิดข้อตกลง

ในวันที่เพื่อนผิดข้อตกลง

หนังสือ Teamwork is an individual skill ของ Christopher Avery เป็นคลังสมบัติจริง ๆ มีหลายหลักการที่ผมเก็บสะสมมาล้วนถูกรวบรวมอยู่ในเล่มนี้ หนังสือเล่มนี้เน้นการสร้างทีมในฝัน แทนที่จะตามหาทีมในฝัน ไม่ว่าเพื่อนร่วมทีมจะเป็นยังไง หนังสื

By Chokchai
Prolonged fasting 2025

Prolonged fasting 2025

ผมตื่นมาเช้านี้ รู้สึกเลยว่าหมดแรง ลองพยายามกำมือแน่น ๆ แต่กำไม่ไหวเลย เรี่ยวแรงมันน้อยไปหมด ลุกขึ้นช้า ๆ หลังปรับความดันได้ ก็ลองไปชั่งน้ำหนัก ลงไปอีก 0.35 กิโลจากเมื่อวาน ลองวัดความดันดู ความดันปรกติ 115/75 ค่อย ๆ พาตั

By Chokchai
ชีวิต

ชีวิต

ผมกำลังพยายามทำ prolonged fasting (อดอาหาร 72 ชั่วโมง) ครั้งแรกในชีวิต ณ ตอนนี้เป็นชั่วโมงที่ 34 เมื่อเช้าตอนออกไปวิ่ง 5 ก.ม. ระหว่างวิ่งอยู่ก็นึกขึ้นมาได้ว่าตอนถือศีลอด (ตามหลักศาสนาอิสลาม) ซึ่งอดตั้งแต่พระอาทิตย์ขึ้นจนพระอาทิตย์ตกดิน ผมเคยคิ

By Chokchai
ประโยชน์ของการอดอาหารนาน ๆ

ประโยชน์ของการอดอาหารนาน ๆ

Prolonged fasting หลายคนอาจจะเคยได้ยินว่าการอดอาหารนาน ๆ (prolonged fasting) ช่วยให้เราเด็กลง ซึ่งฟังดูเหลือเชื่อมาก วันก่อนน้องเขยผมเล่าให้ฟังว่าหลังจากอดอาหารนาน ๆ เกิดประโยชน์อะไรขึ้นกับร่างกายบ้าง ทำให้ผมเข้าใจกลไกที่ทำให้เด็กลงมากขึ้น เลยอยากเอามาแบ่งปัน ก่อนหน้านี้ผมเคยเล่

By Chokchai