What is the process of designing? How does the process of designing defer in each field, such as UI design and database design? As a student who does not know much about designing, these questions seem to me something that is far away from what I can comprehend and attain.
However, as a student who is willing to work as a professional in technical fields, I personally think it is crucial for me to know, or at least be aware of the fact that the process of designing is important in even SE.
The book called Code Complete(2nd Edition) says something about designing:
Regardless of how it's done, small projects benefit from careful design just as larger projects do, and recognizing design as an explicit activity maximizes the benefit you will receive from it.Well, it already sounds like designing is critical in any technical field, even in the process of Software Engineering.
Throughout the chapter Design in Construction, the book explains a lot about the process of designing, such as the common characteristics of a high-quality design, the steps of designing in SE, and more. The sentences that caught my attention from this book were below:
Because design is nondeterministic, design techniques tend to be heuristics—"rules of thumb" or "things to try that sometimes work"—rather than repeatable processes that are guaranteed to produce predictable results. Design involves trial and error. A design tool or technique that worked well on one job or on one aspect of a job might not work as well on the next project. No tool is right for everything.It means that the process of designing is so subjective that you will need to find out the pattern to be high-qualified design, or what makes the design really better. It made an impression on me; the book taught me that the shortcut for improving design skills is actually to design, as it is for programming and many other things.