เมื่อพระเจ้าสร้าง Tech Lead… ส่วนผสมจะเป็นอะไร?
สักช่วงหนึ่งก่อนหน้านี้ ผมว่าพวกคุณคงเคยเห็นหรือเคยเล่นมีมคล้าย ๆ ในรูปนี้
ผมไม่รู้เหมือนกันว่าโปรแกรมที่สร้างรูปนี้ขึ้นมามีที่มาที่ไปเบื้องหลังอย่างไร หรือใครเป็นคนสร้าง แต่มันก็เหมือนจะตอบคำถามที่ผมอยากรู้ได้นะครับเนี่ย แหม… เล่ห์เหลี่ยม 69 ขวด เลขสวยด้วยนะ
ผมออกตัวล้อฟรีไว้ก่อนว่าเนื้อหาในบทความนี้เป็นสิ่งที่ผมเรียบเรียงมาจากประสบการณ์การทำงานของผมเอง และผมมีความยินดีเป็นอย่างยิ่งที่จะได้แลกเปลี่ยนความคิดเห็นกับทุกท่านที่ได้อ่านผลงานชิ้นนี้ของผมครับ ที่ต้องบอกอย่างนี้ก็เพราะว่าในแวดวงไอที Technical Lead นั้นมีความหลากหลายอยู่พอสมควร อีกทั้งยังไม่ได้มีมาตรฐานอะไรมากำหนดบทบาทหน้าที่ของ Technical Lead (ต่อไปผมอาจจะเขียนย่อว่า Tech Lead หรือ TL นะครับ) ให้ชัดเจน โดย TL ในแต่ละบริษัทอาจจะมีทั้งส่วนที่เหมือนและแตกต่างกัน ขึ้นอยู่กับหลาย ๆ ปัจจัย เช่น โครงสร้างองค์กร วัฒนธรรมองค์กร และลักษณะธุรกิจของบริษัทนั้น บางทีในบริษัทเดียวกันแต่ละทีมก็อาจจะมี TL ที่ทำงานแตกต่างกันออกไป
คุณครูวิชาภาษาอังกฤษสมัยเด็กสอนผมว่าภาษาอังกฤษแปลจากด้านหลังมาด้านหน้า ผมก็เลยแปลความมาตลอดว่า Technical Lead เราต้องให้ความสำคัญกับการ Lead เป็นอันดับแรกครับ ถ้าคุณไม่ Lead หัวหน้าคุณคงไม่ให้มาเป็น TL แน่ เพราะงาน Technical นั่นคุณทำอยู่แล้ว ทั้งนี้ผมเห็นว่าปัจจุบันมีการพูดถึง “ความเป็นผู้นำ (Leadership)” กันอย่างกว้างขวาง ในหลายบริษัทมีการส่งเสริมพนักงานด้วยการส่งไปอบรมและฝึกฝนทักษะในการเป็นผู้นำ บริษัทผมก็เช่นเดียวกัน
พูดถึงสมัยเด็ก ผมก็เพิ่งนึกได้ว่าตัวผมเองก็ได้ฝึกฝนการเป็น Lead มาตั้งแต่ตอนนั้นแล้ว ไม่ใช่ Cheerleader นะครับ ใครคิดว่าจะเห็นผมถือพู่ใส่ชุดรัด ๆ เต้นตามจังหวะ จงผิดหวังไปซะเถิด… ผมเคยเป็นหัวหน้าห้องครับ แต่คิดดี ๆ ส่วนใหญ่ผมจะเป็นรองหัวหน้าห้องมากกว่า ลองนึกต่อว่าสมัยนั้นทำอะไร
- เป็นตัวแทนบอกทำความเคารพเวลาครูเข้ามาในห้อง
- รวบรวมสมุดการบ้านไปส่งครู
- เป็นตัวแทนของเพื่อน ๆ ในห้องในการทำกิจกรรม เช่น ไหว้ครู ฯลฯ
- ดูแลความสงบเรียบร้อยของเพื่อน ๆ เวลาครูไม่อยู่ (เอาเข้าจริงดูแลไม่ค่อยได้หรอกครับ มักจะคล้อยตามเพื่อนไปมากกว่า)
- เช็คชื่อหรืออะไรก็ตามที่ครูอยากให้ทำแต่ไม่เฉพาะเจาะจงตัวบุคคล หน้าที่เหล่านั้นก็จะมาลงที่หัวหน้าหรือรองหัวหน้า ข้อนี้ผมเดานะครับ เผื่อครูของผมมาอ่าน
…จะว่าไปหน้าที่พวกนี้มันก็คล้ายนักการเมืองเหมือนกันนะเนี่ย (หรือผมคิดไปเอง) อีกอย่างหนึ่งที่เรารู้สึกได้คือเพื่อน ๆ จะเกรงใจเราประมาณนึง จะว่าเรามีอำนาจก็ไม่เชิง เราแค่มีงานที่ต้องทำเพิ่มขึ้นเท่านั้นเอง
พอเราเป็นหัวหน้าห้องหรือรองหัวหน้าห้องครั้งหนึ่งแล้ว ซึ่งผมก็จำไม่ได้แล้วว่าตอนแรกนั้นถูกเลือกมาได้อย่างไร ปีถัด ๆ ไปเรามักจะได้วนเวียนรับหน้าที่อยู่อย่างนั้น แถมเมื่อไปทำงานอื่น หรืองานกลุ่มที่ต้องมีการเลือกหัวหน้า สิ่งที่เกิดขึ้นคือเรามักจะได้เป็นหัวหน้าอีก ไม่ว่าเราจะอยากเป็นหรือไม่ก็ตาม ผมจำได้ว่าตอนเรียนลูกเสือก็ได้เป็นหัวหน้าหมู่ ตอนเรียน รด. ก็ได้เป็นหัวหน้าหมวด ทำไมมันถึงตามมาหลอกหลอนเรื่อย ๆ นะ ตอนเด็ก ๆ ผมก็ไม่ได้คิดอะไรมาก บางทีเหนื่อย บางทีขี้เกียจ แต่ในเมื่อได้เป็นแล้ว ยังไงก็รู้สึกว่าต้องทำให้สำเร็จ
เราเลิกย้อนอดีตแล้วกลับมาที่ปัจจุบันดีกว่า คำตอบที่ผมพบคือ ผู้นำหรือ Leader ต้องมีความพร้อมที่จะรับผิดชอบมากขึ้นก่อน แล้วถ้าคุณพยายามทำจนสำเร็จ คุณจะสร้าง Trust ให้เกิดขึ้นได้ จากนั้นถ้ามันสะสมมากพอ ทุกอย่างจะไหลไปเรื่อย ๆ ก่อนที่คุณจะรู้ตัวเสียด้วยซ้ำ
มาถึงตรงนี้ ผมสปอยเลยว่าหากคุณคาดหวังคำตอบของคำถามตามชื่อของบทความนี้ ผมมีแค่รูปข้างบนให้คุณเท่านั้นแหละ ผมเองก็อยากรู้เหมือนกันว่าพระเจ้าท่านจะผสมอะไรลงไป แต่ถ้าคุณเป็นคนแบบมูฟออนได้ ผมจะลองแชร์ส่วนผสมของผมให้คุณอ่านกัน ใครสนใจตามอ่านกันได้เลย
สำหรับผม Technical Lead เป็นส่วนผสมระหว่าง Technical และ Managerial ที่อัตราส่วนไม่แน่นอนครับ ขึ้นอยู่กับสถานการณ์ว่าเวลาใดเราจะเทส่วนไหนเพิ่ม ทอนส่วนไหนออก
ผมกำลังคิดว่าจะมีคนสรรเสริญผมไหม ถ้าผมไม่เขียนว่า Technical Lead คืออะไร เอ่อ… ผมประชดนะครับ อย่าเพิ่งส่งคำสรรเสริญมา ส่วนตัวผมชอบคำนิยามที่จะบอกต่อไปนี้ จำที่มาไม่ได้แล้ว อาจจะเข้าใจยากสักหน่อย
Technical Lead คือผู้ที่รับผิดชอบประเด็นด้านเทคนิคทั้งหมดที่เกิดขึ้นในวัฏจักรของการพัฒนาซอฟท์แวร์ด้วยความเป็นผู้นำ
ทีนี้คนที่สงสัยว่า Tech Lead คืออะไร ก็น่าจะสงสัยต่อไปครับ เผลอ ๆ ผมก็อาจจะโดนสรรเสริญอยู่ดี แต่มันอาจจะง่ายขึ้น ถ้าผมเขียนว่า Tech Lead ทำอะไรบ้าง ยกตัวอย่างเช่น
- ออกแบบสถาปัตยกรรม การเชื่อมต่อ คอมโพเนนต์ต่าง ๆ
- เลือกภาษาในการเขียนโปรแกรม ไลบรารี เฟรมเวิร์ค เครื่องมือในการทำงาน
- วางรูปแบบ ข้อตกลง และมาตรฐานในการทำงานของทีม
- รีวิวโค้ด หรือแม้กระทั่งนั่ง Pair Programming กับสมาชิกในทีมเพื่อช่วยแก้ปัญหา
- โค้ดเองในส่วนที่สำคัญ: TL บางคนยังเขียนโปรแกรมอยู่ แต่ส่วนใหญ่ไม่ได้ทำตลอดเวลา เพราะเขาต้องบาลานซ์งานโค้ดกับงานอื่น ๆ ของเขาด้วย
- ตัดสินใจในการแก้ปัญหาทางเทคนิคที่ไม่ได้คาดคิดไว้ล่วงหน้าว่ามันจะเกิด
- สอน แนะนำ และพัฒนาบุคลากรในด้านเทคนิค
- เป็นตัวแทนด้านเทคนิคในการหารือกับทีมอื่น ๆ
- ฯลฯ
Tech Lead นั้นยังทำอะไรอีกหลายอย่างมากมาย ทั้งหมดนั้นไม่ได้ทำเพื่อตัวเองเพียงคนเดียว แต่ทำเพื่อให้บรรลุเป้าหมายของทุกคนที่วางไว้ร่วมกันครับ เมื่อสาระมาเต็มขนาดนี้ เรารีบไปดูส่วนผสมที่สำคัญทั้งสองด้านของ Tech Lead ต่อเลย
ส่วนผสมด้าน Technical
แน่นอนครับว่าส่วนนี้เป็นความรู้ทางเฉพาะทางด้านไอที ที่เราชาว Developers หรือ Software Engineers ร่ำเรียนศึกษามาอย่างหนักหน่วง แต่ผมอยากนำเสนออีกด้านหนึ่งที่คิดว่าน่าสนใจไม่แพ้กัน
การลงมือปฏิบัติ
เป็นทักษะโดดเด่นแต่เดิมของคุณที่ส่งผลให้คุณได้มาเป็น TL ในวันนี้ ถ้าสมมติคุณเขียนโปรแกรมเก่งมาก ออกแบบฐานข้อมูลได้อย่างยอดเยี่ยม หรือหาวิธีแก้บั๊กได้รวดเร็วปานเดอะแฟลช ขอให้คุณรักษามันไว้ แม้ว่าคุณอาจจะไม่ได้ทำเยอะเหมือนเคย แต่การที่คุณยังสามารถทำสิ่งนี้ได้จะส่งผลดีต่อทีมของคุณในหลาย ๆ ด้าน และถ้าวันหนึ่งคุณไม่สามารถทำได้อีกต่อไป หรือไม่ทำอีกแล้ว ผมว่าคุณน่าจะใกล้เคียงกับบทบาท Manager มากกว่า
สัญชาติญาณ (Instinct)
TL ที่ยิ่งใหญ่ย่อมมีสัญชาติญาณอันใหญ่ยิ่ง ข้อนี้ฟังดูเหมือนไสยศาสตร์ แต่ผมชอบคำนี้ครับ มันคือการรวมเอา ประสบการณ์ (Experience) ความรู้ลึกในงานที่ทำ (Expertise) และความรู้รอบตั้งแต่หัวจรดท้าย (End-to-End Knowledge) เข้าด้วยกัน ก่อเกิดเป็นสัญชาติญาณ เกิดเป็นความรู้สึกตะหงิด ๆ ล่วงหน้าก่อนที่คุณจะลงมือทำสิ่งหนึ่งสิ่งใด ว่าทำแบบนี้ไม่ถูก ทำแบบนั้นอาจจะทำให้เกิดปัญหา รู้สึกว่าน่าจะมีสิ่งที่ดีกว่า และเห็นภาพล่วงหน้าว่างานจะเสร็จไม่ทัน ข้อนี้บางคนอาจจะบอกว่ามันคือ ยาอี เอ้ยย! มันดูเหมือน Soft Skill แต่ผมรู้สึกว่ามันสัมพันธ์กับความรู้ด้านเทคนิคอย่างแน่นแฟ้นครับ
Best Practices in Practice
ที่คุณต้องรู้ไม่ใช่แค่สิ่งที่ดีที่สุด (Best Practices) ในตำรา แต่เป็นสิ่งที่ดีที่สุดที่ปฏิบัติได้จริงในสถานการณ์ที่คุณกำลังเผชิญ การที่จะได้มาซึ่งสิ่งนี้ คุณจะต้องไม่หยุดเรียนรู้เทคโนโลยีใหม่ ๆ ที่เกิดขึ้นตลอดเวลา คุณต้องมีจินตนาการ ต้องฝึกฝนและสะสมท่าไม้ตายที่หลากหลายเอาไว้เลือกใช้ในแต่ละสถานการณ์ สำหรับข้อนี้ ผมอยากให้คุณไปดูอนิเมะเรื่อง ดาบพิฆาตอสูร
ส่วนผสมด้าน Managerial
โดยทั่วไปแล้ว TL มักจะถูกโปรโมทมาจาก Developer ที่มีความสามารถโดดเด่น ซึ่งส่วนมากเป็นความสามารถด้าน Technical นั่นแหละ ดังนั้นผมมักจะเห็นน้อง ๆ TL รวมถึงตัวผมเองเมื่อตอนที่เป็น TL ใหม่ ๆ ทำงานค่อนข้างลำบากและไม่ค่อยแฮปปี้ เพราะอัตราของส่วนผสมด้าน Managerial หรือเรียกง่าย ๆ ว่า Soft Skills มีน้อยไปหน่อย ทำให้รสชาติไม่อร่อยครับ
การจัดลำดับความสำคัญ (Multi-Dimensional Prioritization and Estimation)
ตอนคุณเป็น Developer คุณโฟกัสว่าคุณจะทำงานชิ้นหนึ่งเสร็จเมื่อไหร่ เมื่อทำเสร็จ คุณก็ทำชิ้นถัดไป แต่พอคุณเป็น TL คุณจะต้องจัดลำดับงานของคนหลายคนกับงานหลายงาน โดยคำนึงถึงปัจจัยหลากหลายที่เชื่อมโยงกัน ประเมินสถานการณ์ที่ซับซ้อนและเตรียมแผนสำรองไว้ในยามฉุกเฉิน ยิ่งคุณทำงาน Managerial ระดับสูงขึ้นเท่าไหร่ คุณยิ่งต้องฝึกทักษะนี้ให้เป็นเลิศขึ้นเท่านั้น
การสอนให้พัฒนา (Coaching and Mentoring)
ตอนผมเป็น Developer ผมสนุกกับการกระโจนเข้าไปโค้ด แก้บั๊ก หาโซลูชันแล้วลงมือทำเองตั้งแต่ต้นจนจบ ใช่ครับ นี่คือความสามารถเด่นของผมและคุณที่ทำให้เราก้าวหน้าในฐานะ Developer แต่พอผมมาเป็น Lead ปุ๊บ การทำพฤติกรรมแบบนี้จะให้ผลที่ไม่ค่อยดีนัก แถมส่งผลในทิศทางตรงกันข้ามกับตอนที่คุณเป็น Developer
ในภาวะคับขัน หากคุณประเมินดีแล้วว่าคุณเท่านั้นที่จะทำสิ่งนี้ได้ภายในเวลาที่จำกัดเพื่อลดความเสียหายที่จะเกิดขึ้น อันนี้โอเคและทุกคนจะเข้าใจครับ แต่ในสภาวะปกติการ Lead นั้นไม่ใช่การทำให้หรือทำแทน แต่เป็นการสอนให้เขาทำเองให้ได้ และเพื่อที่เขาจะไปสอนคนอื่นต่อครับ ถ้าเกิดคุณทำงานสักอย่างหนึ่งให้ลูกทีมของคุณจนครบถ้วนกระบวนความ เขาจะได้เรียนรู้และพัฒนาน้อยมาก หนักที่สุดเขาอาจจะจำอะไรไม่ได้เลย ที่สำคัญเขาจะรู้สึกว่าเขาไม่ได้รับ Trust จากคุณ และคุณอาจจะดูเป็นเผด็จการเล็ก ๆ ด้วยการที่ลูกทีมของคุณไม่ได้มีอิสระในการคิดหรือการทำงานของเขาเอง แม้ว่าสุดท้ายงานจะสำเร็จได้ แต่ในฐานะ Lead คุณอาจจะได้รับการประเมินที่ไม่ดีนัก เห็นไหมครับ คุณปฏิบัติตัวเหมือนเดิม แต่พอบทบาทคุณเปลี่ยนไป มันกลับส่งผลตรงกันข้าม
ผมเองเพิ่งตระหนักได้ว่าควรจะสอนอย่างไรให้ได้ผลก็ตอนมีลูกนี่แหละครับ ลูกสาวคนเล็กของผมเธอเพิ่งปั่นจักรยานสองล้อได้ ในช่วงแรกเราต้องประคองรถให้ตอนเขาถีบ หลังจากนั้นไม่นานเราลองปล่อยให้เขาถีบเองบ้าง ซึ่งเขายังไม่สามารถทำได้ในทันที เราต้องใจเย็น เฝ้าดูและให้คำแนะนำ มีครั้งนึงที่เขาพอจะถีบได้ดีแล้วไปหกล้มได้แผลมา เราก็ช่วยให้กำลังใจ บอกเขาว่าพลาดตรงไหน ควรปรับปรุงตรงไหน และที่สำคัญหากมีรถยนต์ของเพื่อนบ้านผ่านมา เราก็ต้องมั่นใจว่าลูกของเราอยู่ถูกที่ถูกทางที่จะไม่ก่อให้เกิดปัญหาใหญ่ ไม่นานเขาจะปั่นจักรยานได้เก่งกว่าเราเสียอีกครับ (เพราะเรามันอายุเยอะแล้ว) ขอจบเรื่องลูกสาวของผมเพียงเท่านี้ ผมอยากให้คุณลองเปรียบเทียบกับงานและลูกทีมของคุณดูครับว่าคุณ Lead ทีมของคุณอย่างไร ทั้งนี้ผมจะบอกความลับคุณอย่างนึง อย่าไปบอกใครนะครับ ว่าผมยังคงโดนเม้นต์อยู่เนือง ๆ เลยว่าผมทำงานเองเยอะเกินไป ทำไงได้ครับ งานมันเร่ง :P
การฟังอย่างลึกซึ้ง (Deep Listening)
มนุษย์เป็นสิ่งมีชีวิตที่ซับซ้อนครับ สิ่งที่คุณเห็นหรือได้ยินอาจจะไม่ได้หมายความอย่างนั้นจริง ๆ ผมอาจจะไม่ต้องยกตัวอย่างเพราะคุณเองก็อาจจะพบเจอกันมาเยอะแล้ว ศาสตร์และศิลป์แห่ง Deep Listening จะทำให้คุณเข้าใจเพื่อนมนุษย์ ไม่ว่าจะเป็นมนุษย์แฟน มนุษย์แม่ หัวหน้า หรือเพื่อนร่วมทีม และเมื่อคุณรู้ว่าเขาต้องการอะไรจริง ๆ คุณถึงจะไปทำในสิ่งที่ถูกต้องต่อได้ ในบริษัทผมมีคำที่ผู้บริหารใช้กันบ่อยครับว่าถ้าคุณติดกระดุมเม็ดแรกผิด ที่เหลือมันจะผิดกันไปหมด ดังนั้นใส่เสื้อยืดกันครับ
การสื่อสารที่กระชับและชัดเจน (Communication and Presentation)
ข้อนี้กับข้อที่แล้วส่งเสริมกันครับ คุณพยายามอย่าทำตัวเองให้เป็นสิ่งมีชีวิตที่ซับซ้อน มนุษย์ไม่จำเป็นต้องซับซ้อนครับ การสื่อสารเป็นทักษะที่ต้องฝึกฝน ต้องสื่อสารให้ตรงประเด็น ไม่ยาวยืดเยื้อจนเกินไปเพราะจะทำให้ผู้ฟังที่กำลังจะเข้าใจกลับมางงในสิ่งที่เราสื่อสารได้ และที่สำคัญที่สุดคือเราต้องรู้เขาก่อนรู้เราครับ รู้ว่าเราสื่อสารกับผู้ฟังกลุ่มไหน แล้วต้องปรับสารเพื่อสื่อออกไปให้เหมาะกับผู้ฟังหรือผู้รับสารแต่ละกลุ่มครับ
การเจริญสัมพันธไมตรี (Culture and Friendship)
การเป็น Lead แน่นอนว่าคุณไม่ได้คุยกับหน้าจอคอมพิวเตอร์อย่างเดียวแล้ว แต่ต้องคุยกับผู้คนมากหน้าหลายตา คุณมีหน้าที่สร้างความสัมพันธ์อันดีกับบุคคลจากนานาประเทศครับ ไม่ว่าจะเป็นประเทศ Infrastructure, ประเทศ Legacy Applications, ประเทศ Quality Assurance, ประเทศ Security, ประเทศ IT Governance, ประเทศ Enterprise Architect, ประเทศ High and Higher-Level Manager และประเทศอื่น ๆ ที่ขี้เกียจพิมพ์แล้วครับ ทั้งนี้เพื่ออะไรครับ เพื่อสร้าง Culture ที่ดีในการทำงานร่วมกัน และสร้าง Ecosystem ให้ลูกทีมของคุณทำงานได้ง่ายและเป็นไปอย่างราบรื่นนั่นเอง
เขียนมายืดยาว ผมควรจะจบบทความลงตรงนี้ก่อน ผมอยากจะปิดด้วยซีรีย์เกาหลีเรื่อง Kingdom …ใช่ครับ ซีรีย์เกาหลี คุณอาจจะตะโกนในใจแบบโลคอลนิด ๆ ว่ามันมาเกี่ยวกับเรื่อง TL ได้ยังไงวะเนี่ย ในเรื่องพระเอกเขาบอกประมาณว่า ถ้าไม่มีประชาชน ก็ไม่มีกษัตริย์ครับ การเป็น Lead ก็เช่นกัน ถ้าไม่มีลูกทีม ก็ไม่รู้จะเป็น Lead ไปทำไมครับ ผมว่าความหมายมันคมชัดลึกจริง ๆ
ส่วนผสมสุดท้ายถ้าจะใส่อารมณ์ขันเข้าไปด้วยเหมือนท่านพระเจ้าในรูปด้านบน ผมว่าก็ดีทีเดียว ใครจะไม่ชอบคนตลกล่ะครับ แล้วส่วนผสมของพวกคุณล่ะเป็นอย่างไรกันบ้าง
หวังว่าบทความนี้จะเป็นประโยชน์ให้กับทุกท่านไม่มากก็น้อย ขอบคุณที่ติดตามครับ
สำหรับชาวเทคคนไหนที่สนใจเรื่องราวดีๆแบบนี้ หรืออยากเรียนรู้เกี่ยวกับ Product ใหม่ๆ ของ KBTG สามารถติดตามรายละเอียดกันได้ที่เว็บไซต์ www.kbtg.tech