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)
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.
Engineering, in any applied science, is (in my opinion), a profressional who places a high importance on:
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.
"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"
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.