this post was submitted on 22 Nov 2023
47 points (89.8% liked)
Programming
17446 readers
163 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I typically tell people that engineering is applying physics. If you aren't directly interacting with the physical world, you are most likely a developer.
Working on an app, no matter how complex (or unessarily convoluted) generally makes you a developer. If you aren't thinking about impact of clock cycles, actuation/hardware interfaces or sensing, there is a high chance that the work you do has little to no risk or a chance of failure that is governed by the physical world. As said in other comments, engineers design and sign off on things. There is an implication that there is an unknown constraint, unlike a fully observable software environment.
By that definition almost all people who call themselves software engineers would be wrong. That doesn't automatically mean, you're wrong though.
Personally, I disagree with your definition of software engineers needing to directly interact with hardware stuff in order to be engineers. Wikipedia defines software engineering as
So it's all about the systematic approach to complex systems, not about whether or not you directly interact with hardware interfaces.
I think this is a terribly naive view of the impact the physical world has on software development. Most web development is actively concerned with throughput which is governed by bandwidth limitations and API construction. The user experience concerns that go into, say, the design of medical interfaces is no different from the design considerations of physical switches in a cockpit. Alert fatigue is just as much a consideration for monitoring in software as it is for industrial controls.
I also disagree that engineering is applying physics for user experience concerns I brought up. If your industrial controller makes it impossible to understand what’s going on when shit hits the fan (eg Three Mile Island), I would argue you as an engineer have failed. That’s not applying physics unless we’re stretching “applied physics” to cover the movement of subatomic particles through brains as psychology.
I appreciate your opinion. I know that the qualification I made is a controversial one as everyone wants to be an 'engineer', but I'm still confident it holds. Applying physics is not purely at the atomic level. In web development, one of the physical challenges can be bandwidth, however, while most people claim to concerned about bandwidth, in reality they don't do anything about it. Minifying code is cool, but that's not doing any engineering by itself. Calculating the throughput your datacenter can dish out for your 1million users as you write a function that optimizes load vs lag of streaming video, that's engineering.
Thinking about user interaction and experience is more psychological than it is physical in most cases. Designing the user experience of a medical device or cockpit switch are both not automatically qualified for engineering: unless, you are designing the medical interface to overcome spasms that someone with Parkinson's has, or, the cockpit switch is designed with a plastic mix to survive the temperature, vibration or weight requirement, it's going to be more of an art-than-science. I'm not saying one is worse, but we need to make the distinction between designers, developers, scientists and engineers.
I understand that everyone wants to be an engineer, whether for pride or just to feel more important (hell I want the engineer title too). Unfortunately, the tech industry (with arguably one of the most conflated egos) liberally tossed around software engineering to every role to attract talent and I don't see that changing. It's a profession, so whatever you are being paid to do will determine if you are engineering
I don’t give a shit about the title. I think it’s a joke. The analysis you’ve given suggests you don’t understand both software and engineering.
Sounds like you are a real pleasant person to work with
Thanks! My coworkers really like me.