น้องสาวผมทำธุรกิจพาสุนัขไปเดินเล่นจากรถของเธอ ลูกค้าสิบสี่คน ปฏิทิน Google ที่ใช้ร่วมกันซึ่งสามคนแก้ไขอย่างมั่วๆ และนิสัยส่งข้อความ "กำลังไปแล้ว!" ให้คนที่สุนัขจะถึงคิวต่อไป ซึ่งหมายความว่าเธอเคยลืมสองครั้งและต้องรับสายที่น่าอึดอัด เธอขอ "แอป ไม่ต้องหรูหรา" จากผมในวันพฤหัสบดี และอยากให้ใช้งานได้จริงภายในวันจันทร์ถัดไป ผมบอกว่าจะพยายามให้เสร็จภายในคืนวันอาทิตย์ นี่คือบันทึกที่ผมเก็บไว้ เพราะอยากรู้ทีหลังว่าอะไรที่ใช้เวลาจริงๆ เทียบกับสิ่งที่ผมแค่คิดว่าจะใช้เวลา
วันศุกร์ 20:40 น. — คำสั่งเริ่มต้น
ผมไม่ได้เปิดตัวแก้ไขเปล่าๆ ผมเปิดแชทแล้วอธิบายธุรกิจตรงๆ: คนพาสุนัขคนเดียว ลูกค้าประจำสิบสี่คน ต้องการให้ลูกค้าได้รับข้อความเตือนอัตโนมัติในเช้าวันที่มีนัดพาเดิน ต้องการหน้าเว็บง่ายๆ ที่เธอเพิ่มลูกค้าใหม่และชื่อสุนัขได้ภายในไม่ถึงสามสิบวินาที เพราะปกติเธอทำตอนยืนอยู่ในทางเข้าบ้านคนอื่น ผมพูดคำว่า "แอปจองคิว" ครั้งหนึ่งแล้วก็รีบถอนคำพูดทันที — มันไม่ใช่แอปจองคิว มันคือรายชื่อลูกค้าพร้อมตัวกระตุ้นการเตือน การเจาะจงว่ามันไม่ใช่อะไรกลับสำคัญกว่าการอธิบายว่ามันคืออะไร
วันศุกร์ 21:05 น. — แผนที่ตอบกลับมา
แผนมีสามส่วนที่ผมไม่ได้ขอและคงจะลืมไป:
- วิธีทำเครื่องหมายว่าเดินเสร็จแล้ว เพื่อไม่ให้การเตือนยิงซ้ำสองครั้ง
- ลิงก์ยกเลิกรับ SMS เพื่อให้เป็นไปตามกฎหมาย
- มุมมองรายวันแบบง่ายๆ แทนตารางปฏิทิน เพราะตารางปฏิทินบนมือถือที่มีสิบสี่รายการก็แค่กำแพงตัวหนังสือเล็กๆ
ผมเขียนแผนใหม่สามครั้งแยกกันในยี่สิบนาทีถัดมา ส่วนใหญ่คือการเปลี่ยนคำที่ไม่จำเป็นต้องเปลี่ยน มองย้อนกลับไปนั่นเป็นความประหม่าล้วนๆ — เอเจนต์วางแผนได้โครงสร้างที่ถูกต้องตั้งแต่ครั้งแรกแล้ว และผมกำลังแก้ไขประโยคแทนที่จะแก้เนื้อหา
วันศุกร์ 21:40 น. — รันครั้งแรก
เริ่มรันแล้วเฝ้าดูทีมเอเจนต์ทำงานผ่านโมเดลลูกค้า หน้ามุมมองรายวัน และงานเตือน ดีไซน์ที่ออกมาดูเหมือนแบบฟอร์มรับคนไข้ของคลินิกสัตวแพทย์ ซึ่งจริงๆ แล้วถูกต้องสำหรับกลุ่มเป้าหมาย — ลูกค้าของน้องสาวผมคือเจ้าของสุนัขวัยสี่สิบถึงห้าสิบ ไม่ใช่สไลด์นำเสนอระดมทุน Series A ผมเกือบจะคัดค้านสไตล์ภาพเพราะความเคยชิน ก่อนจะรู้ตัวว่ามันเหมาะกับผู้ใช้จริงมากกว่าอะไรที่ผมจะเลือกเอง
วันศุกร์ 22:30 น. — จุดสะดุดแรก
ส่วน SMS ต้องการคีย์ผู้ให้บริการจริงก่อนที่จะส่งอะไรได้จริง ซึ่งเป็นพฤติกรรมที่ถูกต้อง ไม่ใช่บั๊ก แต่ผมลืมไปว่ายังไม่ได้ตั้งค่าไว้ ทุกอย่างอื่นยังทำงานต่อไป — แอปแค่บันทึกสิ่งที่มันจะส่งแทนที่จะส่งจริง ซึ่งหมายความว่าผมยังสร้างต่อได้แทนที่จะติดขัดกับการสมัคร Twilio ตอนสี่ทุ่มครึ่งของคืนวันศุกร์ แล้วก็เข้านอน
วันเสาร์ 8:00 น. — จุดสะดุดตัวจริง
นี่คือจุดที่เสียเวลาจริงๆ ผมขอให้การเตือนส่งออกไป "ในเช้าวันนั้น" และเวอร์ชันแรกตีความว่าเป็นการส่งคงที่เวลา 7 โมงเช้าสำหรับลูกค้าทุกคนไม่ว่าเวลานัดจะเป็นเท่าไร ใช้ได้ดีสำหรับนัดเดิน 9 โมงเช้า แต่ไม่มีประโยชน์เลยสำหรับนัดบ่าย 4 โมง ผมกลับไปที่แชทและพูดตรงๆ ว่า:
การเตือนควรยิงก่อนเวลาที่นัดของแต่ละคนตามจำนวนชั่วโมงที่กำหนด ไม่ใช่ยิงตามเวลานาฬิกาคงที่
การแก้ไขใช้เวลาแค่การสนทนารอบเดียว บทเรียนไม่ได้อยู่ที่เครื่องมือ แต่อยู่ที่คำสั่งของผมเอง: "เช้าวันนั้น" เป็นวลีที่รู้สึกชัดเจนสำหรับคนพูด แต่คลุมเครือโดยสิ้นเชิงสำหรับคนอื่นทุกคน รวมถึงผมเองในอีกสิบสองชั่วโมงต่อมาด้วย
วันเสาร์ 11:15 น. — อ่านบันทึกการตรวจสอบ
ก่อนที่จะแตะอะไรอย่างอื่น ผมเปิดดูสิ่งที่การสร้างได้ตรวจสอบตัวเองไว้แล้ว:
- แบบฟอร์มลูกค้าบันทึกข้อมูลได้ถูกต้อง
- งานเตือนทำงานตามวันทดสอบของนัดหมาย
- ลิงก์ยกเลิกรับ SMS ยกเลิกการสมัครเบอร์ทดสอบได้จริง
ไม่มีอะไรไฟไหม้เลย ผมมีนิสัยอ่านสิ่งนี้ก่อนที่จะไปหาปัญหาด้วยตัวเอง เพราะมันบอกผมว่าควรใช้ความสนใจไปกับอะไรจริง ๆ แทนที่จะคลิกไปมาแบบสุ่มโดยหวังว่าจะสังเกตเห็นอะไรผิดปกติ
วันเสาร์ บ่าย 2 โมง — SMS ของจริงคราวนี้
ตั้งค่าบัญชีผู้ให้บริการ ใส่คีย์เข้าไป แล้วส่งข้อความเตือนทดสอบให้ตัวเอง
เรื่องเล็กน้อย แต่มันคือช่วงเวลาที่โปรเจกต์หนึ่งหยุดเป็นแค่เดโมแล้วกลายเป็นสิ่งที่มีอยู่จริงในโลก
วันเสาร์ บ่าย 4 โมง 20 — การรอโดเมน
ชี้โดเมนจริงของเธอมาที่นี่แล้วก็ไม่ได้ทำอะไรเป็นชิ้นเป็นอันอยู่สองชั่วโมงระหว่างรอ DNS อัปเดต ผมใช้เวลานั้นพิมพ์ข้อมูลลูกค้าจริงสิบสี่รายด้วยตัวเองแทนที่จะปล่อยให้เธอต้องมาพิมพ์เองผ่านมือถือในคืนวันอาทิตย์ ซึ่งพอมองย้อนกลับไปแล้วนี่คือการใช้เวลาที่คุ้มค่าที่สุดของทั้งสุดสัปดาห์ — งานคีย์ข้อมูลที่ไม่หวือหวานั้นมีค่ามากกว่าความสวยงามเพิ่มเติมที่ไม่มีใครขอ
วันอาทิตย์ 9 โมงเช้า — ส่วนที่เกือบสร้างเกินความจำเป็น
ผมคิดไปเองว่าเธอน่าจะอยากได้สรุปรายสัปดาห์ — เดินเสร็จกี่ครั้ง ไม่มาตามนัดกี่ครั้ง รายได้เท่าไร — แล้วก็เริ่มขอให้ระบบสร้างสรุปอัตโนมัติทุกเช้าวันจันทร์ แต่หยุดตัวเองไว้กลางทางตอนที่กำลังอธิบายฟีเจอร์นี้ เธอมีลูกค้าแค่สิบสี่รายและทำบัญชีเองในสมุดโน้ต ฟีเจอร์สรุปข้อมูลคือการแก้ปัญหาที่เธอยังไม่มี เลยตัดออกไป ผมสามารถเพิ่มมันได้ในห้านาทีเมื่อเธอขอจริง ๆ และจนกว่าจะถึงตอนนั้นมันก็เป็นแค่พื้นที่เสี่ยงให้เกิดข้อผิดพลาดเพิ่มขึ้นเปล่า ๆ
วันอาทิตย์ บ่าย 1 โมง 10 — ส่งลิงก์ให้เธอ
เธอเพิ่มลูกค้าจากมือถือขณะยืนอยู่ในลานจอดรถ ซึ่งนั่นคือบททดสอบจริงที่สำคัญกว่าอะไรก็ตามที่ผมตรวจสอบด้วยตัวเอง
วันอาทิตย์ 6 โมงเย็น 40 — สิ่งที่ผมจะข้ามในครั้งต่อไป
สิ่งที่ผมจะข้ามในครั้งต่อไป:
- การเขียนแผนใหม่สามครั้งที่ไม่ได้เปลี่ยนอะไรเลย
- สองชั่วโมงที่กังวลเรื่องผู้ให้บริการ SMS ก่อนที่จะได้ลองตั้งค่าจริง
- แดชบอร์ดสรุปที่เกือบสร้าง — สามสิบนาทีที่เร็วที่สุดของทั้งสุดสัปดาห์คือช่วงที่ผมใช้พิมพ์คำว่า "ไม่" ให้กับไอเดียของตัวเองแทนที่จะสร้างมันขึ้นมา
ทุกอย่างที่ใช้เวลาจริง ๆ นั้นเป็นเพราะความคลุมเครือในคำขอของผมเอง หรือไม่ก็เป็นการรอที่หลีกเลี่ยงไม่ได้กับเซิร์ฟเวอร์ DNS ของคนอื่น ในการสร้างครั้งต่อไป ผมจะเขียนพรอมป์แค่ครั้งเดียว อ่านมันย้อนกลับเหมือนเป็นคนแปลกหน้า และเชื่อในแผนแรกมากกว่าที่ผมเคยเชื่อในครั้งนี้



