Hacker News new | ask | show | jobs
by sixtofour 5349 days ago
Yes, me too, I'm a programmer. That's how I think of myself, regardless of what infinitely varied tasks I may do. And me too, that's what I blurt out when people ask me what I do.

In more formal contexts, like resumes and job apps, I call myself a software developer, because that's a more encompassing description of what I do. Software development is not just programming, even if that's the most obvious and the most fun part.

My employers call me whatever they want to call me. That's been technical staff member, programmer, software engineer, etc.

I never voluntarily call myself a software engineer. I've never worked under the supervision of a PE who was legally responsible for my work, and I've never been on a track working toward my PE. Very few software developers work in that environment.

I don't mind the informalization of the term software engineer, but I don't use it because I've never, ever worked in an environment where programming or software development was practiced as an engineering discipline using national or international standards of practice or product. Software development where I've been, and where most people are, is much more an individual art than a community science. So I don't want to give the impression that what I'm doing is in any way a legal, formal engineering practice.

2 comments

> I never voluntarily call myself a software engineer

I actually had my company change my official job title at one point in my career to "Software Developer". I have an undergraduate degree in engineering (partially because I wanted to rebel against my parent's wishes for me to do CS). Software cannot be engineered like a bridge. Structural engineering is very narrowly scoped. You have a design load, comprised of live loads like wind and moving cars and static loads from the weight of the structure itself. There are entire "cookbooks" of formulas used to compute the theoretical, accepted thickness of the support beams and bolts. There is standardized everything, from the project management terminology to the thread count on the bolts. After graduating, if you gain four years (in some states, less) of practical engineering experience, you can take the Professional Engineer (PE) exam. In some cases, to prove your experience, you need to submit three inches thick of paper calculations you have done while working. The PE exam is rigorous and graded on a curve. But once you pass, you get the pride and responsibility of having a seal that you can use to emboss blueprints. That says you take responsibility for the work. Software development is not engineering, and I have strong philosophical discussions with those programmers who insist on that term.

Software development is creative problem solving. You do not have much creativity in structural engineering.

> Software cannot be engineered like a bridge.

It can be, as in the world of formal proofs and languages like Ada which facilitate them. It just typically isn't, as such formal procedures are far more costly and slower than than just dealing with bugs as they happen. For critical software systems like say avionics where a failure case is extremely costly (in both money and casualties), there do exist certification programs and rigorous methods as you describe for structural engineering.

It could be argued that avionics behaves more as engineering than as programming. Then we have a self-fulfilling definition: if we define fields with rigorous procedures as engineering, and fields without as software development, then of course software development doesn't have formalized methodology.

You're also comparing the largest scope of structural engineering - a massive bridge - with the entire spectrum of software. Engineering does happen on a smaller informalized scale too, like a homeowner building a shed or a Boy Scout troop building a rope obstacle course. That's still engineering, applying skills in carpentry or knot-tying to build something.

The last point about in-formalisation of the discipline is not incidental. I think that it is sort of specific to the community that Hacker News hosts.