ใครควรฝึกอบรมโปรแกรมเมอร์ใหม่ โปรแกรมเมอร์รุ่นพี่หรือรุ่นพี่? [ปิด]


15

ในทีมของฉันเรามักจะต้องการโปรแกรมเมอร์อาวุโสที่สุดในการฝึกอบรม / ให้คำปรึกษาแก่โปรแกรมเมอร์รุ่นใหม่ อย่างไรก็ตามโปรแกรมเมอร์อาวุโสคนเดียวกันนี้เป็นคนที่ทำงานจริงและสำคัญจำนวนมาก

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

เจ้านายของฉันล้มเหลวในการชักชวนเนื่องจากนี่เป็นวิธีการทำงานกับทีมนี้ตั้งแต่เริ่มต้นเวลา สมมติว่ามีการตัดสินใจว่าการฝึกอบรม / การให้คำปรึกษาบางอย่างนั้นเป็นสิ่งจำเป็นทุกคนสามารถให้ข้อโต้แย้งที่ดีกว่าหรือบอกฉันได้ว่าทำไมฉันถึงทำผิด ทีมของคุณทำอะไร

** เราทุกคนเห็นพ้องต้องกันว่ารุ่นพี่ไม่จำเป็นต้องหมายถึงความสามารถดังนั้นเพียงแค่สมมติโดย "โปรแกรมเมอร์อาวุโส" ฉันหมายถึง "โปรแกรมเมอร์ยอดนิยม"


1
ฉันหวังว่าฉันจะได้ถามคำถามนี้เป็น "โปรแกรมเมอร์ยอดนิยม vs กลางถึงระดับกลางโปรแกรมเมอร์" บางคำตอบที่ดีแม้ว่า
smp7d

คุณสามารถแก้ไขมันคุณรู้ว่า ...
ChrisF

ฮ่า ๆ คงไม่ยุติธรรมกับคนที่ตอบแล้ว
smp7d

ฉันคิดว่าคุณกำลังพูดถึงชื่อ ...
ChrisF

ถ้าพวกเขาทำอย่างนั้นมันจะต้องเป็นวิธีที่ถูกต้องในการทำสิ่งต่าง ๆ
SoylentGray

คำตอบ:


11

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

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

ในมุมมองของฉันการเป็นรุ่นพี่ไม่ได้เป็นเพียงแค่ความเชี่ยวชาญในโดเมนชื่อเรื่องในส่วนท้ายอีเมลของคุณหรือระยะเวลาที่คุณทำงาน นอกจากนี้ยังเป็นแนวคิดที่จะช่วยเหลือและแนะนำผู้พัฒนารุ่นน้อง และวิธีใดที่จะดีกว่าที่จะได้นักพัฒนาอาวุโสในทีมมากกว่าปล่อยให้ผู้ให้คำปรึกษาอาวุโส


2
ฟังดูคล้ายกันมากกับสถานการณ์ปัจจุบันของฉัน
smp7d

21

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


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

7

ฉันขอย้ำบางสิ่งที่ได้พูดไปแล้ว แต่ฉันมีสองมุมมอง

ธุรกิจ: ในฐานะธุรกิจคุณต้องการผลิตภาพและลดความเสี่ยง แม้ว่านักพัฒนาซอฟต์แวร์อาวุโสจะทำงานเป็นกลุ่ม แต่คุณต้องการให้พวกเขาถ่ายทอดความรู้เกี่ยวกับระบบลงซึ่งช่วยลดความเสี่ยง ผลผลิตจะไม่ได้รับผลกระทบมากนักเพราะคุณต้องให้เวลาแก่ผู้อาวุโสเหล่านี้ในการทำสิ่งที่สำคัญน้อยลง (สอน devs รุ่นน้อง) นอกเหนือจากระบบพวกเขายังมีอีกหลายสาขาที่ผู้พัฒนาอุปกรณ์ยังไม่ทราบหรือเข้าใจ

