เรียนรู้วิธีการจ้างโปรแกรมเมอร์ จากบริษัทไอทีที่ประสบความสำเร็จ

Credit: ShutterStock.com
Credit: ShutterStock.com

 

งานด้านการพัฒนาซอฟท์แวร์ สิ่งที่สำคัญที่สุดคือ “คน” ครับ

ถ้าจ้างคนได้ถูก ให้อิสระและอำนาจในการตัดสินใจที่ถูกต้องกับเขา เรื่องกระบวนการ เรื่องเครื่องมือต่างๆ ทุกอย่างจะตามมาเอง

เวลาบริษัทไอทีใหญ่ๆที่เทคโอเวอร์บริษัทเล็กๆ เรื่องแรกที่ต้องคิดก่อนเลย คือทำยังไงให้คนในบริษัทไม่ลาออก เพราะต่อให้ได้ซอฟท์แวร์และ Infrastructure ทุกอย่างไป ถ้าคนพัฒนาหายหมด โปรดักต์ก็ไปไหนไม่ได้

แต่บริษัทไอทีหลายๆบริษัท กลับปฏิบัติกับคนเหมือนเป็นฟันเฟือง ไปเสียเงินและเวลาไปกับเรื่องกระบวนการและเครื่องมือต่างๆ มากกว่าที่ควรจะเป็น

ในขณะที่การจัดการทรัพยากรบุคคล ซึ่งควรจะเป็นเรื่องที่สำคัญที่สุด กลับถูกมองข้ามไป

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

 

1. จ้างแต่ A player

ความสำคัญของทีมโปรแกรมเมอร์ อยู่ที่คุณภาพมากกว่าปริมาณครับ

หนึ่งในความเข้าใจผิดของคนที่ไม่เคยเขียนโปรแกรม คือการคิดว่าการเพิ่มจำนวนคนจะทำให้งานเสร็จเร็วขึ้นเป็นเชิงเส้น (หรือใกล้เคียงเชิงเส้น)

เอาเข้าจริง หากจ้างโปรแกรมเมอร์ที่ทำงานไม่ดีมา โปรแกรมเมอร์ระดับซีเนียร์ในทีมจะต้องเสียเวลาแก้ bug, รีวิวโค้ด, สอนงาน, รีแฟคเตอร์โค้ดมากขึ้น ดีไม่ดีทำให้ Productivity รวมตกลงด้วยซ้ำ

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

อีกเรื่องหนึ่งคือ การจ้างโปรแกรมเมอร์ที่ไม่เก่งคือการ”เสียพื้นที่” ในทีม ซึ่ง”พื้นที่”เป็นทรัพยากรที่มีจำกัดมาก ทีมที่มีประสิทธิภาพนั้นขนาดไม่ควรเกินสิบคน  หากจำนวนคนเพิ่มเกินกว่านั้น ประสิทธิภาพของทีมจะตกลงเยอะมาก สักพักนึงก็ต้องเริ่มทำการแตกทีม แล้วก็มี overhead ในการสื่อสารตามมาอีก

แต่การจะจ้างเฉพาะคนที่เก่งๆ ก็ไม่ใช่เรื่องง่าย เพราะจะต้องใช้เวลามาก กว่าจะหาคนที่เก่งๆเจอ เช่น ถ้าหากคุณอยากจะจ้าง Top10% ของตลาด ต้องสกรีคน 20-30 คนถึงจะเจอสักคนนึง

ดังนั้น ขั้นตอนการสกรีนคนจะต้องมีประสิทธิภาพมากๆด้วย ตัวอย่างที่ผมเห็นคือ

  • มีระบบสกรีนคนแบบอื่นๆ นอกจากเรซูเม่และการสัมภาษณ์งาน  เช่น ใช้  Online Coding Test (เช่น Codility, Hackerrank), ขอโค้ดจากผู้สมัครมาทำการรีวิว  วิธีพวกนี้จะช่วยตัดคนออกไปได้ตั้งแต่เนิ่นๆ ลดปริมาณเวลาที่ต้องใช้ในการสัมภาษณ์งาน (ในบรรดาวิธีการสกรีนคนทั้งหมด การสัมภาษณ์งาน(ดีๆ) ใช้เวลานานมาก และเปลืองเวลาโปรแกรมเมอร์ในทีมที่สุด)
  • ต้องมีคนที่เขียนโปรแกรมเป็น และมีประสบการณ์พอเป็นคนสัมภาษณ์
  • ให้มีการสัมภาษณ์มากกว่าหนึ่งรอบ แต่ละรอบมีคนสัมภาษณ์ 1-2 คน และนำผลของการสัมภาษณ์มาประมวลร่วมกัน
  • สร้าง Guideline ในการสัมภาษณ์ที่ชัดเจน มีตัวอย่างคำถามด้าน Coding/Technical และคำตอบที่เป็นไปได้ มีเกณฑ์ชัดเจนว่าคำตอบแบบไหนผ่าน คำตอบแบบไหนไม่ผ่าน เพื่อให้การคัดเลือกได้มาตรฐาน
  • สร้างกฏให้ชัดเจนสำหรับคนสัมภาษณ์ทุกคน เช่น “เราจ้างแค่ top 10% ของตลาด ถ้าไม่มั่นใจว่าใช่ ให้ตกไปเลย”
  • อย่าให้คนในทีมเดียวกันสัมภาษณ์ทั้งหมด เพราะในทีมอาจจะต้องการคนด่วน ทำให้ยอมลดคุณภาพ เพื่อให้ได้คนเร็วที่สุด วิธีแก้ไขของ Amazon คือ ให้มี Bar raiser จากทีมอื่นมาสัมภาษณ์ด้วย โดย Bar raiser จะมีสิทธิ์ขาดในการ”ให้ตก”  หากผู้สมัครไม่ผ่านเกณฑ์

 

