วิธีรวมนักพัฒนาหน้าใหม่ในโครงการของคุณอย่างไร


9

เรากำลังพิจารณาการสอนพนักงานบางคนที่มีประสบการณ์การเขียนโปรแกรมระดับศูนย์หรืองานอดิเรกทั่วไปเพื่อลดภาระงานให้กับฉัน

เราใช้ Python / Django ซึ่งมีเอกสารที่เป็นมิตรรอบตัวและง่ายต่อการเรียนรู้

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

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

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

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

มันเป็นมาตรฐานในการสอนคนที่มีการเขียนโปรแกรมระดับทั่วไป / งานอดิเรก? "การเลื่อนตำแหน่ง" ใน บริษัท ซอฟต์แวร์ทำงานอย่างไรกับโปรแกรมเมอร์ระดับต้น? พวกเขาเริ่มทำงานกับรหัสหลักเมื่อใด

ฉันกำลังพยายามตัดสินใจว่าจะก่อให้เกิดความเสียหายมากกว่าความช่วยเหลือหรือไม่และมีวิธีที่เราสามารถใช้ความช่วยเหลือโดยไม่เสี่ยงรหัสไซต์หลัก (สภาพแวดล้อมที่แยกได้หรือไม่)


3
"การเขียนโปรแกรมระดับทั่วไป / งานอดิเรก" แตกต่างจาก "โปรแกรมเมอร์ระดับต้น" ในใจของฉัน เสียงก่อนหน้านี้เหมือนใครบางคนที่เล่นกับเชลล์ / สคริปต์สคริปท์ในช่วงสัปดาห์เพื่อปรับแต่งระบบของพวกเขา เสียงหลังเหมือนคนที่เพิ่งจบระดับ CS การจัดการสองประเภทนี้จะแตกต่างกันมาก เพียงแค่พูดใน '...
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner ขอบคุณ! ฉันไม่คุ้นเคยกับคำศัพท์ งานอดิเรกที่ฉันหมายถึงมีการสอนภาษาการเขียนโปรแกรมด้วยตนเองสร้างโปรแกรมหนึ่งหรือสองเว็บไซต์ .. ระดับจูเนียร์ฉันคิดว่าเป็นคนที่มีความรู้เกี่ยวกับการเขียนโปรแกรมเพียงพอที่จะว่าจ้าง บริษัท ซอฟต์แวร์ แต่ตอนนี้มันเกิดขึ้นกับฉันแล้ว สองคนนี้อาจจะค่อนข้างคล้ายกัน (ในคำจำกัดความของฉัน)?
Yuji Tomita

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

@ c69 ขอบคุณ! คำถามของฉันคือการทำให้หน้าใหม่ง่ายขึ้นใน codebase ของเราอย่างไร เป้าหมายไม่ใช่เพื่อปิดช่องโหว่เหล่านั้นและทำภารกิจทางโลก มันอันตรายที่จะให้ใครบางคนเข้าถึง codebase ของเราและให้พวกเขาสร้างโครงการ django / programming ครั้งแรกของพวกเขาในฐานะที่เป็นส่วนหนึ่งของระบบของเรา (หรือนี่คือสิ่งที่คุณหมายถึงหรือไม่ลองมาดูกัน) PS: บันทึกอย่างถูกต้องเกี่ยวกับสัตว์แพทย์งานอดิเรก
Yuji Tomita

คำตอบ:


5

หากคุณมอบหมายหน้าใหม่ให้กับบทบาทที่ไม่มีประสิทธิภาพเขา / เธอจะไม่เรียนรู้อะไรมากมายและแน่นอนว่าพวกเขาจะไม่เป็นประโยชน์กับคุณมากนัก

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

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

จุดที่ฉันพยายามทำคือไม่เป็นอย่างนั้น ไม่เพียง แต่จะทำให้นักเล่นหน้าใหม่มีความสุขและทำลายขวัญกำลังใจของพวกเขาคุณจะเผาเทียนทั้งสองด้านจนหมดกังวลเกี่ยวกับงานของพวกเขา

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

ฉันคิดว่าคุณจะประหลาดใจว่าความสามารถบางอย่างของพวกเขาเป็นอย่างไร


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

ขอบคุณสำหรับข้อมูลของคุณ - มันชื่นชมอย่างมาก เราต้องเริ่มต้นที่ไหนสักแห่งตั้งแต่เรากำลังพิจารณาคนที่ไม่มีประสบการณ์อย่างแท้จริง รู้เบื้องต้นเกี่ยวกับหลาม 101, กวดวิชา django, สคริปต์ทุบตี, วิธีการใช้การควบคุมเวอร์ชัน ฯลฯ ฉันจะฟังคำเตือนของคุณเกี่ยวกับการไม่ใช้ไมโคร และใช่! ฉันเชื่อว่าคนของเรามีความสามารถค่อนข้าง
Yuji Tomita

5

ฉันเคยทำงานที่ร้านขายซอฟต์แวร์ที่ซึ่งเรากำลังเขียนโปรเจคต์ขนาดใหญ่

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

ความผิดพลาดอย่างหนึ่งที่ฉันเห็นในร้านอื่น: สมมติว่า "แก่น" นั้นยากและ "ui" นั้นง่าย หน้าใหม่มีเวลาง่ายขึ้นในแกนกลางและทำให้รหัสส่วนหน้าของ UI ยุ่งเหยิง

โชคดี!


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

1
@isgab - การออกแบบส่วนต่อประสานกับผู้ใช้ที่มีประสิทธิภาพนั้นทำได้ยากแม้จะมีประสบการณ์ 30 ปี ฉันหมายถึงดูที่ Microsoft และ Apple พวกเขาทั้งคู่มีแนวคิดที่แตกต่างกันเกี่ยวกับวิธีการทำงานของส่วนต่อประสานผู้ใช้
Ramhound

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

2

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

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

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


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

ตัวเลือกอื่น ๆ จะ: ให้พวกเขามีคุณสมบัติ (ดี) ใช้งานเพื่อให้พวกเขาสามารถเปรียบเทียบผลลัพธ์
Etsitpab Nioliv

1

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

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

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


ฉันพูดถึงเรากำลังพูดถึงคนที่มีประสบการณ์ก่อนหน้าเป็นศูนย์ (หรือจำนวนเล็กน้อย) ดังนั้นเราจึงไม่ได้พูดถึงเกรดการจ่ายที่ต้องจ้างโปรแกรมเมอร์มืออาชีพ
Yuji Tomita

อาและ บริษัท ของเราเป็นเหมือนครอบครัว: เราชอบทำทุกอย่างด้วยตัวเองและให้คนทำงานในตำแหน่ง ฉันสงสัยเป็นหลักว่าจะจัดโครงสร้างกระบวนการทำงานของมือใหม่ให้เป็นของฉันได้อย่างไร
Yuji Tomita

0

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

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