จาก ข้อความของ @sugree ใน twitter
my profession is coding. don’t hire me to be manager. it’s useless.
ทำให้นึกถึงคำพูดของอาจารย์ชูศักดิ์ วรพิทักษ์ประโยคนึงมากๆ เลย ว่า “บ้านเรา” ไม่ค่อยให้ความสำคัญกับการเติบโตในลักษณะทำนองนี้เท่าไหร่ (คือการเติบโตโดยใช้ technical skill เป็นไปได้ยาก) ถ้าอยากจะโตต้องขยับขยายไปเป็นผู้จัดการ หรือ Manager เท่านั้น ทำให้หลายๆ คนต้องกระเสือกกระสนอัพเกรดตัวเองไปเป็นระดับผู้จัดการ
และท่านก็ต่ออีกว่า
เราก็เอาโปรแกรมเมอร์ที่เก่งๆ (มักจะเป็นคนที่เก่งที่สุด) ไปโปรโมทเป็นผู้จัดการ ส่วนมากผลที่ได้ก็คือ เสียโปรแกรมเมอร์เก่งๆ ไปคนนึง แล้วก็ได้ผู้จัดการห่วยๆ มาคนนึงแทน
KID In Digital ก็เรียนรู้เรื่องนี้แบบ Hard-way ล่ะนะ แต่ตอนนี้น้ององ(คช) คนที่ลองทำงานเป็น Project manager อยู่ครึ่งปี ก็อยากจะกลับมาเขียน code แล้ว แต่ใครจะมาเป็น Project manager แทนล่ะ? เพราะว่าผมเองก็อยากจะกลับไปเขียน code เหมือนกัน……
จะว่าไป ผมก็ไม่ได้้เป็น Project manager ที่ดีเท่าไหร่หรอกนะ และไม่เคยคิดว่าตัวเองเป็นได้ดีด้วย ไม่ได้คิดว่าน้ององเป็นได้ดีเหมือนกัน เพียงแต่ว่าคนมันมีกันแค่นี้ ก็เลยต้องทดลองกันไปเรื่อยๆ ตราบใดก็ตามที่ยังทดลองกันได้อยู่
บางทีถ้าไม่ลองจับให้มีบทบาทบางอย่าง เราจะรู้ได้ยังไงว่าใครเหมาะ/ไม่เหมาะกับอะไรบ้าง ก็ต้องให้โอกาสกันเรียนรู้บ้าง
อย่าไปคิดว่าทุกอย่างมันจะต้องถูกต้อง เหมาะสม ไร้ที่ติ ไร้ข้อผิดพลาด ตั้งแต่แรก ตั้งแต่ต้นเลย ป่วยการ
ผมเห็นด้วยกับการให้โอกาสคน เพราะคิดว่าอุปสรรคสำคัญในการพัฒนาวงการศึกษาในบ้านเราคือตรงนี้
ถ้าเราไม่ให้โอกาสเค้า ก็จะไม่รู้ว่าเค้าทำได้หรือไม่
ถ้าเค้าทำได้ จะเป็นเรื่องที่ดี เพราะเค้าสามารถที่จะเข้าใจเรื่อง coding และสามารถที่จะคุยกับคนทำงานรู้เรื่อง
พวกนี้ไม่ใช่แค่เรื่อง skill แต่เป็นทัศนะคติในการมองภาพรวมของงานทั้งหมดให้ออกมาเป็นภาพใหญ่
ผมเห็นด้วยกับคุณนะ ที่ต้องการให้โอกาสทีมงาน ให้ได้ลองทำดู เพราะไม่อย่างนั้น ก็คงต้องหาคนที่เป็น manager แท้ ๆ มาคุมตรงนี้
ซึ่งก็อีก อาจจะเป็นปัญหาในอนาคต ที่พวกเค้าจะคุยกับเรื่อง coding ไม่รู้เรื่อง =)
project manager ในตำนานส่วนมากจะเขียนโปรแกรมไม่เก่ง
“เราก็เอาโปรแกรมเมอร์ที่เก่งๆ (มักจะเป็นคนที่เก่งที่สุด) ไปโปรโมทเป็นผู้จัดการ ส่วนมากผลที่ได้ก็คือ เสียโปรแกรมเมอร์เก่งๆ ไปคนนึง แล้วก็ได้ผู้จัดการห่วยๆ มาคนนึงแทน”
ผมก็เคยได้ยินคำนี้จากคาบ SA ของอาจารย์ปานใจครับ รู้ซึ้งเลย
เห็นด้วยครับ
แต่ Project Manager ก็ควรที่จะรู้การในเชิง Technical บ้างนะครับ เดี๋ยว Dev ไม่เข้าใจตรงไหน ได้ Comment ได้
ผมไม่ค่อยชอบคำพูดที่ว่า “เสียโปรแกรมเมอร์เก่งๆ ไปคนนึง แล้วก็ได้ผู้จัดการห่วยๆ มาคนนึงแทน” เท่าไหร่เลย มันค่อนข้างจะ incomplete และ misleading อยู่บ้างพอสมควร
หนึ่งคือ มันไม่ใช่สมการที่ตายตัวแบบ 1+1=2 ที่ว่าโปรแกรมเมอร์เก่งๆจะต้องเป็นผู้จัดการห่วยๆ (หรือโปรแกรมเมอร์ห่วยๆจะเป็นผู้จัดการเก่งๆ) บางคนเชื่อในคำพูดประโยคนี้ และคิดไปว่าไม่ควรเลื่อนตำแหน่งให้โปรแกรมเมอร์คนไหนเลยไปทางสายการจัดการ ทั้งๆที่ยังไม่ได้ดูเลยว่าโปรแกรมเมอร์คนนั้นมีความสามารถทางด้านการจัดการรึเปล่า ดูแค่คนนั้นคือโปรแกรมเมอร์ โปรแกรมเมอร์ไม่ควรทำงานสายการจัดการ (สุดท้ายแล้วก็ยังคิดว่าตัวเองฉลาด รู้จักเลือกคนที่เหมาะสมมาเป็นผู้จัดการอีกแน่ะ!) — ไม่ได้พาดพิงถึงใครคนใดคนหนึ่งนะครับ
สองคือ ความสามารถทางด้านการจัดการนั้นมันฝึกกันได้ ถึงมันจะไม่ใช่ภายในข้ามคืน แต่ถ้าบริษัทมีแผนอย่างเป็นระบบในการค่อยๆฝึกความเป็นผู้จัดการในตัวโปรแกรมเมอร์ทุกคนที่สนใจ (อย่างคุณสุกรีที่ดูแล้วเค้าไม่ได้สนใจเลย ก็ปล่อยให้เค้าทำงานด้านเทคนิคอย่างเต็มที่) ในเวลาปีสองปี ก็น่าจะได้เห็นว่าใครมีความสามารถ หรือใครที่เหมาะไม่เหมาะ (อย่างที่คุณ rawitat เล่าเรื่อง Project Manager ข้างบน) ผมว่าแบบนี้น่าจะดีกว่าเพราะ หนึ่ง การเลื่อนตำแหน่งคนจากภายในนี่มีข้อดีมากกว่าเอาคนจากภายนอกเข้ามา สอง มีความสามารถด้านการจัดการมันได้ประโยชน์หลายด้าน ทั้งด้านที่เกี่ยวกับงานหรือไม่เกี่ยวกับงานก็ตาม สาม ให้โอกาสทุกคนได้ทดลองทำในสิ่งที่ตัวเองวาดอนาคตเอาไว้ (เหมือนอย่างที่คุณ ikok ว่า) ผมเขียนได้อีกหลายอย่าง แต่สำคัญจริงๆก็มี 3 อย่างนี้
“คนโง่ที่เลื่อนตำแหน่งให้โปรแกรมเมอร์ ก็เป็นคนโง่คนเดียวกันกับคนที่ไม่เลื่อนตำแหน่งให้โปรแกรมเมอร์นั่นแหละ” :D
@panuta
เห็นด้วยนะ จริงๆ มันก็อยู่ในเรื่องของ all forms of generalization are incorrect, including this one น่ะแหละ
และผมไม่เคย claim ว่าโปรแกรมเมอร์เก่งๆ จะ “ต้อง” เป็นผู้จัดการห่วยๆ “เสมอไป”
จริงๆ คุณเข้าใจสิ่งที่ผมต้องการจะสื่อผิดมุมมองไปหน่อย ผมไม่ได้มองจากมุมมองของผู้บริหารเท่าไหร่
สิ่งที่ต้องการจะสื่อจริงๆ ก็คือ การเจริญเติบโตในสายเทคนิค มันจำกัดมาก ต้องไปอยู่ในสายการจัดการ สายบริหารกันหมด ดังนั้นถ้าเป็นโปรแกรมเมอร์เก่งๆ ก็จะตัน สุดท้ายก็จะต้องผันตัวเองไปเป็นผู้จัดการโครงการกันซะเป็นส่วนมากกว่า
ดังนั้นโปรแกรมเมอร์บางคน ที่เก่งแสนเก่ง แต่ว่าไม่มีโอกาสจะเติบโตในสายของเค้า ที่จะต้องกระเสือกกระสนไปเป็นผู้จัดการ ผู้บริหาร ทั้งๆ ที่ตัวเองไม่ชอบ ไม่สนใจเท่าไหร่ และทำได้ไม่ดีเท่าไหร่
“มันมีอยู่พอสมควร”
ทั้งนี้เพื่อความเจริญเติบโตทั้งในด้านการงานและการเงิน ดังนั้นเมื่อโปรแกรมเมอร์บางคนทำแบบนั้น (และมักจะเป็นไปให้กับองค์กรอื่น) … สิ่งที่ตามมาก็คือ เราก็เสียโปรแกรมเมอร์ไปคนนึง และได้ผู้จัดการมาคนหนึ่ง ซึ่งทำงานได้ไม่มีประสิทธิภาพเท่ากับตอนที่เค้าเป็นโปรแกรมเมอร์
“เรา” ในที่นี้มองในภาพรวมนะ เพราะว่าอาจจะเปลี่ยนงานเปลี่ยนองค์กรกันไปเลยก็ได้
เรื่องความสามารถทุกอย่างฝึกกันได้ถ้าสนใจ มีเวลามากพอ และมีกระบวนการที่เอื้ออำนวย อันนี้คิดว่าเป็นเรื่องทีทุกคนรู้ดีอยู่แล้ว และถ้าไม่ลองเอามาเป็น ก็คงไม่รู้หรอกว่าเป็นได้หรือไม่ได้
อีกอย่าง โดยส่วนตัวผมไม่คิดว่า ผู้จัดการโครงการจะเป็นตำแหน่งที่เหนือกว่าโปรแกรมเมอร์ ดังนั้นการเปลี่ยนตำแหน่งหรือลองให้โปรแกรมเมอร์ทำงานนี้ ไม่ใช่การเลื่อนตำแหน่งขึ้นลง (โปรโมท หรือ ดีโมท)
เห็นด้วยกับทุกคนที่บอกว่าจริงๆ ผู้จัดการควรมีความรู้ทางด้านเทคนิคบ้าง ดังนั้นผมก็เลยคิดว่าน่าจะลองให้โปรแกรมเมอร์น่ะแหละ ไปลองทำงานเป็นผู้จัดการโครงการ ซึ่งแน่นอนว่าโปรเจคแรกๆ จะมีปัญหาค่อนข้างเยอะมาก และตัวโปรแกรมเมอร์คนนั้นที่ไปเป็นผู้จัดการ สุดท้ายก็ไม่ชอบงานลักษณะนั้นในที่สุด
ก็เป็นเรื่องปกติ
ขออีกหน่อย ผมไม่ได้ claim และไม่เคย claim ว่า “ทุกองค์กรเป็นนี้เหมือนกันหมด” มันเป็นเพียงกระแสแนวคิดหลักกระแสหนึ่งเท่านั้น และไม่ได้คิดว่ามันเป็นกระแสคนหมู่มากหรือหมู่น้อย
อีกเรื่องหนึ่งก็คือ เรื่องของเวลาและการให้เวลา
การที่ผมให้เวลากับการเรียนรู้ มันไม่ได้แปลว่าทุกคนให้เวลากับการเรียนรู้ โปรแกรมเมอร์บางคนคาดหวังกับผู้จัดการโครงการมาก ว่าจะบริหารได้ดีไม่มีที่ติ ดังนั้นการผันเอาโปรแกรมเมอร์ไปทำหน้าที่บริหารโครงการ บางทีมันก็สร้างความไม่พอใจให้กับโปรแกรมเมอร์หลายคนในทีมงาน เพราะว่าพวกเค้าคาดหวังกับการบริหารที่ “ไม่มีอะไรผิดพลาด” ตั้งแต่แรกเลย
อันนี้ไม่ใช่ว่าไม่พยายามทำความเข้าใจนะ แต่ว่าเรื่องความรู้สึกของคน ต่อให้ทำความเข้าใจแค่ไหน มันบังคับกันไม่ได้ แล้วอีกอย่าง คนหลายคนมันก็มีลักษณะส่วนตัว คือมีปัญหาไม่คุยกัน เก็บความไม่พอใจกันไปแบบนั้น แล้วก็สุดท้ายก็ลงเอยด้วยการทำงานด้วยกันไม่ได้
ทั้งๆ ที่ควรจะเป็นช่วงระยะเวลาให้ผู้จัดการโครงการคนนั้นเรียนรู้การทำงานและกระบวนการทั้งหมดแท้ๆ
อ่อ ผมไม่ได้ claim ว่า “ทั้งหมด” อีกน่ะแหละ คนที่เข้าใจและให้โอกาส ให้เวลามันก็มีอยู่เยอะ
ขอโทษที่เข้าใจคลาดไปหน่อยนะครับ :)
พูดถึงเรื่องตำแหน่งสูงขึ้นไปทางสายเทคนิคนี่ ดูเหมือนจำกัดมากก็ไม่ใช่จำกัดน้อยก็ไม่เชิง ในความคิดผมนะ ถามว่ามีตัวเลือกให้เลือกเยอะมากไหม (รวมถึงการย้ายไปทำงานบริษัทอื่นด้วย) ก็ไม่ถึงกับเยอะมาก แต่ถ้าเทียบกับงานทางสายจัดการแล้ว ตัวเลือกผมว่ามันไม่ทิ้งห่างกันเท่าไหร่
ถัดจากโปรแกรมเมอร์ขึ้นไปก็น่าจะเป็นพวก designer/architect ซึ่งตำแหน่งนี้ก็เป็นได้ทั้งแบบเล็กๆ จนไปถึงใหญ่โต ขึ้นอยู่กับความซับซ้อนของงาน หรือบางคนจะแตกไปเป็น System Analyst/Business Analyst ก็ได้
ลองดูว่าสายจัดการจะเป็นอะไร เป็น Project Manager เป็น CIO/CTO … ผมนึกไม่ออกแล้ว
บางทีการที่พนักงานบางคนอยากขึ้นไปทางสายบริหารเนี่ย มันอาจจะเป็นเรื่องอื่นๆก็ได้ เช่น ฐานะทางสังคม ความมีหน้ามีตา ความมีอำนาจ ฯลฯ ซึ่งพนักงานคนนั้นมองเป็นสิ่งที่ต้องเพิ่มขึ้นจากการเลื่อนลำดับ ไม่ใช่เรื่องของความรับผิดชอบหรือแม้กระทั่งเงินเดือน เขาเลยมองว่าทางเลือกของเขามีจำกัด (เป็น Senior Software Architect มันเท่ห์น้อยกว่า ‘Whatever’ Manager เป็นไหนๆ)
แต่ในกรณีที่ต้องเปลี่ยนตำแหน่งเป็นสายการจัดการในบริษัทเดียวกัน เพราะว่าไม่มีตำแหน่งอื่นให้ทำนี่มันก็เป็นปัญหาของบริษัทนั้นๆ แต่ถ้ามองในองค์รวมของตลาดแรงงานทั้งหมดแล้ว ผมว่ามันโตขึ้นไปได้ (แต่ในไทยนี่ผมไม่แน่ใจนะ ทัศนคติของคนมันให้ความสำคัญกับตำแหน่งการจัดการมากกว่า)
ไม่แน่ใจว่าผมพูดเข้าประเด็นรึเปล่านะ ประเด็นมันกว้าง คุยให้ตรงเป้าลำบาก
เคยเข้ามาทำงานเป็น Project Manager แถมโดนควบคู่ ด้วย Web Programmer สุดท้าย เพราะประสบการณ์ไม่ถึง เป็นแค่ Sys. Admin ที่เป็นเบ๊ให้บริษัท เศร้าจริง
ผมเห็นด้วยครับว่า ไม่ทุกแห่ง ที่จะทำแบบนั้น
บางแห่งก็สนับสนุนและเคารพการตัดสินใจของตัว Programmer เองด้วย
เพราะบางที่เค้ามี Career Path เอาไว้รองรับเช่น Technical Specialist หรือ Technical Architecture อ่ะครับ