I stumbled across this introductory Pascal book at a relative’s house and was intrigued by a brief section called The Phases of Development, which breaks the task of programming into four phases:
Clarify the problem requirements.
Design a program strategy.
Specify critical data structures.
Write the program statements.
I particularly love some of the quotes on problem clarification:
Surprisingly, clarification of the problem is a major phase of the process. It would seem reasonable that a clear and precise statement of the problem would be given but in fact this is rarely the case and more programming disasters can be blamed on failure in this regard than any other.
Today’s coding skills won’t be relevant in thirty years, but we’ll still need to clearly define the problem.