Designing systems requires a deep understanding of the problem statement and it is better to never write your first line of code unless you understand the context, input, expected output, and potential outcome well; because;
Engineering is not about writing code, but about writing code that matters.