There are countless jobs in software development and software engineering. But what’s the difference and which one are you best suited for?
Many top tech companies are crying out for tech talent as the sector goes through a skills shortage.
While it’s not ideal for the industry, it’s a good time for jobseekers to go looking for opportunities.
Among the numerous prospects in tech, talented software developers and software engineers are always being sought after.
But, while there is a difference between a software developer and a software engineer, many qualifications and requirements can look quite similar when it comes to applying for these jobs.
So, what exactly is the difference between them? How can you find out which job listings you’re best suited to? What should you call yourself?
Felim O’Donnell, director of operations at Liberty IT, said the main difference between a software developer and a software engineer is asking, ‘Why?’
“The difference between engineers and developers is that a developer takes functional specification and delivers the code required within tight parameters, essentially completing the task in isolation, without understanding or oversight of the project as a whole,” he said.
“On the other hand, an engineer is someone who thinks about the design, goes back to the business with questions and suggestions, and thinks about the impact on the business and the end user. They always ask, ‘Why?’ and, ‘Is there a better way to do this?’”
For O’Donnell, this way of thinking came to him through his own career journey.
“When I started writing computer programmes professionally, back in the 1990s, it was a very different world to the one I find myself in now,” he said.
“The Agile Manifesto was still a few years away from fruition and consultants around the world were proclaiming the wonders of SDLC, or Waterfall project delivery.”
O’Donnell said that during his first three years as a software developer, his role was to write and test unit software based on a functional specification. After that, he went travelling and got a job working for a small IT company as a contract programmer.
“Everyone was involved in the full life cycle of the product and they were encouraged to have a solid understanding of why we worked the way that we did,” said O’Donnell.
“There was a robust code review process in place for a start – not something I was used to – and I got some strong feedback on many of the bad habits I had picked up over the previous three years.”
Upon his return to Ireland, O’Donnell took up his former role as a programmer but had a different mindset about the job.
“I started questioning our processes and why they had been developed that way. It made many people uncomfortable as we soon discovered that nobody really knew – we had just always done it that way,” he said.
“I set about trying to make a change, introducing code reviews to improve both code quality and coding standards.” It was then that O’Donnell started seeing himself as more of a software engineer than a software developer.
How do I know what job I should go for?
O’Donnell said in the industry, the terms ‘software developer’ and ‘software engineer’ are used interchangeably. “If you go for a role that is advertised as a developer role, you could be interviewing for either.”
He advised candidates who are applying for a role that says ‘engineer’ in the title to be prepared to ask and answer questions about how code fits in the overall context.
“At Liberty IT, I believe the difference between engineering and development to be all about the magic ‘why’ question,” he said.
“We are working to build and cultivate a culture of curiosity, continuous improvement and constant learning, where everybody understands why they are developing their particular element of software.”
When it comes to the skill sets of each job, O’Donnell said a software developer and a software engineer don’t differ much. “What makes all the difference is the person’s mindset and appetite to learn,” he said.
O’Donnell advised prospective software engineers to ask themselves ‘why’ often. Ask yourself if someone new could pick up where you left off from a particular piece of code. Think about how it’s helping people in the future and ask if the way you’re doing it is the most efficient way.
Are you simply following a process or do you understand the process as you’re going through it? These are the questions and answers that highlight the difference between a software developer and a software engineer.
O’Donnell added: “At Liberty IT, we are very specific about using the term engineer, as it is that level of questioning and consideration that we expect from anyone involved in writing and testing code, from the most junior levels upwards.”