3 ms·
I truly think it's more craft than engineering, and even that's somewhat generous. It's mostly guesswork, hacks, inter-team politics, and trend chasing. Imagin
by hnuser847 5y ago
I truly think it's more craft than engineering, and even that's somewhat generous. It's mostly guesswork, hacks, inter-team politics, and trend chasing.
Imagine an engineering team designing a toaster. They have real constraints to consider, like physically fitting all of the components inside a single package and selecting materials that won't melt during operation. They have to ensure that product won't injure the user or light their house on fire. They have to carefully consider the lifespan of each component and design the product to last for a minimum number of years. The consequences of failing to do these things could potentially result in lawsuits, recalls, injuries, or even death.
Now take the average web product. There are no real constraints whatsoever - almost everything comes down to opinions over aesthetics. Even the speed and reliability of the application is somewhat unimportant. Planning ahead is explicitly discouraged. Instead, software "engineers" are encouraged to be agile, move fast and break things, iterate based on feedback/complaints, and push out hotfixes when bugs occur. Software is expected to rot and be rewritten every 3-5 years in the latest language du jour. I could go on and on, but anyone who's been in this industry for more than a few years knows what I'm talking about.
- CRConrad 5y ago> Imagine an engineering team designing a toaster. Heh... That supports TFA's point (if taken broadly as "old tech was better tech") in yet another way: Harking back to the famous Technology Connections YouTube video, the best toaster ever was conceived sometime in the 1940s or 50s.
- afarrell 5y agoRight. Software is more like a form of artistic/literary expression. We can fight this and find ourselves confused and frustrated. Or we can embrace this and start adopting the techniques of the worlds of art and literature. * Design Crits as an available alternative to doing code reviews solo -- https://digitalblog.coop.co.uk/2018/03/28/how-to-run-a-design-crit-and-why-theyre-important/ https://digitalblog.coop.co.uk/2018/03/28/how-to-run-a-desig... * Embrace writing first drafts and then revising them -- https://twitter.com/paulg/status/1363503835390558208 https://twitter.com/paulg/status/1363503835390558208
- qayxc 5y ago> Software is expected to rot and be rewritten every 3-5 years in the latest language du jour. That's simply not true in general. There are plenty of fields where this is not the case. Control software for airplanes, power plants, medical implants, military equipment, etc.; also banking- and insurance software, certain scientific HPC libraries, software for spacecraft (especially deep space missions) and so on. The software world doesn't just consist of web development, cloud computing, and cheap consumer products :) Ten years ago I did some consulting for a large merchant wholesaler and their backend ran on IBM mainframes. At some point I was maintaining CICS programs written in high level assembly with changelogs dating back to 1984 (after getting some coaching from the resident senior programmer first). This was a multi-billion dollar business and the software had to work. 24/7, 365 days a year. Every minute the system was down cost thousands of dollars. If you managed to mess up the system controlling the warehouse logistics, monetary loss was the least of your concerns, though - a dozen angry truck drivers asking for the guy in IT who messed up their schedule was far scarier :D So yeah, in environments like this, every little change or update had to be carefully planned and agreed upon by all stakeholders from all departments.