คนมีฝีมือ

posted on 10 Feb 2008 01:18 by wonam  in softdev
มาร์ติน ฟาวเลอร์ ได้ตั้งสมมติฐานชื่อ "คนมีฝีมือถูกกว่า" (Cheaper Talent Hypothesis) เกี่ยวกับว่าค่าใช้จ่ายในการจ้างคนเก่งโดยรวมจะถูกกว่า เขาพูดถึงเรื่องดังกล่าวในบริบทของการพัฒนาซอฟต์แวร์ (และการให้คำปรึกษา --- ฟาวเลอร์ทำงานอยู่ที่บริษัท ThoughtWorks บริษัทที่ปรึกษาด้านการพัฒนาซอฟต์แวร์ที่มีชื่อเสียงบริษัทหนึ่ง)
นอกเรื่อง: จริง ๆ แล้ว เราสามารถเอาการวิเคราะห์คร่าว ๆ นี้ไปใช้ในบริบทอื่น ๆ นอกเหนือจากการพัฒนาซอฟต์แวร์ได้ไม่ยากนัก ลองพิจารณาถึงทีมงานต่าง ๆ หรือจะมองไกลไปถึงคณะรัฐมนตรีก็ได้
หมายเหตุ: จริง ๆ Talent แปลตรง ๆ ได้ว่าคนที่มีพรสวรรค์ แต่มันดูเหมือนจะให้ความสำคัญกับสิ่งที่ควบคุมไม่ได้ไปสักนิด จริง ๆ อาจใช้คำว่าเจ๋งก็ได้ แต่ผมเลือกใช้คำว่ามีฝีมือ จริง ๆ แล้วอาจได้ความหมายไม่ตรงสักเท่าใด
โดยเขาให้เหตุผลรองรับสมมติฐานคร่าว ๆ ดังนี้ ขั้นแรก, เป็นที่ยอมรับว่าคนที่มีฝีมือย่อมทำงานได้มีประสิทธิผลมากกว่าคนทั่วไป ดังนั้น ถ้าใครสามารถจ้างคนที่มีฝีมือ 2 เท่าของคนทั่วไป ได้ในราคาไม่ถึง 2 เท่า ผลก็คือจะประหยัดกว่า

อย่างไรก็ตาม, ฟาวเลอร์ยังเล่นกับแนวคิดจาก "The Mythical Man-Month" ด้วยการพิจารณากรณีที่มีการทำงานเป็นทีม โดยทั่วไปประสิทธิภาพโดยเฉลี่ยต่อคนของการทำงานเป็นทีมจะลดลงเมื่อมีการเพิ่มจำนวนสมาชิกขึ้น เพราะว่ามีค่าใช้จ่ายเกี่ยวกับการสื่อสารที่เพิ่มขึ้นมากกว่าอัตราส่วนของพลังที่เพิ่มขึ้น ถ้าใช้คนมีฝีมือปกติทำงาน อาจต้องเพิ่มจำนวนคนเป็นสองเท่า เมื่อเทียบกับทีมที่มีคนมีฝีมือ แต่เมื่อเพิ่มจำนวนคนแล้วกลับทำให้ overhead เพิ่มขึ้นอีกด้วย ทำให้ประสิทธิภาพของทีมขนาดใหญ่ลดลงไปอีก

อีกประเด็นที่ฟาวเลอร์พูดเกี่ยวกับความถูกกว่าก็คือ การใช้คนที่มีฝีมือทำให้งานเสร็จเร็วขึ้น มูลค่าของงานที่มีก็เพิ่มขึ้นด้วย

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

ผมเองอ่านแล้วคล้อยตามไปไม่น้อยเหมือนกัน

แต่จริงหรือที่คนมีฝีมือจะไม่มี overhead อื่น ๆ ที่ฟาวเลอร์ไม่ได้เขียนถึง แน่นอน การจัดการ/ดูแล คนมีฝีมือนั้นยาก -- และท้าทาย (เขาพูดถึงเรื่องนี้นิดหน่อยตอนท้าย แต่ไม่ได้นำมาพิจารณาตอนคิดว่าถูกหรือแพง) ยิ่งไปกว่านั้นคนมีฝีมือ มักไม่ค่อยอยากทำอะไรที่ไม่อยากทำ

แล้วมีประเด็นอื่น ๆ ที่พอจะนึกออกอีกหรือเปล่าครับ?

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet

