My notes on "What is Software Design?"

by Jack W. Reeves!
The final goal of any engineering activity is some type of documentation.
Is it?
This article assumes that final source code is the real software design and then examines some of the consequences of that assumption. 
If source code is a software design, then actually building software is done by compilers and linkers. 
OK.. And if it is not the design but rather "building the software", what is done by compilers and linkers? You did start with an assumption after all..
software designs tend to be incredibly large and complex.
In software, even the smallest piece of code is likely to be revised or completely rewritten during testing and debugging. We accept this sort of refinement during a creative process like design, not as part of a manufacturing process. No one expects an engineer to create a perfect design the first time. 
I am not sure if I fully agree..
The overwhelming problem with software development is that everything is part of the design process. Coding is design, testing and debugging are part of design, and what we typically call software design is still part of design. Software may be cheap to build, but it is incredibly expensive to design.
Software is cheap to compile..


An interesting article it is, and I think I see how the author sees the source code as design. But I am still not sure if I fully understand the word: design, how it is used by people like design as a process and design as a product, which makes it difficult for me to understand the whole concept of "design". People seem to use it ambiguously.

I am not sure whether source code is the design, and programming is designing. Maybe there is no hard separation between design and building in Software Engineering?

But I agree that one should not be afraid to actually write code "when designing software", I too find it "pushing too hard" to just use UML to "design software".

Overall, an interesting read, definitely recommended!