Software is a product of writing that is intended to direct a computational effort.
Engineering is the discipline of creating or improving systems such that they are reliable, scalable, maintainable, and performant.
Taking the title of software engineer implies that one has:
- Education pertinent to software development
- Experience in developing software
- Ethical action in performing engineering acts
It is accurate to say that not all software developers are engineers. People who produce software by rote or by implementing patterns of output based on pre-defined systems and frameworks are not necessarily "engineering" solutions. This is akin to other fields: researchers discover a novel technology, engineers work out the implementation, and technicians do the work. Each role is essential and requires a different make-up.
To expore the idea of "software engineering" and codify its elements.