Hacker News new | ask | show | jobs
by s188 2490 days ago
The hardware engineering world (oil and gas, aerospace, civil) is less about ego and more about well established processes, practices and rules. These are much more mature industries than the software industry. In my experience intellectual posturing is much more a software industry thing than a hardware industry thing. Software developers are still struggling to figure out what's the best way to do things. SOLID, YAGNI, Agile, RUP, RAD, Clean Code, OOP/FP - they're all just the start of a maturing process. They will no doubt be superseded in time by other, better practices, just as they have superseded others. In mature engineering industries, the engineering rules and practices are well establishes. Much of this has come about because of accidents (and death - planes crashing, bridges collapsing, oil rigs exploding) and the court cases that follow. In the early oil industry health and safety mattered little. Same goes for the aerospace industry. These are hard lessons to learn and practices had to change. The cost of not changing was uneconomical.

The software industry is still growing up and best practices still have to be formally established. All the articles and books written about best practices in software - they're just the beginning - and most are probably wrong to some extent. Where does the intellectual posturing come from in the software industry? It's largely because of a lack of provably reliable practices and processes. The ones we have, are sold to us as 'the best thing' but they will eventually be found wanting. Ron Jefferies recent article about software estimating is a classic example (https://ronjeffries.com/articles/019-01ff/estimation-again/I...). Some people are so fed up with how unworkable estimating is that they're willing to ditch it entirely.

And so, in the absence of mature, provably reliable practices and processes the way is open to 'who's ego is the biggest' because those with big egos (but not necessarily a lot of experience) often think they know best (Dunning-Kruger). Their proposals (which are just as likely to be wrong as anyone else's) tend to be adopted simply by force of ego. For instance, you wont hear terms like 'code smells' in the hardware world (I worked as a software developer in oil and gas and rail transport for 30 years and never once heard it mentioned). To say "that's a code smell" is a kind of intellectual put down. It's intended to insult a developer into doing something differently and thereby elevate the speaker as someone who 'knows the right way'. Eventually, these things will disappear and the software world will have reliable, accurate processes, practices and rules and the 'code gurus' will be consigned to history.

And that's when the intellectual posturing will end.