2. สร้างประสบการณ์ดีๆให้แก่ผู้สมัคร

การสัมภาษณ์เป็นเรื่องของทั้งสองฝ่าย ในขณะที่เรากำลังประเมินผู้สมัคร ผู้สมัครก็กำลังประเมินเราด้วย

ตัวอย่างเช่น

  • HR ต้องทำงานให้เป็นมืออาชีพ อธิบายข้อมูลต่างๆชัดเจน มีการติดต่อผู้สมัครอย่างสม่ำเสมอ ไม่ว่าผู้สมัครจะผ่านหรือไม่ก็ตาม
  • คนสัมภาษณ์ต้องทำพฤติกรรมที่เหมาะสม เช่น ไม่ใช้โน้ตบุ้คหรือทำงานอื่นขณะสัมภาษณ์  อธิบายขั้นตอนการสัมภาษณ์ให้ชัดเจน ไม่เล่นมุขภายในระหว่างคนสัมภาษณ์เยอะเกินไป ไม่ทำตัวพองข่มผู้สมัคร ทำตัวไม่น่าทำงานด้วย
  • อย่าสัมภาษณ์ง่ายไป อะไรที่ได้มาง่ายๆคนมักไม่ค่อนเห็นคุณค่า โปรแกรมเมอร์เก่งๆส่วนใหญ่ชอบความท้าทายครับ
  • อย่าถามอะไรที่ไม่ได้เกี่ยวข้องกับการเป็นโปรแกรมเมอร์เลย (เช่น คุณมองว่าอีกห้าปี คุณจะทำอะไรอยู่  หรือ หากคุณหลงป่า แล้วเอาของติดตัวไปได้แค่อย่างเดียว จะเอาอะไรไป)
  • สำรองเวลาให้ผู้สมัครได้ถามเกี่ยวกับตัวงาน หรือบรรยากาศในการทำงานสัก 10-15 นาที แล้วเตรียมตัวขายของด้วย ว่าทำงานกับทีมเราแล้วดียังไง
  • หากผู้สมัครได้รับข้อเสนองาน ก็อย่าลูกเล่นตุกติกจนเกินงาม
  • หากผู้สมัครไม่ได้รับข้อเสนองาน ก็ต้องมีการแจ้งผล ถ้าเป็นไปได้ก็อธิบายให้ชัดเจนว่าทำไมถึงไม่ผ่าน
  • มีการรับ Anonymous feedback จากผู้สมัครทุกคน เพื่อปรับปรุงกระบวนการอย่างต่อเนื่อง

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

ลองสังเกตใน Glassdoor ใน Interview Experience ของ Google  จะพบว่าผู้สัมภาษณ์ส่วนใหญ่จะมี Positive experience กับการสมัครงาน แม้ว่าจะตกสัมภาษณ์ก็ตาม เรื่องแบบนี้ไม่ได้เกิดขึ้นง่ายๆนะครับ เบื้องหลังการสัมภาษณ์ ผู้สัมภาษณ์เองต้องมีการเตรียมตัวและเรียนรู้ด้านการสัมภาษณ์งานด้วย

 

3. สนับสนุนการ Refer จากคนภายใน

ถ้าใครคุ้นเคยกับระบบสมัครงานบริษัทไอทีใหญ่ๆอย่าง Google หรือ Amazon  จะรู้ว่าบริษัทเหล่านี้มี Fast-track สำหรับผู้สมัครที่ได้รับการ Refer จากพนักงานในบริษัท โดยผู้สมัครเหล่านี้จะได้รับการตอบกลับที่ไวกว่า และได้รับการอัพเดตทุกขั้นตอนของกระบวนการสมัครงานอย่างต่อเนื่อง

สาเหตุก็เพราะมีสถิติชัดเจน ว่าคนที่ได้รับการรีเฟอร์จากคนภายในบริษัท มีโอกาสผ่านสัมภาษณ์งานสูงมากกว่า และค่าใช้จ่ายโดยรวมต่ำกว่าวิธีการหาคนแบบอื่นๆ

