Career path ของโปรแกรมเมอร์ ถ้าไม่คิดออกไปทำอะไรนอกสายงาน จะเป็นประมาณนี้
Junior > Senior > Lead > Architect > Principal
ผมนึกถึงคลิปหนึ่งของ Stefan Tilkov ที่เล่าเรื่องความผิดพลาดของ [Architect](https://youtu.be/AkYDsiRVqno) ในนั้นมีสไลด์ที่ quote คำที่ผมมักจะนึกถึงบ่อย ๆ
"Architect" is Latin for "Can't code anymore"
/Ted Neward/
เมื่อสองปีที่แล้ว ก่อนที่โควิดระบาดหนักจนต้องปิดเมือง สไลด์นี้โดนใจ รู้สึกเสียดสี ประชดประชัน คนที่เริ่มจากโปรแกรมเมอร์มีความสุขในการเขียนโค้ด จนวันหนึ่งพบว่าตัวเองเติบโตก้าวหน้าในสายงานจนต้องมาอยู่ในจุดที่ไม่สามารถทำสิ่งที่รักได้อีกต่อไป
ผมยังไม่เคยไปถึงจุดนั้น แต่เชื่อว่าหลายคนก็คงคิดเหมือนกัน บอกกับตัวเองว่า ถ้าเป็นฉัน จะไม่ยอมให้เป็นเช่นนั้น ยังไงก็ไม่ละทิ้งการเขียนโค้ด
ไม่นานมานี้ในวงสนทนา เราคุยกันหลายเรื่อง การบันทึกบัญชีของ กิจการที่เป็นคลีนิค ซึ่งการประกอบโรคศิลปะได้รับการยกเว้นภาษี [คำพิพากษาฏีกาที่ 2559/9687](https://www.rd.go.th/62700.html) ดังนั้นต้องแยกรับรู้รายได้ให้ชัดเจนระหว่าง ค่าแพทย์ที่ได้รับการยกเว้น กับค่าอื่น ๆ เช่น ค่าเวชภัณฑ์, ค่าบริการ
แล้วก็เลยไกลกว่านั้นคือ ภาพใหญ่ที่แลกเปลี่ยนมุมมองกัน เรื่องการขยายขีดความสามารถในการทำงาน ควรเตรียมทีมอย่างไร เมื่อคุยกันถึงบทบาทหน้าที่ (role) ของแต่ละคน
ผมเล่าไอเดียที่คิดไว้ถึงบทบาทที่แตกต่างระหว่างหัวหน้ากับพนักงานบัญชี
"ไม่ว่าเคสจะยากง่ายแค่ไหน คุณ(หัวหน้า) ต้องไม่ลงมือเอง ถึงแม้ว่าการทำด้วยตัวเองจะเร็วกว่าง่ายกว่า แต่จะทำให้เรามีคนที่ทำได้อยู่เท่าเดิม ไม่ว่าจะช้า เสียเวลาแค่ไหน ต้องหาทางทำให้พวกเขา(ลูกทีม) ทำงานออกมาได้ตามที่คุณต้องการ"
กลับมาคิดทบทวน แล้วผมก็ค้นพบความหมายอีกด้านของ "Can't code anymore"
ในความคิดของผม ถึงแม้หัวหน้าจะรู้ว่าเรื่องนี้จะควรทำอย่างไร ก็ไม่ควรลงมือเอง แต่ต้องบอกเล่าสิ่งที่คิดไว้ให้ลูกน้องทำได้อย่างที่ต้องการ หนึ่งเป็นการฝึกให้ลูกน้องทำ และสองเป็นการฝึกตัวเองให้พยายามสื่อสาร
ผมไม่ชอบคำว่า "สอน" แต่อยากใช้คำว่า "สื่อสาร" เพราะการสอนมักทำให้ใจร้อน หวังผลสำเร็จมากกว่าความเข้าใจ มักตัดทางเลือกกลายเป็นสรุปให้ว่ามีเพียงวิธีของผู้สอนเท่านั้น แต่การสื่อสารเป็นการอธิบายถึงผลลัพธ์ที่ต้องการ ซึ่งอาจยังไม่รู้ว่าทำวิธีไหนดีที่สุด แต่ก็นั่นแหละ ความสำเร็จของการสื่อสารขึ้นอยู่กับ ผู้ส่งสาร กับ ผู้รับสาร
การสื่อสาร ใช้ความพยายามมากกว่า ต้องการเวลาเพื่อให้เขาเติบโต ถ้าพบว่ายังเข้าใจเป้าหมายไม่ตรงกัน ก็ต้องปรับปรุงการสื่อสารครั้งแล้วครั้งเล่า จนกว่าทีมจะถึงจุดที่เรียกว่า รู้ใจ เมื่อนั้นการสื่อสารในทีมก็จะสั้นกระชับอย่างที่เรียกว่า แค่มองตาก็รู้ใจ
แล้วก็มาถึงวันที่ความคิดของผมเปลี่ยน บางทีการลุกออกจากเก้าอี้ที่นั่งมานาน เปิดพื้นที่ว่างให้คนรุ่นใหม่มาลองนั่งตรงนี้บ้าง การสร้างผู้คนให้คิด เชื่อ และรักในสิ่งที่ทำ เหมือนกับที่ผมเป็น ดูน่าจะสนุกกว่า
ที่ผ่านมาผมเคยแต่ทำงานในระดับที่ไม่เกินสองมือตนเอง จึงไม่เคยเข้าใจคุณค่าของความเป็นทีม มองเห็นแต่ข้อด้อย ดังนั้นจึงรู้สึกว่าระหว่างการพยายามบอกคนอื่นกับลงมือทำเอง เลือกทำเองนั้นง่ายกว่า บ่อยครั้งที่หงุดหงิด ไม่ได้ดั่งใจ รู้สึกเสียเวลาและยากลำบากที่ต้องพยายามบอกเล่าให้ใครเข้าใจความคิดที่อยู่ในหัว
งานโปรแกรมก็เช่นกัน ยามที่มองไปข้างหน้าแล้วเห็นเดิมพันนั้นใหญ่เกินว่าจะไปเพียงลำพัง คำที่บอกหัวหน้าบัญชี ย้อนกลับมาสะท้อนเข้าตัวเอง
งานที่ต้องพึ่งพาทีมเพื่อพิชิตเป้าหมาย ความสำคัญของหัวหน้าอยู่ที่ทำให้ทุกคนมองเห็นเป้าหมายเดียวกัน ดังนั้นถึงแม้ตัวเองจะรู้งานว่าทำอย่างไร แต่ไม่อาจลงมือทำเองทุกเรื่อง แต่ต้องทำให้คนอื่นรู้เท่าทันและทำได้เสมือนเราทำเอง (พร้อมแอบหวังว่าจะทำได้เกินคาด)
"Can't code anymore" ไม่ใช่คำเสียดสี เมื่อถึงสถานการณ์หนึ่ง กลายเป็นความเต็มใจ กลายเป็นกลยุทธ สร้างความท้าทายใหม่ "เขียนโค้ดโดยไม่เขียนโค้ดอีกต่อไป" เป็นไปได้หรือไม่ เปลี่ยนจากทำสำเร็จด้วยตัวเองเป็นส่งมอบให้ผู้อื่น ฝึกวรยุทธสูงสุดของมือกระบี่ เหมือนที่ อากิก ตอบ อี้จับซา ว่า
“กระบี่ในมือของท่านก็คือกระบี่ของข้าพเจ้า”
Commentaires