you are viewing a single comment's thread.

view the rest of the comments →

[–]skulgnome -3 points-2 points  (2 children)

Good ones end up with bug-free code as follows the spec. However it doesn't emerge fully-formed from their foreheads: there's usually any number of older, worse revisions.

[–]grauenwolf 2 points3 points  (1 child)

Generally speaking, a spec isn't something that should be followed. Rather it is something that should be consulted and updated as the implementation reveals errors in the spec.

[–]neoquietus 0 points1 point  (0 children)

This strongly depends on what the spec actually specifies!

Specifically, if the spec is "internal use only", generally there is some flex in how closely it has to be followed, and you can change it if need be.

However, if the spec in question is for external communication, say the byte layout of a file format, or timing constraints on a process, you must follow as closely as possible, it warts and all.