ยังไม่อยู่ในสายหลัก ไม่ได้แปลว่ายังไม่มีใครทำ: วันที่ห้อง AI ของเราแก้งานซ้ำกันเอง

ยังไม่อยู่ในสายหลัก ไม่ได้แปลว่ายังไม่มีใครทำ

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

เมื่อมีห้อง AI หลายห้องเก็บงานค้างจากกองเดียวกัน คำถามแรกก่อนสั่งแก้อะไรคือ งานนี้มีคนทำไปแล้วหรือยัง ("ห้อง" ของเราคือ AI หนึ่งตัวที่ดูแลงานด้านหนึ่ง)

ทุกห้องของเราถามคำถามนี้ ที่ต่างกันคือไปหาคำตอบที่ไหน

คืนที่สองห้องแก้เรื่องเดียวกัน

คืนวันที่ 9 ตุลาคม ราวสี่ทุ่มกว่า ห้องตรวจรับห้องหนึ่งสั่งโมเดลที่เรารันเองให้แก้งานค้างสองรายการ ก่อนสั่ง ห้องตรวจแล้วว่าโค้ดในสายหลักยังไม่มีการแก้นั้น

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

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

ห้องตรวจรับสรุปสาเหตุไว้ประโยคเดียว: การคัดงาน "ตรวจแค่สายหลัก"

งานที่ทำแล้วซ่อนได้สี่ที่

เรื่องคืนนั้นไม่ใช่ครั้งเดียวของวัน บันทึกบทเรียนของวันที่ 9 มีอีกหลายห้องที่เจอแบบเดียวกันในรูปต่างกัน พอเอามาเรียงกัน งานที่ทำแล้วซ่อนจากคนที่กำลังจะสั่งงานได้อย่างน้อยสี่ที่

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

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

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

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

สี่ที่นี้ต้องค้นคนละวิธี การค้นสายหลักเจอแค่ที่แรกกับที่สอง และเจอที่แรกก็ต่อเมื่อค้นถูกช่อง

แผนภาพสี่ที่ที่งานที่ทำแล้วซ่อนอยู่

ด่านเก้าบรรทัด

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

หลังพลาดแบบที่สี่ ห้องเพิ่มอีกเงื่อนไข คือถ้ามีความเห็นจองงานในรายการ ก็ล้มเหลวเหมือนกัน

เราเปิดสคริปต์ดู มันยาวเก้าบรรทัด

ที่ด่านยังขาด

ห้องที่มาทบทวนงานของห้องตรวจรับเขียนข้อสังเกตไว้ตรง ๆ ว่า ด่านนี้ "ต้องสมัครใจเรียก" ความผิดเกิดตอนสั่งงาน ด่านจึงควรอยู่ในเส้นทางสั่งงาน คือให้เครื่องมือสั่งงานปฏิเสธเองเมื่องานที่สั่งเอ่ยถึงรายการที่มีคำขอเปิดอยู่ ไม่อย่างนั้น ผู้ทบทวนเขียนว่า มันคือ "ข้อความที่มีสคริปต์แนบ"

การทบทวนกลางของคืนนั้นรับข้อนี้เป็นงานที่ควรสร้างต่อ และระบุว่ามีสี่ห้องที่โดนเรื่องเดียวกัน

บ่ายวันที่ 10 เราเปิดเครื่องมือสั่งงานดู ยังไม่มีการเรียกด่านนี้อยู่ข้างใน สิ่งที่มีคือหนึ่งบรรทัดในคู่มือของเครื่องมือ บอกให้เรียกด่านก่อนสั่งงาน

ด่านยังมีขอบเขตอีกข้อ คือมันถามได้แค่คลังโค้ดเดียว คู่มือเขียนไว้เองว่าอีกคลังหนึ่งยังต้องค้นด้วยมือ

ตัวเลขที่ไปอีกทาง

มีหนึ่งบรรทัดในบันทึกวันเดียวกันที่ควรเล่าคู่กัน ห้องหนึ่งให้โมเดลราคาถูกไล่อ่านรายการงาน 33 รายการเพื่อหาว่ามีรายการไหนเสร็จแล้ว พบแค่รายการเดียว

การตรวจก่อนสั่งงานจึงไม่ได้เจอของซ้ำทุกครั้ง ในกองหนึ่งเจอสี่ในห้า ในอีกกองเจอหนึ่งในสามสิบสาม เราไม่มีตัวเลขรวมว่าทั้งวันมีงานซ้ำกี่เปอร์เซ็นต์

สิ่งที่เรายังไม่รู้

ข้อคิดที่เอาไปใช้ได้

คำถามที่พบบ่อย

ทำไมห้อง AI จึงแก้งานที่มีคนแก้ไว้แล้วซ้ำ

ก่อนสั่ง ห้องตรวจแล้วว่าโค้ดในสายหลักยังไม่มีการแก้นั้น