When you're talking about a profession though, engineer means something very specific. It means that you're trained and licensed and can be held legally responsible if whatever you're building should malfunction. Referring to your profession as an engineer when you don't meet those criteria is a bit disingenuous. It's akin to the difference between calling yourself a doctor because you went to medical school, and calling yourself a doctor because you got a PhD in english lit.
This is a good point. Traditionally, engineering is more synonymous with structures, engines, tools etc. Where someone takes the prepared plans and develop the final product, they are referred to as a developer/builder/tool maker. Where (usually a team) e.g. architect/structural/mechanical/civil people etc.. work on the design/prepare the plan, they are referred to as engineers. Software developers or even software programmers take the prepared plan or design spec and write code. The software architect / software engineer (ausually a team also) etc.. are responsible for preparing the plan / design spec. Now to cap it all off - there is a middle ground - called an analyst/programmer who analyse, design and develop a solution. (The creative hair dresser - could also accommodate this spot middle ground).