Whether building a new system, or trying to untangle some untenable rats nest of code — One should have an image of the ideal state in their mind.
If we draw up the best plan we can, thinking in terms of the perfect – regardless of its immediate feasibility – we can then put that on the wall and work towards it.
All changes to code come in two forms: Bug Fixes and Feature Enhancements. There are many decisions to make in each case. By holding up an Ideal, it helps us with those decisions. We choose the path that helps the code converge on some well conceived plan rather than letting it oscillating around, as is often the case.
The ideal plan is rarely realized but that’s not the point. By aiming at one target we help the general direction of all the arrows.
So we must spend a lot of time designing the ideal. To do that we need to create documents such as these:
– Problem Statements
– Use Case Diagrams
– Data Model Entity Relationship Diagrams (ERD),
– Class Diagrams
– Sequence Diagrams
– Wireframes, and
– Mock Reports
It is not enough to simple understand a single aspect of the system and go to work implementing it. We must take the extra time to see how that component fits into the larger whole. The benefits of which creates flexible, easy to use and fun to maintain code.
It was Abe Lincoln who said: Give me six hours to chop down a tree and I will spend the first four sharpening the axe.