Tl; dr: Title does matter.
Sunlight is something you can not always find in Amsterdam. Therefore, it is valuable. If it is more than 15°C outside (59°F), and there is enough sun out there, you can find the Dutch everywhere in the beautiful parks of Amsterdam. On a day like this, after working hard before lunch, my colleagues and I wanted to combine our lunch break with a beautiful Keizersgracht view. While having a friendly chat with a bunch of smart people, a girl joined our conversation by introducing herself. It turned out she was working in the same building with us. She finished her introduction by asking the question: “What do you do, guys?”
“Oh, we are Software Developers and working at . . .” I got a “hey, hey, hey” here.
“We are engineers, aren't we?”
“Does that matter?”
Indeed, I was wrong. He had a point, and it does matter.
For me, with all my respect, I couldn't see much difference between a Software Developer and Software Engineer. However, the meridian salary gap between those two titles (based on the information who call themselves as that) does not say the same. According to Glassdoor, it is 25K for the US. A beautiful BMW can fit into this gap, right? So, of course, there should be some differences between these roles.
I discussed it a bit with the people who are “Engineer, not Developer.”
Almost all of these people think there should be some theoretic knowledge required of Software Engineers. That makes sense. Indeed, it is a big discipline that covers plenty of problem-solving concepts that are being developed day by day. But without much exception, all of these people also think having a formal education in this field is a must in order to further define yourself as an engineer. However, I’m afraid I have to disagree with that. Even though I studied for a bachelor’s degree in Computer Engineering, I believe universities are not the only place to learn about Software Engineering. There are plenty of resources around, like books and online courses.
Also, education should not be the only thing that matters to be an engineer, right? What practices are unique to engineers as distinct from developers? What makes the difference in real life? Applying software engineering practices, of course, you might say. That was the confusing part for me. Take the design pattern concepts of Software Design field as an example. When I apply them, would people call me an engineer?
That is confusing, indeed, because there is no such concept as Software Developering; instead, we have Software Engineering. And the only concept-specific boundary we can draw is between Programming and Software Engineering. However, this is off-topic.
As far as I got, this part is not as clean as it was with the topic of education, in large part because there is no consensus. However, most people think of engineers as architects. You might think an engineer plans, whereas a developer applies. I am also not sure how this works in real life. I see a lot of people calling themselves Software Architect (not Software Engineer) and Glassdoor puts an extra BMW for this role. Let’s say this is a wrong assumption.
Another thing I heard often is that a software engineer is a jack of all trades, whereas a software developer has proficiency in a single programming language. Well, this might be something, but being able to code in different languages also sounds fallacious. Of course, it is good to know some pros and cons of different coding languages, but what is the benefit of having lots of engineers in your company if they are not good enough as developers to write code in a language you choose?
Personally, I still can’t see a clean line between developers and engineers. However, people I talked with helped me make some progress in understanding the differences between these two titles. With their help, I will start calling myself an engineer rather than a developer since that better fits my professional responsibilities. Still, again, the difference is not crystal clear to me.
So, what do you think about the differences between a developer and an engineer?
PS: You can read Software Engineering at Google to understand the distinction between Programming and Software Engineering.