Technical Specification
From IndieGuide
The technical specification (short "tech spec", or just "spec") is about programming and implementation. Put in relation to the Design Document, the technical specification outlines in technical terms how you want to implement the design document. In other words, while the design document is about the "What", the spec is about the "How".
It makes good sense to keep both separate. Certainly, there are interdependencies, e.g. due to technical limitation you cannot implement a feature, or during coding or specing the technical specifiation, you come across a technical feature that could be used for a great effect in your game. However the separation allows you to focus on each area one at a time. Another reason is that the technical implementation could be different if, for example, you implemented the same game on two completely different platforms.
Contents |
Purpose
There are a number of reasons why the time spend on a tech spec is worthwhile.
- If you start straightway with coding, you will not have the comprehensive picture how all the different parts of your software will fit together. Most likely you will overlook dependencies and relationships, and again and again rewrite code to make things fit together. You might even hit a problem that cannot be resolved with adjustments and you have to start from scratch. On the other hand, if you had spent time on a spec, you are forced to look at the big picture and how things will work together. The key here is that you have done this before you started coding, as a result your code will fit together much nicer (although you will still find areas you haven't considered - it's hard to cover everything on paper, particularly with the complexity involved in software).
- The architecture / system design you might come up in a spec is more likely to be able to accommodate future changes, fixes, enhancements and additions than if you just start coding because you were planning with the big picture in mind. This will pay back in the long run.
- The spec is a much better plan for you as a programmer. You know what needs doing. Basically, you could just tick of things in the spec as you go about implementing them. Hence the spec is useful as a basis for your Project Management. Doing this with the design document is much more difficult, as that document is only concerned with the final results, not how you get there.
Outline
It would be a waste to attempt reproducing what Tim Ryan has done so wonderfully in his comprehensive article The Anatomy of a Design Document. Move beyond his sections on design documents and you will get to the technical specification.
