ฉันควรทำอย่างไร คุณจะตอบสนองอย่างไร ช่วยด้วย! [ปิด]


13

ฉันพยายามนำทีมซอฟต์แวร์ที่ล้มเหลว หนึ่งในปัญหาหลักคือเมื่อใดก็ตามที่บางสิ่งบางอย่างเป็นเรื่องยากเล็กน้อยฉันก็เลยต้องลงมือทำเอง ฉันมีนักพัฒนาซอฟต์แวร์อีกหนึ่งคนที่มีทักษะปานกลางและครึ่งหนึ่งเป็นนักศึกษาฝึกงาน น่าเสียดายที่ทักษะของนักพัฒนาซอฟต์แวร์คนอื่น ๆ นั้นไม่รวมการออกแบบ

ดังนั้นฉันจึงขอร้องเจ้านายของฉันให้เป็นหนึ่งในคนในทีมอื่น ๆ เขาทำงานที่นี่นานกว่าฉัน (5 ปี) เขาไม่สามารถแข่งขันกับฉันในการออกแบบหรือภาษาที่เราใช้ แต่ฉันคิดว่าเขาเก่งที่สุดนอกเหนือจากตัวฉันเอง

วันนี้เขาให้รหัสชิ้นหนึ่งแก่ฉันซึ่งทำสิ่งที่ไม่แตกต่างอย่างน้อยที่สุดให้กับ:

object const& my_class::get_object() const 
{ 
  return *std::unique_ptr<object>(new object());
}

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

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

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

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


4
กรี๊ด!!! และพูดจาโผงผาง มันทำให้คุณรู้สึกดีขึ้น โอ้เดี๋ยวก่อนฉันเห็นแล้วว่าคุณทำไปแล้ว ลองยิ้ม :): D (รอยยิ้มชั่วร้ายก็โอเคเช่นกัน>: D)
Mateen Ulhaq

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

7
เหตุใดบางคนที่ไม่เข้าใจพอยน์เตอร์และการจัดการหน่วยความจำเพียงเล็กน้อยที่ทำงานในโครงการ C ++
ชาร์ลส์ซัลเวีย

2
คำอธิบายที่เป็นไปได้: เป็นเวลาหลายปีภูมิปัญญาที่เป็นที่นิยมคือ STL ยังไม่พร้อมสำหรับช่วงไพร์มไทม์ มันเคยเป็นไปได้ที่จะเป็นโปรแกรมเมอร์ C ++ ที่ค่อนข้างซับซ้อนโดยไม่ต้องรู้อะไรมากมายเกี่ยวกับ STL เห็นได้ชัดว่าสิ่งต่าง ๆ มีการเปลี่ยนแปลง อย่างไรก็ตามหากเขาได้รับการฝึกฝนในช่วงปลายยุค 90 หรือได้รับคำแนะนำจากบางคนที่ได้รับการฝึกฝนในช่วงปลายยุค 90 เขาอาจคลุกคลีกับวัตถุใหม่ () ได้ แต่ก็ไม่ต้องบานพับโดย stang fangled ใหม่นี้: unique_ptr <object> () thingie มันไม่ได้แก้ปัญหาของคุณ แต่อาจอธิบายว่าเขามาจากไหน
Charles E. Grant

2
@Charles: ตกลงฉันมีประสบการณ์หลายปีใน C ++ จากอุตสาหกรรมเกมและไม่เคยสัมผัส STL และไม่รู้อะไรเกี่ยวกับมันเลย ดูข้อมูลโค้ดข้างต้นทั้งหมดที่ฉันทำได้คือเขย่าหัวและคิดว่า "ถ้าคุณต้องการเขียน C ++, เขียน C ++ แต่ดูเหมือนว่าคุณไม่ต้องการเขียน C ++ ดังนั้นทำไมไม่เพียงแค่ใช้ระดับที่สูงขึ้น ภาษา?"
Carson63000

คำตอบ:


14

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

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

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

ฉันพยายามนำทีมซอฟต์แวร์ที่ล้มเหลว หนึ่งในปัญหาหลักคือเมื่อใดก็ตามที่บางสิ่งบางอย่างเป็นเรื่องยากเล็กน้อยฉันก็เลยต้องลงมือทำเอง

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

