When you think about the data first you can usually synthesize the program. It&#x27;s almost a game now to try and write a DOOM engine from only the description of the WAD format and its wonderful documentation. I&#x27;m under the impression that if you think about your data and how to serialize it first the code will fall out of it.<p>So I&#x27;m starting to think more about formal specifications and documenting serializations formats first and worrying about the code second.<p><i>update</i>: punctuation corrections