While it's true that the engineer is also a programmer, and there are some design duties included in the core job functions, there are also some very fundamental, critical differences in the manner in which software engineers, programmers, and designers complete their work. Many engineers would also argue that there is a marked difference in the quality and performance of the products they produce as well.
Software engineer jobs take a more formal approach to the process of programming software. The manner in which engineers complete their work is much more similar to traditional engineering processes than it is to software programming or designing methods.
Software engineers are often involved in the most complex of design or programming activities. Though every day, run of the mill programs can be designed by less skilled people, many programs can not be trusted to just any old programmer.
For example, programs that control important processes – especially in circumstances where human lives may be lost if an error occurs in a program – are primarily the realm of highly skilled software engineers. After all, you do not want the software that runs a key piece of medical equipment or that which drives the operating system of a nuclear submarine to fail.
This is perhaps the most challenging aspect of design engineer jobs with which incumbents must constantly contend. They are tasked with including the smooth and efficient operations of incredibly complex and sometimes frightening processes with computer enhanced systems.
Design engineers are tasked not only with creating a software program that will serve the basic needs of a business, organization, or other client, but they must also foresee the potential pitfalls associated with the program as well. They must be able to grasp the technological concepts of the methods or practices with which the program is intended to interface and design the software appropriately for the highly technical, and often potentially dangerous, environment in which it will be used.
Although the average programmer or designer may be able to afford a few minor glitches, for those working in design engineer jobs, there is often no such thing as a minor glitch. Of the software fails, the consequences can be great. The pressure that design engineers face on a daily basis is splendid for this very reason.
Software engineers also face some other unique challenges in the IT world. They must often complete a lot more paperwork than most IT professionals. Once again remaining true to the engineering trade, software engineers will draft designs, test them for quality, integrity and performance, and will frequently redesign them several times before moving from paper or prototypes to the real deal. In fact, many of those who work in software engineer jobs will spend as much as 70 – 80% of their time dealing with paperwork and only 20 – 30% actually writing code for the software itself.