ฟังก์ชั่นที่สำคัญที่สุดของสเปคคือการออกแบบโปรแกรม แม้ว่าคุณจะทำงานกับโค้ดทั้งหมดด้วยตัวเองและคุณเขียน spec เพียงเพื่อผลประโยชน์ของคุณเองการกระทำของการเขียน spec - อธิบายการทำงานของโปรแกรมในรายละเอียดนาที - จะบังคับให้คุณออกแบบโปรแกรมจริง...
... เมื่อคุณออกแบบผลิตภัณฑ์ในภาษามนุษย์ใช้เวลาเพียงไม่กี่นาทีในการลองคิดเกี่ยวกับความเป็นไปได้ต่างๆทบทวนและปรับปรุงการออกแบบของคุณ ไม่มีใครรู้สึกไม่ดีเมื่อลบย่อหน้าในโปรแกรมประมวลผลคำ แต่เมื่อคุณออกแบบผลิตภัณฑ์ของคุณในภาษาการเขียนโปรแกรมมันต้องใช้เวลาหลายสัปดาห์ในการออกแบบซ้ำ ๆ สิ่งที่แย่กว่านั้นคือโปรแกรมเมอร์ที่เพิ่งใช้เวลา 2 สัปดาห์ในการเขียนโค้ดบางส่วนจะต้องถูกรวมเข้ากับโค้ดนั้นไม่ว่ามันจะผิดปกติเพียงใดก็ตาม ...
... เมื่อคุณเขียนสเป็คคุณจะต้องสื่อสารว่าโปรแกรมควรทำงานครั้งเดียวเท่านั้น ทุกคนในทีมสามารถอ่านสเป็คได้ คน QA อ่านมันเพื่อให้พวกเขารู้ว่าโปรแกรมควรทำงานอย่างไรและพวกเขารู้ว่าควรทดสอบอะไร นักการตลาดใช้เพื่อเขียนเอกสารสีขาวที่คลุมเครือเพื่อสร้างเว็บไซต์เกี่ยวกับผลิตภัณฑ์ที่ยังไม่ได้สร้างขึ้นบนเว็บไซต์ ผู้คนในการพัฒนาธุรกิจอ่านผิดเพื่อหมุนจินตนาการแปลก ๆ เกี่ยวกับวิธีที่ผลิตภัณฑ์จะรักษาศีรษะล้านและหูดและสิ่งของ แต่มันได้รับนักลงทุนดังนั้นก็โอเค นักพัฒนาอ่านมันเพื่อให้พวกเขารู้ว่าต้องเขียนโค้ดอะไร ลูกค้าอ่านเพื่อให้แน่ใจว่านักพัฒนาซอฟต์แวร์กำลังสร้างผลิตภัณฑ์ที่พวกเขาต้องการจ่ายเงิน นักเขียนด้านเทคนิคอ่านและเขียนคู่มือที่ดี ...
เมื่อคุณไม่ได้มีสเปคทุกการสื่อสารนี้ยังคงเกิดขึ้นเพราะมันมีแต่มันเกิดขึ้นเฉพาะกิจ คน QA ใช้โปรแกรมนี้จำใจและเมื่อมีอะไรแปลก ๆ พวกเขาก็ไปขัดจังหวะโปรแกรมเมอร์อีกครั้งเพื่อถามคำถามโง่ๆ อีกครั้งเกี่ยวกับวิธีการทำงานของมัน ...
หากไม่มีรายละเอียดอย่างชัดเจนมันเป็นไปไม่ได้ที่จะกำหนดเวลา ... ในองค์กรการเขียนโปรแกรมจำนวนมากเกินไปทุกครั้งที่มีการอภิปรายการออกแบบไม่มีใครเคยจัดการตัดสินใจโดยปกติด้วยเหตุผลทางการเมือง ดังนั้นโปรแกรมเมอร์เท่านั้นที่ทำงานในสิ่งที่ไม่มีข้อโต้แย้ง เมื่อเวลาผ่านไปการตัดสินใจที่ยากลำบากทั้งหมดจะถูกส่งไปยังจุดสิ้นสุด ... การเขียนสเป็คเป็นวิธีที่ยอดเยี่ยมในการตอกย้ำการตัดสินใจออกแบบที่น่ารำคาญทั้งขนาดใหญ่และขนาดเล็ก ..