เคยคุยกับคนรู้จักที่ไปตั้งบริษัทฯเองและรับงาน subcontract
ถามเขาว่า หาคนเก่งได้อย่างไร
เขานิ่งไปสักครู่แล้วก็ตอบว่า 'ที่บริษัทไม่ต้องการคนเก่ง' ...
context ของเรื่องข้างบน ก็คือ
1.เจ้าตัวไม่ได้เก่ง technic
2.งาน sub contract เป็นสายงานของพวก oracle ซึ่งงานส่วนใหญ่จะใช้ tools พวก 4gl (ในสมัยนั้น)

สิ่งที่ผมอยากรู้ ก็คือ ปัจจุบันมุมมองต่อเรื่องนี้ในภาพรวมๆของเมืองไทยนี่เป็นอย่างไร, ยังคงมีมุมมองในลักษณะงานก่อสร้าง(ที่มอง programmer เทียบเท่ากับ คนงานก่อสร้าง) หรือยังมีมุมมองในแง่ factory ที่ programmer เป็นคนงานในสายการผลิต

#1 By pphetra (58.136.69.211) on 2008-02-10 10:57

บริบทอื่นที่เอาไปใช้ได้ น่าจะเป็นงานที่ parallel ยากๆหน่อย แล้วก็ไม่ต้องรอมาก. แบบ point-of-sale เอาคนเจ๋งเกินไปไปนั่งก็อาจจะไม่ค่อยอะไรเท่าไหร่?

การจัดการ/ดูแลคนมีฝีมือยาก ... แต่อาจจะไม่ได้เพิ่มค่าใช้จ่ายมาก? อาจจะเปิดโอกาสให้ทำงานที่ไม่เกี่ยวกับงานหลักได้ มาทำงานไม่ตรงเวลาได้ ... แต่ว่าไม่ต้องเพิ่มเงินเดือน หรืออาจจะลงก็ได้ ก็อาจจะมีคนมาทำงานให้อยู่ดี?

#2 By veer on 2008-02-10 11:17

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

นอกจากนั้นผมว่าความมีฝีมือของคนมันขึ้นอยู่กับงานที่ทำด้วย ถ้าจับคนมีฝีมือในสาขาหนึ่งมาทำงานในอีกสาขาหนึ่งที่ไม่ถนัด ก็คงเรียกไม่ได้ว่ามีฝีมือ

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

การหาผู้บริหารที่มีฝีมือพอที่จะจัดการนั้นหายากกว่าหาตัวพนักงานเองเสียอีก
และการจ้างงานผู้บริหารเจ๋งๆนั้นเป็นไปได้ยากกว่าการจ้างงานพนักงานเจ๋งๆเยอะเลย

#3 By ABZee (134.91.4.51) on 2008-02-10 18:45

ชักออกแนวงูกินหางนะครับ

เท่าที่คุยหลายๆ ที่ยังรู้สึกว่ามีภาพที่มองโปรแกรมเมอร์
เป็นแรงงานก่อสร้างอยู่เหมือนกัน
ผมเองเวลารับคนก็พยายามหา "คนมีฝีมือ" แต่ก็ไปตกที่นั่งลำบาก
ตอนส่งให้ผู้มีอำนาจตัดสินใจอยู่ดี
เอ..หรือเรายังทำความเข้าใจกับผู้บริหารระดับสูงไม่ดีพอ

#4 By dog mulder on 2008-02-10 23:53

แล้วถ้าคนมีฝีมือ แต่ไปอยู่ในที่ๆ คนไม่มีฝีมือ
คนมีฝีมืออาจจะเหนื่อยและท้อ จนต้องไปอยู่ในที่ๆคนมีฝีมือเค้าอยู่กันก็ได้
จริงมั้ยคะ?

ป.ล. ไม่รู้เกี่ยวกับบลอคเรื่องนี้หรือเปล่า
แต่ตอนนี้ เหนื่อยมาก angry smile
น่าให้เด็กคอมหลายคนได้อ่านจริงๆนะ

#6 By all4teen on 2008-02-16 02:40

แน่นอนว่าฟาวเลอร์เขียนดังกล่าว โดยผ่านทางมุมมองของคนที่ทำงานที่ ThoughtWorks ที่เขาเขียนเองว่าดูจะคิดค่าที่ปรึกษา "แพงกว่า" <-- ตรงนี้อ่านไม่เข้าใจครับ, พิมพ์ผิดตกหล่นตรงไหนรึเปล่าครับ?

