การจัดการกับข้อบกพร่องพื้นฐานในการออกแบบเมื่อคุณยังใหม่กับโครงการ [ปิด]


13

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

คำตอบ:


20

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

แทนที่จะ "ระเบิดสิ่งนี้ในรายการส่งเมล" ให้ลองถามคำถาม สิ่งที่ต้องการ:

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

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


2
นี่เป็นทิศทางที่ถูกต้องอย่างแน่นอน ฉันแค่อยากจะทำมันในแบบที่จะไม่หลุดออกมาว่า "ฉันรู้ว่าคุณผิดและฉันพูดถูก" และยังคงเอาอะไรบางอย่างออกไป
Matt Phillips

@ Matt: ถ้าอย่างนั้นวลีมันว่า "ฉันไม่รู้ว่าฉันพูดถูก" และพยายามอย่างดีที่สุดเพื่อหลีกเลี่ยงการทำให้เกิดเสียงประชดประชันหรือถูกกล่าวหา
Mason Wheeler

ฉันจะใช้บางสิ่งบางอย่างเช่น "ฉันไม่เข้าใจว่าทำไมจึงทำเช่นนี้มันจะดีกว่าหรือง่ายกว่า / เย็นกว่าที่จะทำอย่างนั้นฉันคิดว่ามันจะช่วยด้วยข้อผิดพลาด XX"
Javier

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

6

หนึ่งใน48 กฎแห่งพลัง :

ชนะการกระทำของคุณไม่ผ่านการโต้แย้ง

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

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

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

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


5

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


4

คุณอาจจะไม่ชอบสิ่งนี้ ... แต่ที่นี่จะไป ...

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

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

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

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

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

... และการสนทนาที่ฉันมีเกี่ยวกับปัญหากำลังครุ่นคิดกับผู้คนบางส่วน ฉันจะไปเกี่ยวกับเรื่องนี้ได้อย่างไร

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

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

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

...

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


2
“ สวัสดีขอบคุณที่ต้อนรับฉันเข้าบ้านคุณขณะที่ฉันเดินผ่านประตูฉันอยากให้ทุกคนในครอบครัวรู้ว่าลูกของพวกเขาน่าเกลียดและมีคนแต่งตัวเขาตลก”

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

ไม่จำเป็นและต่อต้าน ฉันแนะนำ:

"ในเรื่องของการออก #blah ฉันคิดว่าฉันสามารถแก้ไขได้ด้วยการทำ XY และ Z แต่ฉันไม่แน่ใจว่ามันจะส่งผลกระทบต่อส่วนที่เหลือของโครงการอย่างไรนี่จะโอเคไหม"

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

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