And I was struggling to explain them :
- I automate things... ok, but what ?
- I make things simple... ok, that's cool but how ?
- I give to computer what human can do... ok, so you're the guy why I lost my job ?
A software designer is like a teacher, he is giving name to things and actions for someone else.
Ok so what is the difference between a software designer and a teacher ?
The software designer does not know what he is talking about at first.
The teacher already knows his lesson.
The difference is significant,
The software designer must develop skill to search for information : Finding the right person, the right website, the right book.
The teacher must develop skill to improve information retention of the students.
The difference between information retention and memory is also significant.
The teacher is not limited to train students to memorize a text perfectly.
His goal is not to improve memory, his goal is to print his lesson into the students' brain.
Between the software designer and teacher, the output is also different :
In one case you are a bunch of students knowing more,
In the other case you are ready to translate the knowledge to your computer.
The next step after software design is programming : the software designer become a programmer.
But since the programmer do not really know all the domain he has just learnt (and which can sometime take several year to acquire), he will repeat this cycle periodically.
From programmer to software designer to programmer.
Programmer and Software designer was used to be two different jobs, for two different activities...
But let's be honest, do you think it's a good idea to let a teacher teaching when he knows nothing about what he is talking about ?
So my job is software developer I'm both a software designer and a programmer. But not at the same time.