Fungsi paling penting dari sebuah spesifikasi adalah merancang program . Bahkan jika Anda mengerjakan sendiri semua kode, dan Anda menulis spec semata-mata untuk keuntungan Anda sendiri, tindakan menulis spec - menggambarkan bagaimana program bekerja dalam detail kecil - akan memaksa Anda untuk benar-benar merancang program ...
... ketika Anda mendesain produk Anda dalam bahasa manusia, hanya perlu beberapa menit untuk mencoba memikirkan beberapa kemungkinan, merevisi, dan meningkatkan desain Anda. Tidak ada yang merasa buruk ketika mereka menghapus paragraf dalam pengolah kata. Tetapi ketika Anda mendesain produk Anda dalam bahasa pemrograman, perlu berminggu - minggu untuk melakukan desain berulang. Yang lebih buruk, seorang programmer yang hanya menghabiskan 2 minggu menulis beberapa kode akan sangat terikat pada kode itu, tidak peduli betapa salahnya ...
... Saat Anda menulis spec, Anda hanya perlu mengkomunikasikan bagaimana program seharusnya bekerja satu kali . Semua orang di tim bisa membaca spek. Orang-orang QA membacanya sehingga mereka tahu bagaimana program seharusnya bekerja dan mereka tahu apa yang harus diuji. Orang-orang pemasaran menggunakannya untuk menulis kertas putih vaporware samar-samar mereka untuk muntah di situs web tentang produk yang belum dibuat. Orang-orang pengembangan bisnis salah baca untuk memutar fantasi aneh tentang bagaimana produk akan menyembuhkan kebotakan dan kutil dan barang-barang, tetapi mendapat investor, jadi tidak apa-apa. Pengembang membacanya sehingga mereka tahu kode apa yang harus ditulis. Pelanggan membacanya untuk memastikan pengembang membangun produk yang ingin mereka bayar. Para penulis teknis membacanya dan menulis manual yang bagus ...
Ketika Anda tidak memiliki spec, semua komunikasi ini masih terjadi, karena itu harus , tetapi itu terjadi ad hoc . Orang-orang QA bermain-main dengan program mau tak mau, dan ketika sesuatu terlihat aneh, mereka pergi dan mengganggu para programmer lagi untuk mengajukan pertanyaan bodoh lain tentang bagaimana hal itu seharusnya bekerja ...
tanpa spesifikasi terperinci, tidak mungkin membuat jadwal ... Dalam terlalu banyak organisasi pemrograman, setiap kali ada perdebatan desain, tidak ada yang pernah berhasil membuat keputusan, biasanya karena alasan politik. Jadi programmer hanya mengerjakan hal-hal yang tidak kontroversial. Seiring berjalannya waktu, semua keputusan sulit didorong sampai akhir ... Menulis spec adalah cara yang bagus untuk menentukan semua keputusan desain yang menjengkelkan, besar dan kecil, yang ditutup-tutupi jika Anda tidak memiliki spec. ..