ต่อจากโพสที่แล้ว โพสนี้จะพูดถึงว่า Culture ของ Facebook แย่ยังไงถึงทำให้ตัดสินใจลาออก แต่ในทางตรงข้ามทำไมก็ยังเชื่อว่า Facebook ก็ยังจะสามารถจ้าง Engineer เก่งๆได้
หมายเหตุ: บางอันอาจจะเว่อร์ไปหน่อย และไม่จริงในหลายๆทีม แต่อันนี้รวบรวมจากที่ประสบพบเองและที่ฟังมา
สิ่งที่ไม่ชอบ:
1) การตัดสินว่าใครจะได้เลื่อนขั้น ใครจะโดนไล่ออก แทบจะวัดด้วยอย่างเดียวคือ impact
- ซึ่ง impact เนื่องจากมันเป็น OKR ก็คือต้องวัดได้ เพราะฉะนั้นคุณจะแบบไม่ช่วยใครอะไรทั้งสิ้นก็ได้ เขียน code ห่วยยังไงก็ได้ hacky ยังไงก็ได้ (ตราบใดที่ยังมีคนกด code review ผ่านให้) แต่ถ้าคุณทำสิ่งที่วัดได้นั้นให้มันดี improve metrics ได้ ด้วยวิธีใดๆก็ตาม คุณก็จะได้เลื่อนขั้น แต่ในทางตรงข้าม ถ้าคุณเขียน code ได้ดีแต่ไม่มี metrics รองรับ คุณก็จะไม่ได้ promote และอาจจะโดน PIP + ไล่ออกในไม่ช้า
- ได้ข่าวว่าบางคน manager บอกมาเลยว่า "ถ้าทีมอื่นให้ช่วยทำอะไร อย่าไปช่วยเค้า การช่วยทีมอื่นจะไม่ช่วยให้คุณได้เลื่อนขั้น"
2) ไม่มี ownership code ที่ชัดเจน
- ในหลายๆบริษัทเช่น Quora ทุกอย่างจะมี DRI หรือพูดง่ายๆคือเจ้าของ Code ที่คอยดูแล แต่ที่ Facebook แทบทุกอย่างอาจจะมีทีมที่ดูแล แต่ทีมก็อาจจะใหญ่มาก หรือหลายๆส่วนก็คือไม่มีเจ้าของเลย การที่มีเจ้าของร่วมเยอะๆและไม่มีคนต้องรับผิดชอบ ทำให้ทุกคนไม่มีใครแคร์ว่าของมันจะดีมั้ย ยิ่งคุณภาพของ code เป็นสิ่งที่วัดไม่ได้ง่ายๆ ยิ่งไม่มีคนสนใจ เพราะสนใจไปก็ไม่มี "impact" แม้ว่า Facebook แกนหนึ่งในการพิจารณาก็คือ engineering excellece แต่เอาเข้าจริง อะไรที่วัดไม่ได้ คนก็จะไม่สนใจ เพราะมันไม่มีผลอะไรกับชีวิต
3) ความคาดหวังว่า Senior Engineer จะต้อง lead project ทั้งในทาง technical และ non technical
- สิ่งที่สำคัญที่จะทำให้ได้เลื่อนขั้นโดยเฉพาะจาก Senior -> Staff++ ที่ Facebook คือคุณจะต้อง lead project ขนาดใหญ่ขึ้น scope กว้างขึ้น แต่ถ้าของมันก็มีอยู่เท่าเดิมจะเกิดอะไรขึ้น? สิ่งที่เกิดขึ้นก็คือทุกคน ตั้งตัวเองเป็นหัวหน้า คอยสั่ง คอยกดดันให้คนอื่นทำทุกสิ่งที่ตัวเองสัญญาไว้ใน OKR เพื่อที่ตัวเองจะได้ promote ไปเรื่อยๆ กลายเป็นว่าทุกคนอยากสั่งคนอื่น แต่ไม่มีใครอยากทำอะไร
- "เพราะการทำอะไรหนะ มันเป็นงาน E3-E4 แต่การสั่งชาวบ้านหนะมันเป็นงานของ E5+"
4) manager ไม่มีหน้าที่กันเราจากทีมอื่น
- ในที่อื่นๆที่เคยทำมาปกติถ้ามีคนมาสั่งเราในงานที่ไม่เกี่ยวข้อง manager มักจะช่วยปกป้องเรา หรือไปเคลียกับคนอื่นให้ แต่ที่ Facebook ที่พบมาคือ manager ไม่มีความเข้าใจด้าน technical และไม่มีความคาดหวังที่จะต้องเข้าใจด้วยซ้ำ (เป็น people management ล้วนๆ) เพราะฉะนั้นเค้าก็จะแบบเหมือนเป็นที่ปรึกษาชีวิตแบบได้แต่บอกแบบ "สู้ๆนะ" แต่ช่วยอะไรแทบไม่ได้ พอรวมกับข้อ (3) ก็ยิ่งแย่ไปกันใหญ่
5) code quality นรกมาก
- อาจจะไม่น่าเชื่อ แต่ส่วนตัวเชื่อว่าบริษัทอื่นๆแม้แต่บริษัทเล็กๆในไทยก็น่าจะ code quality ดีกว่าใน Facebook ซึ่งแย่เพราะไม่มีใครแคร์ ถ้าเปิด code Facebook ดูจะเห็นความก็อปแปะ ทุกอย่างเละแทะมาก
- "แต่จะสนใจไปทำไมหละ ตราบใดที่ยังมี impact เราก็ได้ promote ยิ่ง code ไม่มี ownership ด้วยก็ไม่ใช่หน้าที่เราในการไปทำให้มันดีขึ้น"
6) สิ่งที่เรียนรู้ไม่สามารถนำไปใช้ในงานต่อไปได้
- ข้อนี้จริงๆอาจจะเป็นบริษัทใหญ่ๆแทบทั้งหมด คือ tool/abstraction ต่างๆ ของ Facebook คือมีของตัวเองหมด เพราะฉะนั้นถ้าย้ายงานก็เหมือนที่เรียนรู้ไปแบบศูนย์เปล่า คือคนอาจจะบอกว่า concept ต่างๆมันก็เอาไปใช้ในงานต่อๆไปได้ แต่คือมันก็คงได้สักแบบ 20% อะไรงี้มั้ง ซึ่งแบบการเรียนรู้อะไรก็รู้สึกเสียเวลาเปล่ามากๆ
===
แล้วทำไมยังเชื่อว่า Facebook ก็ยังจะสามารถจ้าง Engineer เก่งๆได้
1) รวย
- ข้อนี้จริงๆสำคัญแทบจะที่สุดในโลกทุนนิยม Facebook จ่ายได้ไม่อั้น จ้างคนเก่งๆได้ไม่จำกัดมาทำงานโง่ขนาดไหนก็ได้ อยากได้อะไรก็เปย์ๆๆ แล้ว benefit perk อื่นๆก็สู้กับทุกคนได้หมดจริงๆ ไม่ใช่แค่เงินเดือน แต่ประกันสุขภาพ ออฟฟิศและอื่นๆ ก็สู้ได้จริงๆ
2) ชื่อเสียง
- เอาจริงๆใน FAANG Facebook ก็น่าจะเป็นอันที่ชื่อเสียงด้าน engineer ดูดีเป็นอันดับต้นๆ การมีชื่อ Facebook แปะก็มีคนสนใจมากมาย ไปทำอะไรต่อในอนาคตก็ง่ายจริงๆ
3) culture fit
- สิ่งที่เป็นข้อเสียที่ว่ามาทั้งหมด ความวุ่นวายแบบนี้ก็คงมีคนชอบแหละ ยิ่งคนที่อยู่ใน Facebook มาตั้งแต่จบใหม่ก็อาจจะไม่รู้สึกว่าที่ว่ามาเป็นปัญหาอะไรด้วยซ้ำ เผลอๆถือว่าเป็น feature ของบริษัท เพราะถ้าแบบ exploit ตรงนี้ได้ก็เจริญก้าวหน้ารัวๆได้เลย E6-E7 ไม่ไกลเกินเอื้อม แต่ส่วนตัวอยู่แบบนี้ไม่ได้จริงๆ