DEV Community

asofteng
asofteng

Posted on

What's the difference between a software developer and software engineer?

As a grade 10 high-school dropout with no formal eduction, who decided to skip school and jump into a career in development, I find my last two careers, the first question they had for me is, What is the difference between a software developer and software engineer? - A question, at it's forefront, that struck me off guard, and helped me appreciate the world of development.

At first, my thought process was to answer with a naive question, "Is there really a difference between a developer and engineer?" - This was struck with hardship from the potential employer at the offset, and indicated there are differences, they asked me to, at a high level, name 10 key differences between a developer and an engineer.

I know what you're thinking, how am I supposed to answer that as a grade 10 dropout? It's a difficult question to answer, so I had a think about it, and here's what I found:

A Software Developer Is

  • someone who knows code to any degree
  • someone who is able to understand to any degree the requirements and how they could implement it
  • someone who is passionate about the code they're writing
  • someone who isn't afraid to speak their mind

A Software Engineer Is

all of the aforementioned traits, in addition to...

  • someone who can quickly and easily scope and understand requirements in depth
  • someone who is able to fully digest and design the systems to be scalable within a reasonable technical capactiy
  • someone who can speak fluently about the design decisions and principles to non-technical individuals and assist them in understanding the decisions and reasonable requirements made
  • someone who, at the off-set, willing to, able to, and will interrupt the design or development process and raise concerns over practical and impractical development guidelines and decisions
  • someone who, not only can determine how they can fix a problem or implement a feature, but can also determine how others can, and is willing to assist along the way

With this in mind...

How would you define the difference, if any, between a software developer and software engineer?

Top comments (4)

Collapse
 
ben profile image
Ben Halpern

I understand the terms to be more-or-less interchangeable, but I prefer the developer because engineer has specific connotations outside our industry that could cause confusion.

Collapse
 
sam_ferree profile image
Sam Ferree • Edited

Engineering, in any applied science, is (in my opinion), a profressional who places a high importance on:

  • Efficiency: Maximizing value, Minimizing Cost
  • Reliability: Does it break? How often? How hard is it to fix when it does?
  • Re-usability: This goes back to minimizing cost, by minimizing human capital. Don't reinvent the wheel.

I know some developers who would probably not want to be known as software engineers under these terms. I'm okay with that. These are what I value in software development, and why I refer to myself as an engineer.

I know plenty of people who mix solvents but aren't chemical engineers, plenty of people who use AutoCAD that aren't mechanical engineers, etc.

Collapse
 
afridi_1977 profile image
Munawar Shah Afridi • Edited

"A software engineer is a person who think, gather requirements, develop, test, debug and deploy." "While a developer is a person who works in a pre built and developed environment by software engineers for result oriented objectives"

Collapse
 
avalander profile image
Avalander • Edited

I think that trying to differentiate between software developer and software engineer is merely playing with semantics. Sure, outside the software industry, there is a clear definition of what an engineer is. However, if you look at the software industry, people with both job titles do essentially the same job.

I have yet to hear of a company that employs software developers and software engineers, has different role descriptions for them, and they are actually assigned tasks different enough in nature to justify having two titles.