ความนับถือ: จูเนียร์ที่รับนักพัฒนาใหม่ภายใต้ปีกของพวกเขาเป็นเหมือนคนตาบอดที่นำคนตาบอด จูเนียร์ยังไม่ได้ขึ้นอยู่กับความเร็วในการสอนคนอื่น นอกจากนี้มันอาจไม่ได้ผลเพราะความเคารพอาจไม่อยู่ที่นั่น การเคารพต่อนักพัฒนารุ่นเยาว์นั้นเป็นปัญหาเพราะชุดทักษะของคุณกับชุดทักษะของผู้เริ่มต้นอาจไม่ไกลนัก การจัดการปัญหาด้วยกันเป็นเรื่องที่ต่างออกไป ไม่มีคำถามของการเคารพในแง่ของ devs อาวุโสสอนผู้เริ่มต้นหรือแม้แต่รุ่นน้อง เราทุกคนรู้ว่าเมื่อขาดความเคารพในบุคคลสองคนหรือในทีมภัยพิบัติกำลังรอให้เกิดขึ้น ...


6

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

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


4

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

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

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

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


4

คำตอบง่ายๆ: บุคคลที่ทำหน้าที่ฝึกอบรมควรเป็นบุคคลที่ดีที่สุดในการฝึกอบรมและต้องการฝึกอบรมเช่นกัน

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

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

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

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


3

ใน บริษัท ส่วนใหญ่ที่ฉันเคยทำงานโปรแกรมเมอร์จูเนียร์เป็นคนที่มีประสบการณ์น้อยกว่า 3 ปี ในขณะที่ฉันจะมีความสุขในฐานะโปรแกรมเมอร์ที่มีประสบการณ์และมีประสบการณ์การให้คำปรึกษาเพื่อแนะนำโปรแกรมเมอร์ใหม่ให้กับโปรแกรมเมอร์รุ่นใหม่สำหรับการฝึกอบรมในหัวข้อเฉพาะฉันต้องการควบคุมต่อไปแทนที่จะมอบหมายความรับผิดชอบการให้คำปรึกษาทั้งหมดให้กับคนที่ยัง ตัวเอง


2

ฉันพบว่าสิ่งต่าง ๆ เช่นกฎเกณฑ์ทางธุรกิจและแนวทางการออกแบบเป็นสิ่งที่สำคัญที่สุดที่โปรแกรมเมอร์อาวุโสจะต้องสามารถส่งต่อไปยังนักพัฒนารุ่นเยาว์หรือแม้แต่นักพัฒนาอาวุโส / ผู้เชี่ยวชาญหรือผู้รับเหมาที่ได้รับการว่าจ้างใหม่ ปัญหามักเกิดขึ้นเมื่อมีการรวบรวมข้อมูลสำคัญหรือไม่เคยอธิบาย บางทีนี่อาจเป็นสิ่งที่ผู้จัดการของคุณกังวลมากกว่าความรู้ด้านการเขียนโปรแกรมจริง

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


1

ฉันจะเลือกพี่เลี้ยงเป็นขั้นตอนหนึ่งหรือสองด้านล่างโปรแกรมเมอร์ด้านบนในองค์กร

ในขณะที่คุณได้ให้เหตุผลที่ดีกับสิ่งนั้นฉันจะชี้ให้เห็นอีกอย่างหนึ่งที่ฉันคิดว่าสำคัญโดยเฉพาะ: การสอนเป็นวิธีการเรียนรู้ที่ดีที่สุดโดยเฉพาะการเรียนรู้มากพอที่จะทำให้ขั้นตอนสุดท้ายเหล่านั้นดีขึ้นจริง ๆ ที่ดี ส่วนหนึ่งที่สำคัญอย่างยิ่งของการเรียนรู้คือไม่เพียง แต่ทำสิ่งที่ดี แต่ยังทำงานได้ดีในการสื่อสารสิ่งที่คุณกำลังทำและทำไม ฉันมักจะพบว่าการอธิบายได้ดีว่าทำไมฉันถึงทำอะไรบางอย่างฉันต้องนั่งลงและคิดให้ดีพอที่ 1) ความเข้าใจของฉันดีขึ้นมากและ 2) ฉัน มักจะประเมินสถานการณ์ให้ดีขึ้นเพื่อปรับปรุงงานของฉัน

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


0

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.