So, I am currently doing a big coding project, codenamed "Joe", and I have an observation I wanted to share.
I seem to be going through three steps in my development process:
- General planning
- Coding to deliver functionality
- Unit testing and optimization
Now, part of this is due to my impatient nature. I want the results as soon as possible. In theory, I could do more of the optimization during the planning stage, and more of the unit testing during coding.
However, I think there is also a valid point that not all code requirements can be planned out. Some obstacles or "inspiration" may occur during coding, and then we still need the optimization step at the end.
Incidentally, I liken the optimization step to taking the parts of a machine out, cleaning them and going over them, then putting them back in.