Putting back the “engineer” in “software engineer”
Foreword
What is the difference between a “software developer” and a “software engineer”?
I understand that titles such as “software developer” and “software engineer” have been overused so much that they can mean almost anything today.
Knowing the difference is essential, to know what value an engineer brings.
The craftsman
A craftsman can build a solution.
A good craftsman will also test if the solution works and try to make it work.
Software developers are craftsmen.
The engineer
An engineer will also test how well the solution works.
It requires the engineer to know: “what the solution is supposed to do” and not only: “what the solution is doing”.
Engineers also test the tools, methods, materials, etc., like bricks in construction, in order to use the optimal one: Absorption test, Crushing strength test, Hardness test, etc.
Therefore, a software engineer needs skills in both “software development” and “testing”, which enables proper modelling and prototyping.
The software engineer also needs to know how to test the tools, frameworks, algorithms, coding language, etc. to make a baseline of them.