เราเก็บคำว่าไม่มีวันหมดอายุ กับคำว่ายังไม่ได้ตรวจ ไว้ในช่องว่างเดียวกัน
October 6, 2026 · Taro — ผู้ก่อตั้ง KAZENA
วันที่ 1 ตุลาคม ผมนับค่าที่ซอฟต์แวร์ของเราเก็บไว้เพื่อเชื่อมต่อกับบริการภายนอก มีอยู่ 11 ค่า และใน 8 ค่านั้น เราตอบไม่ได้ว่าสร้างขึ้นเมื่อไร สิ่งที่ทำให้เริ่มนับคือประกาศฉบับหนึ่งที่มาถึงก่อนหน้านั้น 2 สัปดาห์
ประกาศนั้นมาถึงวันที่ 16 กันยายน บริการที่เราเชื่อมต่ออยู่รายหนึ่งจะเลิกออกโทเค็นที่ไม่มีวันหมดอายุ และเปลี่ยนเป็นโทเค็นที่หมดอายุใน 60 วันแทน ตอนอ่าน ผมคิดว่าผมเข้าใจแล้วว่าต้องทำอะไร ออกโทเค็นใหม่ แล้วทำขั้นตอนสำหรับเปลี่ยนทุก 60 วัน งานดูเล็ก ผมจึงทำเครื่องหมายไว้ว่าจะอ่านทีหลังแล้วปิดมันไป
เหตุผลที่ผมผัดไว้น่าจะอยู่ที่คำที่ผมใช้ ในหัวของผมเรียกสิ่งนี้ว่างานต่ออายุ การต่ออายุคือขั้นตอน และขั้นตอนนั้นรอจนกว่าจะว่างก็ได้ แต่จริง ๆ แล้วมันไม่ใช่ขั้นตอน มันคือข่าวว่าข้อสันนิษฐานที่เราปล่อยไว้อย่างนั้นมากว่า 2 ปี ถูกยกเลิกจากฝั่งตรงข้าม
วันที่ 1 ตุลาคม ผมลงมือทำแล้วหยุดที่คำถามแรก โทเค็นที่ใช้อยู่ตอนนี้สร้างเมื่อไร ผมค้นบันทึกภายในของเราเอง เจอเพียง 1 บรรทัดในเอกสารการตั้งค่าว่าให้วางค่าตรงนี้ ไม่มีวันที่ สุดท้ายผมต้องเปิดหน้าจัดการของผู้ให้บริการเพื่อตรวจสอบ มันมีอายุมากกว่า 2 ปี ตลอด 2 ปีนั้น โค้ดของเราไม่เคยถามค่านี้สักครั้งว่ามีอายุเท่าไร
ผมจึงตรวจค่าที่เหลือด้วยวิธีเดียวกัน รายละเอียดของ 11 ค่านั้นเป็นแบบนี้ ผู้ให้บริการกำหนดวันหมดอายุไว้ 4 ค่า และไม่ได้กำหนดไว้ 7 ค่า ใน 4 ค่าที่มีวันหมดอายุ เราบันทึกวันที่สร้างไว้เพียง 1 ค่า ที่เหลือต้องเปิดหน้าจัดการหรือถามคนที่สร้างมันเท่านั้นจึงจะรู้
ระหว่างนับ ผมเจอ 1 ค่าที่หมดอายุไปแล้ว ไม่ใช่ค่าของระบบจริง แต่เป็นค่าที่ใช้กับการเชื่อมต่อสำหรับทดสอบ มันหมดอายุไปตั้งแต่ปลายเดือนกรกฎาคม ที่เราไม่รู้ตัวเพราะการตรวจสอบที่ใช้ค่านี้ถูกเขียนไว้ให้ความล้มเหลวไม่ถูกเรียกว่าความล้มเหลว เมื่อการยืนยันตัวตนล้มเหลว การตรวจสอบนั้นจะถูกข้ามไป และผลโดยรวมยังขึ้นว่าสำเร็จ เป็นเวลากว่า 2 เดือน การตรวจสอบนั้นสำเร็จเรื่อยมาโดยไม่ได้ตรวจอะไรเลย
มีเรื่องหนึ่งที่ผมนึกขึ้นได้ เดือนสิงหาคม E แจ้งมาว่าการแจ้งเตือนสำหรับทดสอบไม่มาถึง เขาอยู่กับเรามาตั้งแต่ก่อตั้ง อยู่ในเมืองเล็ก ๆ ที่ห่างจากจาการ์ตาออกไปพอสมควร และเป็นคนดูแลการทดสอบบนเครื่องจริงกับการส่งงานในพื้นที่มาตลอด เราส่งซ้ำผ่านเส้นทางของระบบจริง ข้อความไปถึงเครื่องของเขา แล้วเราก็ปิดเรื่องนั้นตรงนั้น สิ่งที่ไปถึงมาจากอีกเส้นทางหนึ่ง ไม่มีใครถามว่าทำไมอีกเส้นทางหนึ่งถึงไม่ถึง
ส่วนที่สำคัญที่สุดของครั้งนี้อยู่ตรงนี้ ในข้อมูลของเรา คำว่าผู้ให้บริการไม่ได้กำหนดวันหมดอายุ กับคำว่าเรายังไม่ได้ตรวจวันหมดอายุ ถูกเก็บเป็นช่องว่างแบบเดียวกันเป๊ะ ทั้งคู่ไม่มีค่า จึงแยกจากกันไม่ออก อย่างหนึ่งคือคำพูดของผู้ให้บริการ อีกอย่างคือการยอมรับว่าเราไม่รู้ ความหมายตรงข้ามกัน แต่ถูกเก็บในรูปแบบเดียวกัน
คำว่าใช้ได้ตลอดไปก็ไม่ใช่คุณสมบัติที่เราถือไว้เอง มันคือสัญญาที่อีกฝ่ายรักษาไว้ให้ และสัญญานั้นเขาจะเลิกเมื่อไรก็ได้ โทเค็นที่ไม่มีวันหมดอายุไม่ได้แปลว่าวันหมดอายุไม่มีอยู่ แต่แปลว่ามันยังไม่ถูกกำหนดเท่านั้น ถ้ามองแบบนี้ ประกาศฉบับนั้นไม่ใช่อุบัติเหตุ แต่เป็นเรื่องที่เกิดขึ้นได้ตามปกติ
สิ่งที่เราแก้มี 3 อย่าง อย่างแรก ค่าทุกค่าที่เราเก็บไว้ตอนนี้มีวันที่สร้าง วันที่หมดอายุ และที่มาของการสร้างติดอยู่ด้วย ถ้าผู้ให้บริการไม่ได้กำหนดวันหมดอายุ เราเขียนว่าไม่ได้กำหนด แทนที่จะปล่อยว่าง แบบนี้ช่องว่างจะเหลือเฉพาะค่าที่เรายังไม่ได้ดู และคนที่มาอ่านทีหลังนับได้ว่าเหลืออีกเท่าไร
อย่างที่สอง จำนวนวันที่เหลือถูกแสดงในที่ที่คนมองเห็น ถ้าเหลือไม่ถึง 14 วัน จะมี 1 บรรทัดขึ้นที่ด้านบนของหน้าตั้งค่า แต่หน้าตั้งค่าไม่ใช่หน้าที่เปิดทุกวัน การวางคำเตือนไว้ในที่ที่ไม่มีใครดูก็เท่ากับไม่ได้วางไว้ เราจึงใส่บรรทัดเดียวกันลงในอีเมลตรวจสอบที่ส่งถึงเราทุกเช้าด้วย
อย่างที่สาม เราเลิกถือว่าการยืนยันตัวตนที่ล้มเหลวเป็นสิ่งที่ข้ามได้ แม้แต่การเชื่อมต่อสำหรับทดสอบ ถ้าเข้าไม่ได้ ตอนนี้เราก็บอกว่าเข้าไม่ได้ การเขียนให้ระบบผ่านสิ่งที่ไม่ผ่านไปอย่างเงียบ ๆ ตอนที่เขียนเราตั้งใจดี คงคิดว่าไม่อยากไปขัดจังหวะคนที่กำลังใช้งาน แต่สิ่งที่มันทำจริง ๆ คือทิ้งผลการตรวจสอบ 2 เดือนไปโดยไม่พูดอะไรเลย
ความคิดผิดแบบเดียวกันอยู่ในหน้าจอที่ผู้ใช้เห็นด้วย หลังจากเชื่อมต่อกับบริการภายนอกแล้ว เราแสดงเพียงคำว่าเชื่อมต่อแล้ว เราเขียนคำนั้นในฐานะรายงานของสิ่งที่เกิดขึ้นไปแล้ว แต่คนอ่านอ่านมันเป็นคำพูดเกี่ยวกับอนาคต ตอนนี้เราแสดงวันที่ยืนยันการเชื่อมต่อครั้งล่าสุดไว้ด้วย และถ้ารู้วันหมดอายุ ก็แสดงวันนั้นด้วย มันยาวกว่าคำว่าเชื่อมต่อแล้ว แต่ผู้ใช้ตัดสินใจเองได้ว่าควรกลับมาตรวจอีกครั้งเมื่อไร
สุดท้ายมีเรื่องอยากขอ ถ้าในหน้าจอของ KAZENA มีข้อความที่อ่านแล้วไม่รู้ว่าหมายถึงเวลาไหน กรุณาบอกเรา ข้อความที่เขียนไว้แค่ว่าเสร็จแล้ว มักเป็นที่ที่เราละวันที่เราตรวจสอบเอาไว้
บอกเราว่าคุณคิดอย่างไร
ความรู้สึกเมื่อได้ใช้แอป KAZENA สิ่งที่เราควรแก้ไข ฟีเจอร์ที่คุณอยากให้มี — หากคุณทำธุรกิจขนาดเล็กหรือขนาดกลาง หรือทำงานอิสระในอินโดนีเซียหรือฟิลิปปินส์ เสียงของคุณคือสิ่งที่เราอยากได้ยินมากที่สุด ข้อความที่เขียนเป็นภาษาอินโดนีเซียหรือภาษาอังกฤษจะได้รับการตอบจากเพื่อนร่วมทีมที่เข้าใจตลาดของคุณจากภายใน KAZENA Books มีกำหนดเปิดตัวในฟิลิปปินส์และอินโดนีเซียแล้ว — และหากบริษัทของคุณต้องการนำไปเปิดตัวในประเทศอื่นในฐานะพันธมิตร หรือสนใจซื้อระบบนี้ เราก็ยินดีอย่างยิ่งที่จะได้รับข่าวจากคุณเช่นกัน นอกจากนี้เรายังรับพัฒนาระบบใหม่ด้วย เราเป็นทีมเล็ก จึงไม่อาจเริ่มงานได้ทันทีเสมอไป — แต่สิ่งที่เราสร้างนั้นมีคุณภาพแบบเมดอินเจแปน และยังคงใกล้ชิดกับวิธีการทำธุรกิจที่เป็นจริงที่นี่ ทีละโครงการ
ติดต่อเรา