นักพัฒนารุ่นใหม่ห้าคนและงานที่ซับซ้อนมากมาย ตอนนี้คืออะไร


10

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

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

แล้วตอนนี้เป็นอย่างไร ฉันควรทำอย่างไรเพื่อใช้งานและเวลาอย่างมีประสิทธิภาพ


1
มีผู้ชมทั้งหมด 5 คนที่ติดโปรเจ็กต์ของคุณ? คุณเป็นซีเนียร์คนเดียวที่ดูแลพวกเขาหรือไม่?
Tyanna

@Tyanna: ใช่ฉันเป็นรุ่นพี่เพียงคนเดียวในโครงการนี้ ผู้อาวุโสคนอื่นถูกย้ายไปที่โครงการอื่นเมื่อไม่นานมานี้
mxe

2
สิ่งแรกที่ต้องทำคืออธิบายให้ผู้บริหารทราบว่าคุณจะมีประสิทธิผลน้อยลงเล็กน้อยเมื่อคุณเพิ่มจำนวนมือใหม่
jk

ในฐานะบัณฑิตที่เพิ่งทำไปฉันรู้สึกประหลาดใจมากที่มีโปรแกรมออกมาซึ่งไม่ครอบคลุมการทำงานพร้อมกันหรือการทำงาน
แดเนียลโจเซฟ

+1 สิ่งเดียวที่ฉันเสียใจคือฉันไม่สามารถโหวตให้คุณได้มากกว่านี้
Shivan Dragon

คำตอบ:


2

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

การให้คำปรึกษาเป็นการใช้เวลาอย่างมีประสิทธิภาพที่สุดในขณะนี้ไม่ใช่การเข้ารหัส

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

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

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

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

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

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


20

จับคู่การเขียนโปรแกรมฟังดูเหมือนเป็นไปได้ที่ดีที่นี่

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

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

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

ฉันได้รับการบำรุงรักษาตั้งแต่ส่วนฐานของโค้ดนั้นมาตั้งแต่ฉันเป็นคนเดียวที่เข้าใจการทำงานของมันอีกต่อไป


+1 ปัญหาเพียงอย่างเดียวอาจแบ่งได้ 5 คนเป็นคู่ที่ 2 ;-)
Doc Brown

@DocBrown ดีนักพัฒนาที่ไม่มีประสบการณ์ 5 คนและนักพัฒนาที่มีประสบการณ์ 1 คนหมายความว่าคุณสามารถสร้างกลุ่มที่ 3 ได้ 2 กลุ่ม (ดูหัวข้อย่อยหลักที่สอง) มันอาจกลายเป็นแบบฝึกหัดเพิ่มเติมเกี่ยวกับประเภทของรหัส (UI, ตรรกะทางธุรกิจและอื่น ๆ ) ไปที่ไหน
Izkata

7

สอนพวกเขา มอบหมายงานที่พวกเขาสามารถแก้ไขได้อย่างง่ายดาย

ปัญหาก็คือแรงงานดังกล่าวไม่เก่งพอที่จะทำงานได้อย่างมีประสิทธิภาพมาก ด้วยเหตุนี้คุณสามารถ 1) ลดภาระงาน 2) พยายามเพิ่มทักษะของพนักงาน

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

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


3

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

แก้ไข: อาจเหมาะสมที่จะพูดถึงกฎหมายของ Brookในสถานการณ์นี้


2

บางทีคุณอาจใช้เวลาสร้างสภาพแวดล้อม sandbox ที่คุณสามารถใช้เพื่อจัดการกับปัญหาที่ยากลำบากโดยไม่ทำอันตราย ให้พวกเขาทดสอบวิธีแก้ปัญหาอย่างละเอียดเท่าที่จะทำได้ ใส่มากกว่า 1 ในปัญหาเดียวกัน

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

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


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