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