4 ms·
Yes, you can forget about important parts in code. Been there, done that. Been there, seen that. Just because the code passes the developer's unit tests doesn'
by psranga 17y ago
Yes, you can forget about important parts in code. Been there, done that. Been there, seen that.
Just because the code passes the developer's unit tests doesn't mean that nothing important has been forgotten. Most errors in programs are due to errors in comprehension. Spec review is the fastest and cheapest way to catch those problems. I've done this innumerable times.
Spec hate is a mystery to me. On the one hand, most programmers agree that shorter programs are easier to understand (pg articulated this well), so we go for DSLs, high-level langs etc. A spec is the ultimate short program.
I find specs very useful before starting on a project. It's much easier to for non-programmers (who may be domain experts though) to comment on the completeness of the proposed solution when they see a spec. And developers benefit from seeing feedback before writing code because it's easier to rewrite text than code (Spolsky said this well).
I'm undecided about maintaining specs to be in sync with code forever though. I don't do this except when I make big changes.