เป็นลูกรักของหัวหน้าอย่างไรให้สมศักดิ์ศรี (ฉบับโปรแกรมเมอร์)

Photo by Sebastian Herrmann on Unsplash

ตอนผมเริ่มทำงานครั้งแรก พี่ในทีมชอบแซวผมว่าผมเป็นลูกรักของหัวหน้า (Boss’s Favorite)

ฟังครั้งแรกก็ตกใจ เพราะการเป็นลูกรักมักจะมาพร้อมกับภาพของการประจบสอพลอ

แต่ผมมั่นใจว่าไม่ได้ประจบแน่ๆ เพราะแกเป็นต่างประเทศ ตอนนั้นผมพูดภาษาอังกฤษไม่ค่อยได้

แค่เรื่องงาน บางทีก็ต้องให้แกเขียนสรุปเป็นอีเมลล์ให้ เพราะฟังสำเนียงเท็กซัสของแกไม่รู้เรื่อง

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

Estimate มาเท่าไร ใส่เข้าไปเพิ่มอีกเท่า

Photo by Sebastian Herrmann on Unsplash

ผมลีดโปรเจ็คครั้งแรกตอนทำงานไปได้ปีนึง

โปรเจ็คนั้นทำงานกับคอนซัลท์ (ที่ปรึกษา) อีกคน ชื่อว่าแคลวิน

แคลวินเป็นชาวสิงค์โปร์เชื้อสายจีน อายุประมาณสี่สิบ เป็นคนเก่ง ใจเย็น และรับความกดดันได้ดี สมเป็นคอนซัลท์

สมัยนั้นทุกอย่างเป็น Waterfall หมด

คอนซัลท์จะทำหน้าที่ Requirement Gathering ไปเก็บความต้องการของลูกค้ามาให้ก่อน

หลังจากหายไปเดือนกว่า แคลวินกลับมาพร้อมกับเอกสารโปรเจ็คประมาณ 40+ หน้า หนามาก

ทำงานให้เร็วขึ้น ในเวลาที่น้อยลง (ในบริบทของโปรแกรมเมอร์)

Photo by Sebastian Herrmann on Unsplash

ผมเป็นคนบ้างานในระดับนึงเลย

จะเรียกว่าบ้างานก็ไม่ถูกซะทีเดียว เพราะผมค่อนข้างจะสนุกกับงานเขียนโปรแกรม บางทีก็ไม่ได้รู้สึกว่าตัวเองทำงานอยู่

พอถึงหกโมงเย็น ถ้ายังแก้บั้คไม่เสร็จ ก็ยังจะอยากดีบั๊กต่อ ถ้าทำฟีเจอร์เสร็จ ก็อยากจะทำฟีเจอร์ถัดไป ไม่ก็นั่งรีแฟคเตอร์ต่อ

สมัยมีชีวิตโสด ออกจากงานประมาณ 2-3 ทุ่ม เป็นอย่างเร็ว

สองปีก่อนแต่งงาน ชีวิตเปลี่ยนครับ

แฟนยื่นข้อเสนอที่ปฏิเสธไม่ได้ก่อนแต่งงาน คือเราสองคนต้องกลับมากินข้าวเย็นด้วยกันที่บ้านก่อนทุ่มนึง

ดังนั้น ประมาณ 5.30 ของทุกวัน ผมก็จะเตรียมแพ็คของกลับบ้าน

หลังจากทำได้สักสองสัปดาห์ ยามในออฟฟิซก็เริ่มทัก ว่ายูหายไปไหนตอนกลางคืน (ยามกะดึกจะเจอผมทุกวัน)

จากหลักล้านสู่หลักหน่วย ด้วยความรู้ด้าน Data structure (ตอน 1)

Photo by Xavi Cabrera on Unsplash

ถ้าใครเคยสัมภาษณ์งานตำแหน่ง Software Engineer ในองค์กรเทคระดับโลก (เช่น Google, Amazon, Facebook, Apple, Netflix) จะรู้ว่าทุกบริษัทจะเช็คความรู้ด้าน Data structure หมด

สาเหตุเพราะนี่ความรู้ที่สำคัญมากในการทำงานเสกลใหญ่ๆ ที่มีจำนวนข้อมูล หรือผุ้ใช้หลักล้านขึ้นไป

สำคัญมากนี่คือแค่ไหน?

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

เมื่อต้องขยับไปเป็นเทคลีด (From an engineer to a technical lead)

Photo by Sebastian Herrmann on Unsplash

พอถึงจุดนึงในชีวิต หัวหน้าจะเลื่อนขั้นคุณ แต่อย่าด่วนดีใจไป เพราะการเลื่อนขั้นมักจะมาพร้อมกับภาระหน้าที่ที่เพิ่มขึ้น (ส่วนจะขึ้นเงินเดือนให้รึเปล่านี่อีกเรื่องนึง)

สำหรับคนที่ไม่ได้อยากทำสาย People Management (เช่น ไปเป็น Engineering manager) ส่วนใหญ่ก็มักจะได้รับการเลื่อนตำแหน่งให้เป็น Technical lead (หรือบางที่ก็เรียกว่า Project lead) ที่คอยดูแลภาพรวมของโปรเจ็คหรือโปรดักต์ และคอยกระจายงานให้กับคนในทีม

จากประสบการณ์ส่วนตัว การขยับไปเทคลีดมักจะไม่ได้มีการเตรียมพร้อมกันให้ดี ส่วนใหญ่มักจะเกิดขึ้นเพราะมีเทคลีดคนเก่าออก หรือไม่ก็ค้นพบว่าทิศทางมันมั่วมาก ควรจะมีใครสักคนคอยดูแลเรื่องนี้

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

บทความนี้เสนอข้อแนะนำ 3 ข้อ สำหรับเทคลีดมือใหม่ครับ