this post was submitted on 15 Feb 2026
1 points (100.0% liked)
Software Engineering
468 readers
9 users here now
Software Engineering is the systematic and engineered development of software in all its life cycle.
Rules
- Keep related to software engineering
- Keep comments on-topic of the post
- Try to post free/open access content
- Try to post content from reliable sources (ACM, IEEE, SEI, NN/G, ...), or useful content in general
- Relevant questions are welcone, as long they are genuine and respectful
- Be genuinely respectful, kind, helpful; act in and assume good faith
- No discrimination
- No personal attacks, no personal questions
- No attention stealing: no ads, spam, influencers influencing, memes, trolling, emotional manipulation/advertising (e.g. engagement through enragement or other negative emotions), jokes that dissipate the focus of the topic, ...
Resources
- Guide to the Software Engineering Body of Knowledge (SWEBOK) by IEEE Computer Society
- ISO/IEC
- Free licensed resources
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I take exception to this one:
Everything needs maintenance. Everything.
The world turns and the solar system moves through the universe. Nothing can be left alone for long before you have to do something to make sure it will continue working.
Everything left alone rots and gets taken back by nature. Both living things (weeds, animals, other people) and non-living (UV radiation, natural radioactive decay, oxidation) will impact anything and everything humans create.
Even the oldest artifacts that live inside museums need regular maintenance!
Software runs on human-made hardware that has change cycles that result in backwards incompatibilities, end-of-life issues, general expiration (think: motherboard batteries), and technical debt.
There is no situation under which any software can be installed once and then left alone forever. Even NASA sends out software updates to remote, far away probes!
I understand your sentiment but there’s an unbelievable amount of low-level code that will never get updated and will be fine for the lifetime of whatever system it’s in. If you drive an ICE car there’s a chance it will never really need an ECU update. The microcontrollers in most of your home devices, from washing machines to sprinkler systems, probably can’t even be updated. We’re capable of building software that lasts more or less forever, but it often has to be paired to specific hardware and made for specific use-cases.
You're absolutely right. Note that I said "years without updating" not "never updated". Depending on the domain, I think we can always at least aim to make our software as rugged as possible.
I think we should take more aspiration from mechanical engineers and car manufacturers.
A car needs maintenance, but you might just start up a 70 year old engine and it works ok. Our a 70 year old car might be still up and running with minimal maintenance. You don't want to be rapairing/updating your car every month or week.
I understand the domains are different, but how much really? I think if we build with the "rugged" mindset and good engineering, there is a lot of improvement to be made to what software is.