DEV Community

Cover image for Opinion: Architect VS Engineer VS Developer
David J Eddy
David J Eddy

Posted on • Updated on

Opinion: Architect VS Engineer VS Developer

Originally posted on my blog.

Some would say the differences are semantic, some say pedantic, some say titles are a waste of time, I say it matters, and there is a difference. Here is why I think so.

Word Etymology and Meaning

Dictionary.com

Architect

ar·chi·tect/ˈärkəˌtekt/noun

  1. 1.a person who designs buildings and in many cases also supervises their construction.synonyms:designer, planner, builder, building consultant, draughtsman"the great Norman architect of Durham Cathedral"

verb COMPUTING

  1. 1.design and make."few software packages were architected with Ethernet access in mind"

Engineer

en·gi·neer/ˌenjəˈnir/noun

  1. 1.a person who designs, builds, or maintains engines, machines, or public works.synonyms:designer, planner, builder, architect, producer, fabricator, developer, creator; inventor, originator, deviser, contriver, mastermind"the structural engineer's drawings"

verb

  1. 1.design and build (a machine or structure)."the men who engineered the tunnel"

Developer

de·vel·op·er/dəˈveləpər/noun

  1. a person or thing that develops something."a property developer"
    • a person who grows or matures at a specified time or rate."I was a slow developer"
    • a chemical agent used for treating photographic film to make a visible image.

So we have Architect (computing) that means to 'design or make', an Engineer who 'design and build', and finally a developer who grows or matures at a specific time/rate. 'Developer' describes the person's state, whereas the other two describe the person's actions.

Wikipedia.com

Lets append 'software' to each term and see what the mighty Wikipedia gives us:

software architect is a software developer expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms.Software architect - Wikipedia
https://en.wikipedia.org/wiki/Software_architect

software engineer is a person who applies the principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software. Prior to the mid-1970s, software practitioners called themselves computer programmers or software developers, regardless of their actual jobs.Software engineer - Wikipedia
https://en.wikipedia.org/wiki/Software_engineer

software developer is a person concerned with facets of the software development process, including the research, design, programming, and testing of computer software. Other job titles which are often used with similar meanings are programmer, software analyst, and software engineer.Software developer - Wikipedia
https://en.wikipedia.org/wiki/Software_developer

So according to Wikipedia the architect makes high-level design choices, sets standards, and picks the tools. Where as engineer and developer are closely related. We now have two examples of how the architect is distinct from engineer and developer so let's clarify the differences between those two next.

If you know what this is, good for you. If you know what it comes from I would like to know.

Engineer VS Developer

Software Engineer Insider has a great (but short) article discussing the differences. To paraphrase an developer focuses on the coding in a narrow scope. An Engineer understand the 'big picture' and 'client requirements'. Following the entire SDLC of the product. From client request to final deployment.

Jason McCreary puts it short as well:

Developer
A developer executes. Their talents often focused to a single area. Without need for the “big picture”.

Engineer
An engineer designs and plans. Always aware of the “big picture”. With talents in many areas. An engineer can assume the developer role. But an engineer's core focus lies with architecture.

Conclusion

With the above and many other conversations and much research my opinion is formed based on the knowledge and consensus available: Architect, high level choices and tool selection. Engineer, build applying scientific mentality and methodical process. Developers, write the computer code to make it do a thing.

What do think. Am I being overly pedantic? Do you not care either way? Are you an architect and feel insulted when someone calls you a coder? Lets discuss in the comments below.

Originally posted on my blog.

Latest comments (73)

Collapse
 
perpetualwar profile image
Srđan Međo

Developer and engineer is one and the same... Engineer is just more formal of the two.

Collapse
 
alemvik profile image
Alemvik

Software / Architect

They focus on the whole business (instead of individual systems, applications and programs) to determine or give advices about what softwares are to be bought (with or without customizations) and what softwares are to be developed (custom). They also set general guidelines and constraints to be observed when softwares are developed or bought. They choose standards, technologies, frameworks, langages, paradigms, and the tools that has to be followed. Software architects is a role assumed by developers or former experienced developers.

Software / Business Analyst

They help guide businesses in improving processes, products, services and software through data analysis. These agile workers straddle the line between IT and the business to help bridge the gap and improve efficiency. They gather requirements (in a document). Business analyst is a role that could be assumed by developers or former experienced developers.

Software / Developers

They modelize (design that include implementation-specific and technology-specific details) the systems (databases, applications, services, message brokers, etc.) using the information (if any) provided by the architects (if any), the engineers (if any) and the business analysts (if any). Those detailed specifications are intended to programmers.

They are capable of doing all of what is accomplished by the architects, the engineers, the business analysts and the programmers. When they do, By reducing the "assembly line" and since the developers have more awareness on what they already have in their back store (what they already did and can be re-used) and elsewhere, they can deliver quick/cheap interesting solutions.

They gather and set requirements, propose solutions, design and develop softwares for the chosen solution.

Software / Engineer

They solve real-world problems using software principles. They write the design documents for the developers. A design is a model (with algorithms) without any implementation-specific or technology-specific details. A model is a design with those details. Engineers also coordinate with stakeholders. Software engineer is a role that could be assumed by developers or former experienced developers.

