28 คะแนน โดย spilist2 2024-07-22 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ประสบการณ์ pair debugging ล่าสุด

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

เซสชัน pair debugging จบลงในเวลาไม่ถึง 5 นาที แต่ก็ทำให้เกิดคำถามขึ้นมา

  • ฉันสังเกตเรื่องนี้ได้อย่างไร แล้วทำไมเพื่อนร่วมงานคนนี้ถึงสังเกตไม่ได้?
  • จะช่วยยกระดับความสามารถของคนนี้อย่างมีประสิทธิภาพได้อย่างไร?

พอทำ code review หรือทำงานเป็นคู่ในฐานะซีเนียร์ ก็เจอเรื่องแบบนี้บ่อยอย่างเงียบ ๆ

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

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

CDM ที่ Gary Klein พัฒนาขึ้น เป็นวิธีที่ดีในการวิเคราะห์กระบวนการรับรู้ลักษณะนี้ได้ค่อนข้างรวดเร็ว แม้ทำด้วยตัวเองก็ได้

  • Cues : ตอนนั้นคุณเห็น ได้ยิน ได้กลิ่น อะไรอยู่บ้าง ...?
  • Knowledge, Source : คุณใช้ข้อมูลอะไรในการตัดสินใจครั้งนี้ และได้ข้อมูลนั้นมาอย่างไร?
  • Analogues : คุณนึกถึงประสบการณ์ก่อนหน้าอะไรบ้างไหม?
  • Goals : เป้าหมายเฉพาะของคุณในตอนนั้นคืออะไร?
  • Options : มีแนวทางการกระทำอื่นใดที่คุณพิจารณา หรือที่เปิดให้คุณเลือกได้บ้าง?
  • Basis : ตัวเลือกนี้ถูกเลือกอย่างไร/ตัวเลือกอื่นถูกปฏิเสธอย่างไร? กำลังยึดตามกฎอะไรอยู่?
  • Experience : ต้องมีการฝึกหรือประสบการณ์แบบใดจึงจะจำเป็นหรือเป็นประโยชน์ต่อการตัดสินใจครั้งนี้?
  • Aiding : หากการตัดสินใจนั้นไม่ใช่ทางเลือกที่ดีที่สุด การฝึก ความรู้ หรือข้อมูลแบบใดจะช่วยได้?
  • Tools : ตอนตัดสินใจครั้งนี้ มีเครื่องมือใดที่ช่วยต่อการตัดสินใจนั้นโดยเฉพาะหรือไม่?
  • Time Pressure : มีแรงกดดันด้านเวลามากน้อยแค่ไหนในการตัดสินใจครั้งนี้?
  • Situation Assessment : ลองนึกว่าถูกขอให้สรุปสถานการณ์ ณ จุดนี้ให้คนที่เชี่ยวชาญกว่าคุณฟัง คุณจะสรุปสถานการณ์นี้อย่างไร?
  • Hypothesis : ถ้าคุณลักษณะสำคัญอย่างหนึ่งของสถานการณ์นี้แตกต่างออกไป มันจะทำให้การตัดสินใจของคุณเปลี่ยนไปอย่างไร?

สรุป

  • ในการรีวิว GitHub PR ซึ่งโดยมากเกิดขึ้นแบบอะซิงโครนัส ความรู้ฝังลึกของผู้รีวิวจะถูกเผยออกมาน้อยกว่ามาก
  • ในจังหวะแบบนี้ หากตั้งใจถามคำถาม CDM กับตัวเอง และใส่เข้าไปด้วยว่า “ฉันคิดคอมเมนต์นี้ขึ้นมาได้อย่างไร” ก็เชื่อว่าทั้งผู้รีวิวและผู้เขียน PR จะพัฒนาความสามารถได้เร็วขึ้นมาก
  • แน่นอนว่า นอกเหนือจากงานพัฒนาแล้ว ไม่ว่าพื้นที่ใดที่ต้องใช้ภาระงานทางการรับรู้ ก็สามารถนำ CDM ไปใช้ได้ดีมาก ไม่ว่าฉันจะเป็นคนสอนหรือเป็นคนที่ได้รับการสอน

1 ความคิดเห็น

 
inthelife 2024-07-22

การแปลบางส่วนของ CDM (DeepL):

  • เบาะแส: คุณเห็น ได้ยิน หรือได้กลิ่นอะไรบ้าง...?
  • ความรู้, แหล่งที่มา: คุณใช้ข้อมูลอะไรในการตัดสินใจครั้งนี้ และได้ข้อมูลนั้นมาอย่างไร?
  • ความคล้ายคลึง: มีประสบการณ์ก่อนหน้าที่นึกขึ้นมาได้หรือไม่?
  • เป้าหมาย: ตอนนั้นเป้าหมายที่เป็นรูปธรรมคืออะไร?
  • ทางเลือก: มีแนวทางการกระทำอื่นใดที่ได้พิจารณา หรือสามารถเลือกได้บ้าง?
  • เหตุผลประกอบ: ตัวเลือกนี้ถูกเลือกอย่างไร และตัวเลือกอื่นถูกปฏิเสธอย่างไร? คุณยึดตามกฎอะไรบ้าง?
  • ประสบการณ์: มีการฝึกอบรมหรือประสบการณ์เฉพาะอะไรบ้างที่จำเป็นหรือเป็นประโยชน์ต่อการตัดสินใจครั้งนี้?
  • ความช่วยเหลือ: หากนี่ไม่ใช่การตัดสินใจที่ดีที่สุด การฝึกอบรม ความรู้ หรือข้อมูลแบบใดจะช่วยได้?
  • เครื่องมือ: ตอนตัดสินใจครั้งนี้ มีเครื่องมือใดที่ช่วยให้ตัดสินใจได้หรือไม่?
  • ความกดดันด้านเวลา: มีแรงกดดันด้านเวลามากน้อยเพียงใดในการตัดสินใจครั้งนี้?
  • การประเมินสถานการณ์: หากสมมติว่า ณ จุดนี้คุณถูกขอให้อธิบายสถานการณ์แก่ผู้ที่มีอาวุโสกว่าคุณ (เช่น ในแง่ความเชี่ยวชาญ) คุณจะสรุปสถานการณ์อย่างไร?
  • สมมติฐาน: หากลักษณะสำคัญของสถานการณ์แตกต่างออกไป การตัดสินใจของคุณจะแตกต่างไปอย่างไร?