For many years now there has been the debate on whether a Software Developer and a Software Engineer role are one and the same. And more recently this has been a topic of interest within our leadership team. So we ask the question, what is the difference between a Developer and an Engineer? It really does depend on who you ask! The distinction comes from organisations using their own experiences and shared knowledge based on their needs.
What is a Software Engineer?
Software Engineers see the bigger picture, through applying principles and practice of software engineering in design, architecture, test and evaluation. They are chefs in a large scale kitchen that provides a service to 5 restaurants with the same quality of the one. Rather than being interested in solving the immediate problem, they are focused on that same problem while reducing the trade-offs to other parts of the system and architecture. They are interested in understanding what good looks in the overall big picture through scalability, resiliency, testability, usability and observability. They will be highly collaborative, with a holistic and practice driven mindset.
What is a Developer?
Software developers are responsible for writing the code, evaluating the current system, and improving it. They are the creators, figuring out the software needs of the customer through discussion. They take the functional specifications gathered and deliver the application required, within a specified time and usually in isolation.
So What is the Difference Between a Software Engineer vs a Developer?
While in some cases a Software Engineer and a Software Developer are used interchangeably, this is a common misconception. The key thing to remember is that a software developer writes code that focuses on the current task without the need to have a look at the bigger picture. On the other hand, an engineer collaborates and writes code with an eye on testability, supportability, performance, scalability, and reliability by applying engineering principles and practices to software development.
Why is this an Important Conversation?
Technology is unpredictable, it is fast-paced and constantly advancing. In my experience, the shift has had successful outcomes in creating a culture where teams are highly collaborative, are focused on the customer experience, passionate about growth and sharing knowledge, where our people have the space to be creative thinkers and innovators, who experiment, fail fast and learn, ownership as a team whether it is quality or code base.
As our industry changes with time, it becomes very apparent that we have to evolve our approaches, practice, and mindsets to propel our organisations into the future with digital transformations, modernisation and cloud adoption.
Recent Comments