Are you an Engineer?
If you don’t use mathematics in your day to day work, you aren’t an engineer. All engineers (say those who build bridges, or space craft, or cars) make heavy use of mathematics and/or hard sciences like Physics on a regular basis…
The title “Software Engineer” is (most of the time) a particularly deceptive one. To be accurate it should [be] something like “Software Maintenance Worker” or “Software Handyman,” but I guess it is easier to hire someone if his job title is “Rodent Officer” instead of "Ratcatcher.”
I’m not sure that is an unassailable definition of Engineering, however it seems close enough that quibbling over the definitions of modeling and mathematics wouldn’t add a lot of value. The discussion of appropriate job titles for enterprise software development didn’t really resonate with me (although I quoted them for shock value). Instead, I was moved by the question of which parts of software development are
Engineering? Which parts are Science?
In my own career, I have actually been most interested in Industrial Design. Programming Languages have scope for Engineering: look at formal languages like Haskell and Coq for examples of languages designed by people making day to day use of Science. Programming languages also have huge scope for Design: designing a notation for programs is an exercise in applied psychology, an exercise in influencing the thoughts and behaviour of the programmer.
A recent article accused the MapReduce algorithm of lacking novelty, of using forty year-old ideas. For a Scientist, this is a problem: Scientists wake up in the morning trying to move the world forward. But for a software developer, using a forty year-old idea ought to be the normal case. Is it Engineering? Is it Science? Maybe it is Damn Useful
, and maybe the non-Engineer, non-Scientist measures themselves against that yardstick.
I don’t have a tidy conclusion for you: just a suggestion that you read the linked post and ask yourself what you really want to do with your talent and your life, be it Engineering, Science, Design, or making software that enriches people’s lives.
Then go out and do it.Update
: Are you a Doctor?
To come up with a proper treatment, doctors need to have an exact diagnosis. To have an exact diagnosis, doctors need to know exactly what is going on in the body. And the only way they can do that is to have a total and complete understanding of how the body works. They can’t just skimp out and decide “Oh, the circulatory system’s not that important.” They can’t just say “Heart trouble? Here, have some aspirin.” Sure, the aspirin might stop the pain temporarily, but in the long run, the patient will suffer even more, and probably die.