Software / Programmer

They create/modify databases and programs, based on detailed specifications provided by the developers.

Collapse
 
sebbdk profile image
Sebastian Vargr

The fact that this is an oppionated subject kinda shows the problem.

Developers pick tools all the time, architects come both as application, software, and building designers, engineers work a number of things from hardware to software and cars..

These kind of generic titles are kinda useless without more descriptors imho.

They fail to describe situations where one person covers more roles, being a developer application, systems architect and engineer sounds stupid. But freelancers do it all the time.

Collapse
 
andresausecha profile image
Andres Ausecha Mosquera

I think i am software developer in some projects and software engineer in others, because sometimes you are required to analyze, design and code. But there are cases in which there is nothing to analyze and you just code

Collapse
 
jmervine profile image
Joshua Mervine

I larger companies I’ve worked for (30K+ employees) there’s a strong distinction between Architecture and Engineering/Development. Typically Architects aren’t expected to write code, but are consider to be more as at a Director level or above without direct reports, driving high level decision making, writing RFCs, etc.

As for the other two, it depends on the environment, but typically Engineer is used as you get farther down the stack from the user, things like Systems Engineer, SRE, Build and Release, etc.

Collapse
 
aleon1220 profile image
Andres Leon

Loved your article. Defining terms in a conceptual agreed way is quite a challenge. I agree with <you. I live th<e definition of engineer (try to)....
One suggestion i would give is referencing some academic definition such as software engineering books and some IEEE articles. Th<e academic people usually define terms at the< beginning of any paper to clarify and set the path....

Collapse
 
david_j_eddy profile image
David J Eddy

An excellent idea Andres; sadly the terms are so vague even now academics have yet to solidify the boundaries. I know in some countries a person can not use 'engineer' in there title without a professional certification. Computing does not yet have an industry wide organization to administer such constraints.

Collapse
 
ianrathbone profile image
Ian Rathbone

I like the pedantic! I for one have always preferred the Engineer title for the exact reason that you've quote from Jason.

Great post :)

Collapse
 
codeposse profile image
T.Hunold

Pfft, made up titles... If what I do on a daily basis defines me, then I am a Sr level III design software user process database recusrionating network help desk lead trainee.

One company's UI Engineer is another's Front End Designer yet the recruiter still says Full Stack but most places don't have an architect. Places that do don't hire architects so I change my title to engineer to find a job when I am looking.

Collapse
 
emilper profile image
Emil Perhinschi

Software developers are the independent guys writing software on demand for smaller clients, often subcontracting parts of the project to (such as graphics) other developers so they could make use of their expertise.

Collapse
 
saiap profile image
sai-ap • Edited

I am a software engineering manager (another world of titles with similar debate as I am observing on this post), will put in my two cents here. I generally hire SW engineers, SW developers, SW architects, etc for roles in my team and project and it hardly matters what titles they hold in their current job. If they can fit the job requirement and have good design and coding skills they are hired. Titles are generally driven by organization business needs and have a lot to do with what kind of product you are going to develop. So we should not get too much carried away by titles. All of them are good. Disclaimer: I started as a 'software engineer' and after coding for 7-8 years moved to management. If I ever go back to coding I will accept any title that you give me which is related to software development.

Collapse
 
andychiare profile image
Andrea Chiarelli

After cache invalidation and naming things, defining a job title is the third hardest thing in Computer Science :-)

Collapse
 
david_j_eddy profile image
David J Eddy

Ain't that the truth.

Collapse
 
jaakidup profile image
Jaaki • Edited

The difference between a software developer and a software engineer...

Think of a developer, he/she could be in charge of the team that would build things, more on a pure software level. Senior software devs have also develop strong personal skills, which allow them to work closely with clients. A higher overview of the entire process.

A software engineer is usually closer to the electrical side, like building interfaces for robots and machines. Thus more focused.

So, according to me and most people I know, that short description you quoted is exactly the wrong way round.


In construction, the Architect draws the picture, the Developer is in charge of organising everything the architect has planned and the engineer is responsible for a very focused job, be it electrical, just a lift, or a bridge.

Collapse
 
vbarzana profile image
Victor A. Barzana

I'll bite in as well because didn't like the comment from Boris.
In my humble opinion an Engineer is a person who has studied computer sciences for at least 5 years covering from the lowest level binary, assembler, data structures, algorithms, security, networking, database, can understand and code in different programming languages and adapts. An engineer degree is not bs guys. Now I take the engineer with a bit more knowledge of Software Architecture, patterns and practice, abstraction and that is your Architect.

Collapse
 
malib profile image
Ali

well I will disagree with you on this to some extent

Software Engineer are those who build the big software or tools i.e. (Google chrome ) and frameworks (angular) or library (React).

Software Developer are those who use the tools of Software engineers and provide creative solutions.

I can be wrong on this : what do you say :)

Collapse
 
grepliz profile image
Liz Lam

Swizec Teller wrote an interesting blog (after doing a data viz project using real salary data) about the how Software Engineers make $13K more on average than Software Developers.

Check it out:

swizec.com/blog/are-you-an-enginee...