Just a short list of terms which we've appropriated for software:
Bugs that don't bite, computer mice that don't squeak, bits you can't bite, windows you can't see through, desktops which do not involve desks, perls you can't wear, pythons which are neither British or snakes, rubies which are not red, gnu's which do not roam plains, dog-fooding which involves neither dogs or food, running which does not involve feet, killing things which does not involve death, zombies which are real, frameworks which do not involve lumber, libraries which do not involve books, bricks which cannot be built with, ajax you cannot clean with, bandaids that do not stop bleeding, androids which are not humanoid, chatting without talking, hits that are not violent, etc.
If we're going to perform all these pedantic semantic antics (did I really just do that?), then allow me to ruminate a moment: I do "develop" software. "Develop" has this connotation in my mind of a slow, meandering, possibly goal-free path. You "develop" skills over time - are they ever fully developed? Also, you "develop" film (and its prints) which certainly takes time, but is also kind of a curated, artistic process. Although I do feel that, at times, I sculpt, craft and develop a bit of software, I do this with ideas that are not quite formed; goals which are unknown; a kind of "I'll know it when I see it" project.
I do "architect" systems. I have to decide on a backing store and the shape of the data in the store: RDBMS? KV Store? binary blob on disk? I have to decide on a communication method between the app and the data store: local, native API? Network socket using the store's client libs? HTTP CRUD? I have to consider the ways the user will use this app: touch? mouse? keyboard? does it need new gestures? "hot keys" or "chording"? I'll admit the user interaction is a bit more art, but there's usually some kind of specification for it.
I do "engineer" systems. This feels more like implementation to me: I implement that data design; I implement the communication code (APIs don't plug themselves in to my project); I work around pitfalls and shortcomings continuously ...
I am an artist, a sculptor; I am an architect and engineer; I am a handy-person and problem solver. Hi, I'm delinka and I create software.
Developer.
Peter Naur (of Backus-Naur form) called it "theory-building". https://dl.getdropbox.com/u/502901/naurtf.pdf
Now, if the World of Academia could attempt to catch up with technology (I know, it's a mad mad world that travels at high velocity and may even continue to accelerate, but a guy can dream) and start offering detailed courses of study for Computer Engineers & Architects, Data Engineers & Architects, Software Engineers & Architects, etc ... will the physical engineering world still have a problem with sharing their title?