15 January 2020
Understanding the subtle, and not so subtle, differences between two of the most in-demand global tech jobs
In the ‘Tech Recruitment’ space, the nuanced differences between software engineers and software developers is an industry topic regularly under the microscope and the fact that there’s still very little consensus ultimately means that the terms are often, and incorrectly, used interchangeably.
However, to software specialists, there’s an obvious and clear distinction in the responsibilities, level of expertise and technical approach to how they sit in the development life cycle.
Still, to the un-initiated the distinction between the two is minimal and often conflated by the fact that software engineers are in high demand and that most tech professionals tend to work beyond their job description in order to keep up with the pace of the change in the industry.
In the end, it’s our job as tech recruiters to ensure that…..
A) we understand who the hiring manager is looking for.....AND
B) that prospective candidates understand what the role is.
This detailed blog piece will arm you with some key information that distinguished the two and aid you to have informed conversations with key stakeholder and decision-makers and effectively evaluate candidates.
THE BASICS: SOFTWARE ENGINEER VS. DEVELOPER
As previously mentioned, and generally speaking, the titles are often interchangeable. However, to IT Professionals, there is a clear and obvious difference between the responsibilities in each of the roles.
The team at Fullstack Academysays it best:
“Software engineers are the architects; software developers are the carpenters. Software engineers are involved in the development life cycle, but not all developers are engineers.
Software engineers apply engineering concepts to design software that addresses the user’s specific needs and requirements. These tech professionals approach problems logically and develop systematic solutions.
Conversely, developers have the ability to be more creative in their role, determining how to best build software. Rather than considering the whole system, software developers have a smaller scope of work, addressing one project or stage of the development process at a time”.
SO WHAT DOES A SOFTWARE ENGINEER ACTUALLY DO?
The commonly accepted definition of a software engineer is a tech professional who applies engineering principles to the “design, development, maintenance, testing, and evaluation of the software which underpin how computers or other devices containing software work.”
SOFTWARE ENGINEER JOB FUNCTION
Software engineers tend to be concerned with the structure and stability of an entire system and their primary function is to both ensure and safeguard that the developed software does what it’s intended and that components — applications, networks, servers, etc. — are all aligned and work together.
In many cases, engineers tend to outsource development tasks to software developers and instead focus on ‘MACRO’ elements of the programme, looking at the construction of the system as a whole. Engineers also tend to be more strategic, involved in the entire development life cycle from top-to-bottom, but also possess the relevant skills, knowledge and experience to work on specific development tasks if needed.
When software bugs arise, engineers will look to address the problem within the context of the whole eco-system - considering the implications of this problem and the knock-on impact on other elements within the framework? Their goal is to find a long-term solution that minimises repercussions across other parts of the system.
Because they need to think about how applications interact with each other, engineers should be armed with the knowledge and experience of a wide array of languages and tools. They also tend to work in team structures, making their role more collaboratively driven.
SO WHAT DOES A SOFTWARE DEVELOPER DO?
With a slightly smaller remit than software engineers, software developers tend to have a slightly more creative role. They're fundamentally responsible for executing the development plans passed down by the engineers and physically programming and coding the software into existence.
SOFTWARE DEVELOPER EDUCATION
The leading software developers all tend to be self-taught, with a reported 73.7% of them attributing their growing skill base to at least some self-teaching.
Though formal training is typically expected to hold the position of a software engineer, software developers can climb the ranks to engineer status by proactively working on and managing additional aspects of the development life cycle. The more ‘hands-on’ they’ve been through various stages of the programme, the better chance they have of making that strategic leap.
SOFTWARE DEVELOPER JOB FUNCTION
A software developer’s primary responsibility is to focus on building one part of the system at a time. Developers tend to be more concerned with the implementation of the development solution and often work independently. However, traditionally being more hands-on, they are more aware of the structure and intention of the software than programmers, who are tasked with writing and correcting code.
Often, developers are specialised in front end or back end development, or within a specific tech-stack or language, which in turn narrows their scope of work, whilst allowing them to be more creative in the software build how they go about addressing problems.
Software developer roles are often blocked off as junior, mid-level, senior or lead, whilst junior developers are most similar to programmers, working with fundamental web technologies like HTML and CSS.
At the other end of the spectrum, lead software developers tend to resemble software engineers, with oversight of the entire process, and focusing on development strategy across multiple heavier languages.
THE DEBATE: SOFTWARE ENGINEER VS. DEVELOPER
Despite the differences laid out above, the software engineer vs. developer debate remains largely unresolved. That’s due in part to the explosion of the now ubiquitous tech industry - because the bigger the space, the more responsibilities there are and the more roles that emerge and develop within it.
The separation of development and engineering departments is far more common in larger organisations, however, in startup cultures where employees are often expected to take on responsibilities outside of their core job requirements, titles are more flexible (some would argue tenuous) and far less defined.
For this very reason, job titles are largely left to the company’s discretion. Whether an employee is described as a software engineer or developer depends predominantly on individual skill sets and the company’s own internal definitions.
As a tech recruiter, speaking with the CTO and hiring manager directly allows you to understand the specifics of the role you need to fill before writing a detailed job description. Use this guide to inform your conversation - if they say they’re looking for a software developer, but a degree in engineering is essential, then you can label the role as a software engineering position.
Once you’re clear on which software expert your client needs, try and hone in on their employer branding to further attract the very best candidates in the market.
You could even go a step further and try and establish what software engineers look for in the ‘perfect opportunity’ so that you can create the most compelling offer possible.
If you're interested in putting the knowledge into practice, we're hiring. firstname.lastname@example.org
If you're interested in making the leap from developer to engineer, we have a host of roles that might be suitable. www.optimsusearch.com/jobs