คนมีฝีมือ

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

Comment:

Tweet

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

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


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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

น่าให้เด็กคอมหลายคนได้อ่านจริงๆนะ

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

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

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

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

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

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

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

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

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

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

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

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

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

เคยคุยกับคนรู้จักที่ไปตั้งบริษัทฯเองและรับงาน 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