ดังนั้น บริษัทจึงควรที่จะสนับสนุนการรีเฟอร์ให้มากที่สุด สิ่งที่เราทำได้คือ

  • ให้เงินค่า refer กับพนักงานในระดับที่กระตุ้นให้พนักงานช่วยหาคนอย่างจริงจัง (เช่น มากกว่า 50% ของเงินเดือน)  คำนวนดีๆว่าการที่งานเราเดินช้าไปเรื่อยๆ มันคุ้มรึเปล่ากับการประหยัดเงินส่วนนี้ ถ้าใช้บริการ Recruiter อยู่ เงินจำนวนนี้น้อยกว่าค่าจ้าง Recruiter มาก
  • หากมีการ refer  ให้ปฏิบัติกับคนที่ถูก refer ให้เขารู้สึกว่าได้รับความสำคัญ ไม่ใช่หุ่นยนต์ เช่น เวลาติดต่อ ก็เขียนอะไรที่มัน personalized หน่อย ไม่ใช่ก็อบแปะอย่างเดียว ไม่แก้อะไรเลย  และคอยติดต่ออัพเดตว่าขั้นตอนไปถึงไหนแล้วทุกๆสัปดาห์

 

4. เสนอเงิน และอะไรที่มากกว่าเงินด้วย

มีคนเคยบอกว่า ถ้าเงินซื้ออะไรไม่ได้ แปลว่ายังเสนอเงินไปไม่มากพอ

มนุษย์เราเป็นสิ่งมีชีวิตที่ไม่ชอบความเปลี่ยนแปลงครับ หากไม่มีสิ่งกระตุ้นที่มากพอ ก็ไม่มีใครอยากย้ายงานหรอก

ใครที่บ่นว่าจ้างโปรแกรมเมอร์เก่งๆไม่ได้ หาไม่เจอ จริงๆไม่ใช่หาไม่เจอครับ แค่เสนอให้ไม่พอ  หรือเสนอให้มากพอไม่ไหว เพราะธุรกิจทำรายได้ไม่มากพอ

สิ่งที่เสนอได้หลักๆก็คือเงิน ซึ่งเป็นวิธีที่เหมาะมากสำหรับเด็กจบใหม่ เพราะเงินเดือนไม่มาก การเสนอเงินให้ 150% ถึง 200% ในเรตของเด็กจบใหม่นั้นอาจจะถูกกว่าการเสนอเงินให้ 120% ของโปรแกรมเมอร์ที่มีประสบการณ์สูงๆ

อย่ามองข้ามเด็กจบใหม่นะครับ ทุกๆที่ จะมีหัวกระทิในชั้นปีสักสองสามคนที่เขียนโปรแกรมเก่งมาก บางคนก็รับงาน Project ตั้งแต่เรียน หรือบางคนเขียน Opensource เองเพื่อความสนุก  หลายๆคนเก่งกว่าคนที่มีประสบการณ์ด้วยซ้ำ

นอกจากเรื่องเงิน ยังมีปัจจัยอีกเยอะมากที่สามารถใช้ดึงคนได้

  • สร้างทีมที่เก่ง เพราะคนเก่งจะดึงดูดคนเก่งด้วยกัน
  • มีงานที่ท้าทาย น่าสนใจ หรือให้ใช้เทคโนโลยีใหม่ๆ
  • สวัสดิการต่างๆนอกเหนือจากที่ทุกที่เขาให้กัน ของเล็กๆอย่างเช่น ขนม เครื่องดื่ม โต้ะปิงปอง   หรือถ้ามีงบก็จัด XBox  Playstation + โปรเจ็คเตอร์  ค่าใช้จ่ายพวกนี้เหมือนการทำ Marketing อย่างหนึ่ง
  • ให้ใช้พื้นที่บริษัทในการจัดงาน MeetUp ต่างๆ หรือเป็นสปอนเซอร์สนับสนุนเพื่อสร้าง Branding
  • ให้ทีมเขียนบล็อคด้านการพัฒนาเจ๋งๆ
  • ให้เวลาเข้าออกงานเป็นแบบ Flexible
  • ให้ทำงานจากบ้านได้หนึ่งวันต่อสัปดาห์
  • Technical career path
  • ให้ทำงานแค่ 4 วันต่อสัปดาห์ (32 – 36 ช.ม.)

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


About Chadchapol V.

A software engineer who strayed to study management - I am passionate about software design, code quality, technical leadership, and Siberian Husky.

Check Also

Gartner ออก Magic Quadrant ด้าน SD-WAN ผล VMware, Silver Peak ครองผู้นำ

Gartner บริษัทวิจัยและที่ปรึกษาชื่อดังจากสหรัฐฯ ออกรายงาน Magic Quadrant ทางด้าน WAN Edge Infrastructure หรือที่รู้จักกันในนามโซลูชัน SD-WAN ฉบับล่าสุดประจำปี 2019 ผลปรากฏว่า VMware …

รายงานจาก Microsoft ชี้ตรวจพบ Malware, Ransomware และ Cryptominer ลดลงในปี 2019

ถ้าถามว่าใครจะมีข้อมูลของผู้ใช้งาน Windows มากที่สุด คงเถียงไม่ได้ว่าน่าจะเป็น Microsoft เนื่องจากเป็นเจ้าของ OS ซึ่งจากรายงานของปีนี้พบว่าภัยคุกคามประเภท Malware, Ransomware และ Cryptominer น้อยลงกว่ามีก่อน