การทำงานทั้งหมดด้วยตัวเองหมายความว่าคุณไม่มีทีมหรือคุณไม่มีความมั่นใจในตัวพวกเขา ที่ต้องได้รับการแก้ไขก่อน


7
+1 สำหรับ "ฟังดูเหมือนเขาอาจมีประสบการณ์ 1 ปีเจ็ดครั้ง"
Matthew อ่าน

@ Matthew: จริงเลย
IAbstract

13

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

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

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

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


4
นี่เป็นตัวอย่างที่ดีของมุมมองของการจัดการที่พนักงานหลายคนดูเหมือนจะไม่มี
ทำเครื่องหมาย C

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

1
สวัสดีโนอาห์ฉันจะแชทกับใครก็ตามที่จัดการทีมในเวลานั้น - พวกเขามีความรับผิดชอบในการทำให้แน่ใจว่าคนที่เหมาะสมมีความพร้อมและมีทักษะที่เหมาะสม
Craig Schwarze

9

หางานใน บริษัท ที่ดีกว่าที่คุณสามารถทำงานกับคนที่มีความสามารถ


7
หรือมิฉะนั้นให้หยุดใช้ C ++ วิธีนี้จะช่วยแก้ไขข้อผิดพลาดที่น่ารังเกียจหลายประเภท
Mason Wheeler

3
@ ช่างก่ออิฐ: ฉันเห็นด้วย ทุกคนเขียน C # และมีความสุข :)
IAbstract

2
ควรใช้ C ++ เฉพาะในกรณีที่เหมาะสมกับ C ++ ฉันรู้ว่าไม่มีภาษาที่มีอยู่ที่สามารถทำงานของ C ++ ได้ดี
Matthew อ่าน

2
@ Matthew อ่านด้วยโปรแกรมเมอร์ที่ไม่มีความสามารถเช่นเดียวกับในตัวอย่างของ OP, C ++ จะเคยเหมาะสมหรือไม่
Dan Rosenstark

4
@Yar: แม้ว่าโปรแกรมเมอร์ที่ไม่ดีจะเขียนโค้ดที่ไม่ดีในทุกภาษา
Jon Purdy

7

สิ่งที่ถูกต้องก็คือการช่วยเขาด้วยปัญหา มันไม่จำเป็นต้องถูกต้องทันที คุณอาจพูดว่า "ตอนนี้ฉันผูกแล้วไปอ่านตอนที่ X ของ C ++ STL แล้วมาสัมผัสกันอีกครั้งในวันพรุ่งนี้เวลา 11.00 น."

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


ฉันไม่ได้ตะโกน ฉันเพิ่งพูดว่าฉันไม่ว่างตอนนี้ ฉันก็เป่าเขาออกไป
Edward Strange

3
@Noah ฉันไม่ได้อยู่ที่นั่นคุณดังนั้นฉันยอม ลองคิดดูว่า: คนที่ผิดหวังมาก ๆ พวกเขาคิดว่าผู้คนตั้งใจทำสิ่งที่โง่มากกว่าที่จะทำสิ่งที่โง่เขลามีแนวโน้มที่จะพูดด้วยเสียงที่ทำให้เครียดผ่านฟันที่คับแคบในขณะที่คิดว่าพวกเขากำลังยิ้ม อีกคนหนึ่งอาจถูกตรึงเครียดมากจนได้ยินว่า: "คุณกลับมาอีกครั้งในเวลาประมาณ 10 นาที" ในฐานะ "กำจัดสิ่งสกปรกออกจากที่ทำงานของฉันคุณก็แบกถุง!" การเป็นผู้นำทีมมักจะเกี่ยวกับการจัดการพฤติกรรมเจ้าคณะผ่านภาษากายและน้ำเสียง
Charles E. Grant

3

ถ้าฉันมีคนที่เขียนโค้ดมา 7 ปีแล้วถามสิ่งที่ฟังดูธรรมดา ๆ ฉันคงต้องสงสัยว่ามีอะไรเกิดขึ้นบ้าง ฉันไม่ใช่โปรแกรมเมอร์ C ++ ดังนั้นฉันจึงไม่สามารถแสดงความคิดเห็นในด้านนั้นได้

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

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

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

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


2

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

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