ดังนั้นโปรดจำไว้ว่านี่เป็นคำถามสัมภาษณ์ไม่ใช่สถานการณ์จริงในชีวิตจริงฉันเชื่อว่าวิธีการที่ถูกต้อง (และอาจเป็นสิ่งที่ผู้สัมภาษณ์กำลังมองหา) คือการถามคำถามที่ชัดเจนหรือเขียน "ไม่สามารถทำได้ เสร็จแล้ว "และเดินหน้าต่อไป นี่คือเหตุผล
สิ่งที่ผู้สัมภาษณ์ถาม:
เขียนฟังก์ชั่นที่รับประกันว่าจะไม่ส่งคืนค่าเดิมสองครั้ง สมมติว่าฟังก์ชั่นนี้จะสามารถเข้าถึงได้โดยหลายเครื่องพร้อมกัน
สิ่งที่ผู้สัมภาษณ์ต้องการ:
ผู้สมัครคนนี้ประเมินความต้องการได้อย่างมีประสิทธิภาพและแสวงหาข้อมูลเพิ่มเติมเมื่อจำเป็นหรือไม่?
ไม่เคยคิด
เมื่อวิศวกรมีความต้องการ (ผ่าน SOW หรือข้อมูลจำเพาะหรือเอกสารข้อกำหนดอื่น ๆ ) บางคนมีความชัดเจนในตัวเองและคนอื่น ๆ ก็ไม่มีความชัดเจน นี่คือตัวอย่างที่สมบูรณ์แบบของหลัง ดังที่คำตอบก่อนหน้านี้แสดงไม่มีวิธีตอบสนองข้อกำหนดนี้โดยไม่มีการตั้งสมมติฐานที่สำคัญหลายประการเช่น (a) เกี่ยวกับลักษณะของคำถามหรือ (b) เกี่ยวกับลักษณะของระบบเนื่องจากไม่สามารถปฏิบัติตามข้อกำหนดได้ ตามที่เขียนไว้ (เป็นไปไม่ได้)
คำตอบส่วนใหญ่พยายามหนึ่งครั้งหรืออีกวิธีหนึ่งในการแก้ปัญหาผ่านชุดข้อสมมติฐาน หนึ่งแนะนำโดยเฉพาะอย่างยิ่งที่จะทำมันได้อย่างรวดเร็วและปล่อยให้ลูกค้ากังวลเกี่ยวกับมันถ้ามันผิด
นี่เป็นวิธีการที่ไม่ดีจริงๆ ในฐานะลูกค้าถ้าฉันมีข้อเรียกร้องที่ไม่ชัดเจนและวิศวกรก็หยุดทำงานและสร้างโซลูชันที่ไม่ทำงานฉันจะต้องเสียใจที่พวกเขาไปทำงานและใช้เงินโดยไม่ต้องถามฉันก่อน การตัดสินใจแบบทหารม้าแบบนั้นแสดงให้เห็นถึงการขาดการทำงานเป็นทีมไม่สามารถคิดอย่างมีวิจารณญาณและวิจารณญาณไม่ดี มันสามารถนำไปสู่ลักษณะของผลกระทบเชิงลบใด ๆ รวมถึงการสูญเสียชีวิตในระบบที่สำคัญด้านความปลอดภัย
ถามคำถามทำไม
ประเด็นถ้าแบบฝึกหัดนี้คือว่ามันมีราคาแพงและใช้เวลานานในการสร้างข้อกำหนดที่ไม่ชัดเจน ในกรณีของ OP คุณได้รับงานที่เป็นไปไม่ได้ การดำเนินการครั้งแรกของคุณคือการขอคำชี้แจง - อะไรคือสิ่งที่จำเป็น? ต้องการความมีเอกลักษณ์ระดับใด จะเกิดอะไรขึ้นถ้าค่าไม่ซ้ำกัน คำตอบสำหรับคำถามเหล่านี้อาจแตกต่างกันระหว่างเวลาหลายสัปดาห์และไม่กี่นาที ในโลกแห่งความจริงหนึ่งในตัวขับเคลื่อนที่ใหญ่ที่สุดของค่าใช้จ่ายในระบบที่ซับซ้อน (รวมถึงระบบซอฟต์แวร์จำนวนมาก) นั้นเป็นข้อกำหนดที่ไม่ชัดเจนและไม่เข้าใจ สิ่งนี้นำไปสู่ข้อบกพร่องที่มีราคาแพงและใช้เวลานานการออกแบบใหม่ความไม่พอใจของลูกค้าและทีมและความครอบคลุมของสื่อที่น่าอับอายหากโครงการมีขนาดใหญ่พอ
เกิดอะไรขึ้นเมื่อคุณคิดว่า
จากภูมิหลังของฉันในอุตสาหกรรมการบินและเนื่องจากความล้มเหลวของการบินและอวกาศที่มองเห็นได้อย่างชัดเจนฉันจึงต้องการยกตัวอย่างจากโดเมนนี้เพื่อแสดงจุดสำคัญ เรามาตรวจสอบภารกิจของดาวอังคารที่ล้มเหลว - Mars Climate Orbiter และ Mars Polar Lander ภารกิจทั้งสองล้มเหลวเนื่องจากปัญหาซอฟต์แวร์ - เนื่องจากวิศวกรทำข้อสันนิษฐานที่ไม่ถูกต้องเนื่องจากบางส่วนมีข้อกำหนดที่ไม่ชัดเจนและสื่อสารไม่ดี
Mars Climate Orbiter - กรณีนี้มักถูกอ้างถึงว่าเกิดอะไรขึ้นเมื่อ NASA พยายามแปลงภาษาอังกฤษเป็นหน่วยเมตริก อย่างไรก็ตามนั่นคือการเป็นตัวแทนที่ง่ายเกินไปและน่าสงสารของสิ่งที่เกิดขึ้นจริง ๆ จริงมีปัญหาการแปลง แต่เป็นเพราะความต้องการสื่อสารไม่ดีในขั้นตอนการออกแบบและรูปแบบการตรวจสอบ / ตรวจสอบความถูกต้องที่ไม่เหมาะสม นอกจากนี้เมื่อวิศวกรสองคนสังเกตเห็นปัญหาเนื่องจากเห็นได้ชัดจากข้อมูลวิถีการบินพวกเขาไม่ได้ยกระดับไปสู่ระดับที่เหมาะสมเพราะพวกเขาคิดว่ามันเป็นข้อผิดพลาดในการส่งสัญญาณ ทีม ops ภารกิจได้รับการตระหนักถึงปัญหาหรือไม่มีเวลาเพียงพอในการแก้ไขและบันทึกภารกิจ ในกรณีนี้มีเงื่อนไขทางตรรกะที่เป็นไปไม่ได้ซึ่งไม่ได้รับการยอมรับสำหรับสิ่งที่มันนำไปสู่ความล้มเหลวของภารกิจที่มีราคาแพง
Mars Polar Lander- กรณีนี้เป็นที่รู้จักกันน้อยกว่าเล็กน้อย แต่อาจเป็นเรื่องน่าอายมากกว่าเนื่องจากความใกล้ชิดชั่วคราวกับความล้มเหลวของยานอวกาศ Climate Mars ในภารกิจนี้ซอฟท์แวร์ควบคุมการสืบเชื้อสายจากจรวดทรัสเตอร์เข้าสู่พื้นผิวดาวอังคาร ที่จุด 40 เมตรเหนือพื้นผิวขาของคนงานนำไปใช้ในการเตรียมการลงจอด นอกจากนี้ยังมีเซ็นเซอร์ที่ขาที่ตรวจจับการเคลื่อนไหว (เพื่อส่งสัญญาณเมื่อพวกเขาได้รับผลกระทบ) เพื่อบอกให้ซอฟต์แวร์ปิดเครื่องยนต์ การคาดเดาที่ดีที่สุดของนาซ่าเกี่ยวกับสิ่งที่เกิดขึ้น (เนื่องจากมีความล้มเหลวหลายอย่างและข้อมูลไม่สมบูรณ์) คือการสั่นสะเทือนแบบสุ่มที่ขาเนื่องจากการติดตั้งพร้อมกันและก่อให้เกิดกลไกการปิด 40m เหนือพื้นผิวอย่างไม่ถูกต้อง ยานอวกาศ M ความเป็นไปได้นี้เพิ่มขึ้นในการพัฒนา แต่ไม่เคยพูด ในที่สุดทีมงานซอฟต์แวร์ได้ตั้งสมมติฐานที่ไม่ถูกต้องเกี่ยวกับวิธีการเรียกใช้รหัสนี้ (ข้อสันนิษฐานหนึ่งข้อคือสัญญาณปลอมจะสั้นเกินไปที่จะหยิบขึ้นมาแม้ว่าจะมีการทดสอบที่แสดงตรงกันข้าม) และสมมติฐานเหล่านั้นไม่เคยถูกถามจนกระทั่งหลังจาก ข้อเท็จจริง.
ข้อควรพิจารณาเพิ่มเติม
การสัมภาษณ์และการประเมินผู้คนเป็นธุรกิจที่ยุ่งยาก มีหลายมิติของผู้สมัครที่ผู้สัมภาษณ์อาจต้องการสำรวจ แต่หนึ่งในสิ่งที่สำคัญที่สุดคือความสามารถของบุคคลในการคิดวิเคราะห์ ด้วยเหตุผลหลายประการไม่น้อยไปกว่านั้นคือการคิดแบบมีวิจารณญาณไม่ดีเรามีเวลาที่ยากมากในการประเมินทักษะการคิดเชิงวิพากษ์
ในฐานะที่เป็นผู้สอนด้านวิศวกรรมหนึ่งในวิธีที่ฉันชอบที่สุดในการประเมินความสามารถของนักเรียนในการคิดเชิงวิเคราะห์คือการถามคำถามที่ค่อนข้างคลุมเครือ นักเรียนที่คมชัดกว่านั้นจะมารับคำถามที่มีข้อผิดพลาดให้สังเกตและตอบด้วยการให้หลักฐานหรือปฏิเสธที่จะตอบคำถามทั้งหมด โดยปกติแล้วฉันจะถามคำถามที่คล้ายกับคำถามต่อไปนี้:
คุณรับภาพวาดจากกองงานของคุณ รูปวาดประกอบด้วยคำบรรยายภาพที่แตกต่างหลากหลาย แต่จุดที่สำคัญที่สุดไปยังพื้นผิวแนวนอนและพูดว่า "แบนราบอย่างสมบูรณ์แบบ" พื้นผิวมีความยาว 5 "กว้าง 16" และส่วนที่ทำจากอลูมิเนียม คุณจะเตรียมชิ้นส่วนเพื่อสร้างคุณสมบัตินี้อย่างไร
(โดยวิธีการที่คุณจะตกใจที่ความถี่เช่นคุณสมบัติไม่ดีปรากฏขึ้นในที่ทำงาน)
ฉันคาดหวังว่านักเรียนจะรับรู้ว่ามันเป็นไปไม่ได้ที่จะสร้างคุณสมบัติที่สมบูรณ์แบบและพวกเขาจะระบุสิ่งนี้ในคำตอบของพวกเขา ฉันมักจะให้คะแนนโบนัสถ้าพวกเขาบอกว่าพวกเขาจะกลับไปที่นักออกแบบและขอคำชี้แจงก่อนที่จะเข้าร่วม หากนักเรียนดำเนินการเพื่อบอกฉันว่าพวกเขาจะบรรลุ. 001 planarity หรือค่าที่ทำขึ้นอื่น ๆ ฉันได้รับคะแนนศูนย์ สิ่งนี้ช่วยให้ฉันชี้ให้นักเรียนเห็นว่าพวกเขาจำเป็นต้องคิดถึงภาพรวมที่ใหญ่ขึ้น
บรรทัดล่าง
ถ้าฉันสัมภาษณ์วิศวกร (หรืออาชีพที่คล้ายกัน) ฉันกำลังมองหาใครบางคนที่สามารถคิดวิเคราะห์และตั้งคำถามกับสิ่งที่ถูกวางไว้ตรงหน้าเขา ฉันต้องการคนที่ถามคำถาม "สิ่งนี้สมเหตุสมผลหรือไม่" .
มันไม่สมเหตุสมผลเลยที่จะขอชิ้นส่วนที่เรียบอย่างสมบูรณ์แบบเพราะไม่มีสิ่งใดที่สมบูรณ์แบบ มันไม่สมเหตุสมผลที่จะขอฟังก์ชั่นที่ไม่ส่งคืนค่าซ้ำซ้อนเพราะมันเป็นไปไม่ได้ที่จะรับประกันเช่นนั้น ในการเขียนโปรแกรมเรามักจะได้ยินวลี "ขยะเข้าขยะออก" หากคุณได้รับขยะตามความต้องการมันเป็นความรับผิดชอบทางจริยธรรมของคุณที่จะหยุดและถามคำถามใด ๆ ที่จะช่วยให้คุณตั้งใจจริง หากฉันสัมภาษณ์ผู้สมัครและฉันไม่ได้ให้ข้อกำหนดที่ชัดเจนแก่พวกเขาฉันจะคาดหวังคำถามชี้แจง