by simojo on 9/15/23, 1:14 PM with 1 comments
by ilaksh on 9/15/23, 3:29 PM
Programmers always have to deal with tradeoffs and maintenance.
They always need to have some kind of process.
They always need to use tools and naturally create them.
And the actual software design is part of the engineering also.
The most important part of software engineering in my mind mind are the error-correcting feedback loops. 100% of programmers use these, whether it's just thinking about their design and iterating on it, or using a compiler, debugger, tests, or user feedback, etc.
The idea of making the distinction between software engineering and programming is usually brought up to support some kind of cargo-cult belief about particular "best practices".
This isn't to say that we shouldn't study software engineering or have tools, processes, frameworks, etc.
But it seems that people get confused into thinking that the number and heft of frameworks, tools, tests and complex processes that you add into a programming task determines whether you are a "real engineer" or just a "programmer".
In reality, you cannot produce and maintain software effectively at all without using knowledge, skills, and tools that are in the software engineering domain.
And often using a lighter-weight process and tooling but with tight feedback loops with end users can be more effective than, for example, a complex set of tooling and processes that have long iterations.