#7 By อานนท์ (193.200.150.167) on 2008-09-10 12:43

``แล้วมีประเด็นอื่น ๆ ที่พอจะนึกออกอีกหรือเปล่าครับ?''

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

#8 By ไม่เปิดเผยชื่อ (85.195.123.25) on 2008-09-10 13:03

การจัดการ/ดูแลคนมีฝีมือยาก ... แต่อาจจะไม่ได้เพิ่มค่าใช้จ่ายมาก? <-- แทบทุกอย่าง จะมีค่าใช้จ่ายหมด.

มาทำงานไม่ตรงเวลาได้ ... แต่ว่าไม่ต้องเพิ่มเงินเดือน หรืออาจจะลงก็ได้ ก็อาจจะมีคนมาทำงานให้อยู่ดี? <-- อะไร "อาจจะลง"?

#9 By อานนท์ (85.195.123.25) on 2008-09-10 13:11

นึกถึง parallel processor นะครับ.
* มีหลายๆ processor ก็มี overhead ในการสื่อสาร
* แต่ถ้ารวมหลายๆ core ไว้ใน chip เดียว ก็จะสื่อสารเร็วกว่า?
* คนมีฝีมือคนเดียวก็คือ มีหลายๆ core ใน chip เดียว, มันก็สื่อสารกันเองข้างในได้เร็วกว่าออกมาสื่อสารข้างนอก.

#10 By อานนท์ (85.195.119.14) on 2008-09-10 13:17

ก็ต้องปรับให้สมดุเกิดในระบบหละครับ

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

#11 By xinnix on 2008-10-07 01:25

คนที่มีฝีมือ แต่ทำงานไม่ได้ เพราะไปอยู่ในกลุ่มคนไร้ฝีมือที่ไม่รู้ว่าตัวเองไร้ฝีมือ.


เหมือนทหารแนวหน้า-มีอำนาจในการฆ่า แต่ไม่มีอำนาจในการเจรจา(Black Hawk Down)

#12 By devidedByZero on 2009-07-01 16:09

ผมว่า การพัฒณาซอฟท์มันเป็นงานวิศวกรรมนะครับ
เพราะว่า(ประกอบไปด้วย)ขั้นตอน คือ

1. รับปัญหา รับทราบว่ามีปัญหา เข้าใจปัญหา
2. หาหนทางในการแก้
3. พิสูจน์ว่าใช่ หรือไม่
4. ทำออกมา
5. สรุปรวม เอาไว้เป็นประสบการณ์


ทั้งห้าข้อ ต้องอาศัยการ วัด/วิเคราะห์/สังเกต/สังเคราะห์
และ ทั้งห้าข้อนี้ มันแทรกอยู่ใน ทุกเฟสของการทำ

ผมมองว่า ที่ครบองค์ประกอบห้าข้อดังกล่าว จัดได้ว่าเป็นกระบวนการทางวิศวกรรม เสมอ แต่ถ้าขาดข้อใดใด ไป ก็จะนับไม่ได้เลย
จริง ๆ แล้วน่าจะคล้อยไปทาง คำว่า กระบวนการวิทยาศาสตร์ แต่ปัญหาของกระบวนการทางวิทยาศาสตร์นั้นมันขาด ข้อ 4 ได้ (เช่น การเหมาเอาว่า การทำอนุกรมวิธาน การศึกษาพฤติกรรม การตรวจโรค เป็นกระบวนการทางวิทยาศาสตร์ สังเกตว่า เราไม่ต้อง implement แค่ทำให้วิธีการเป็นที่พอฟังว่าสมเหตุผลแล้วก็หยุดได้ แต่งารวิศวกรรม ไม่ได้)


ถ้าจะนับเอาตามความหมายของ CockBun ผมว่า เค้าแยกเรื่อง กระบวนการทำงาน ออกจากการบริหารงาน มากกว่านะครับ เถ้าแก่กับ นายช่าง เกมที่ทั้งสองฝ่ายต้องเล่นก็คือ การต่อรองหาจุดสมดุล นายช่างอยากทำงานให้สำเร็จ เถ้าแก่ก็อยากให้สำเร็จ แต่ถ้าเถ้าแก่ไม่คุม ก็จะเสี่ยงต่อการขาดทุน ขณะนายช่าง ก็ต้องยกเหตุผลออกมาแย้งให้ได้ว่า ทำไมต้อง n วัน m คน x บาทต่อวัน

#13 By devidedByZero on 2009-07-02 19:22