3 ms·
I think part of the difference in mentality comes from the difference in material constraints. If a mechanical engineer designs something that needs a ton of f
by brundolf 6y ago
I think part of the difference in mentality comes from the difference in material constraints.
If a mechanical engineer designs something that needs a ton of fancy moving parts, those moving parts significantly and directly impact their budget (I assume), because they're going to have to be purchased or made for each widget that gets manufactured. They also unavoidably impact physical properties of the object, like weight and dimensions.
Whereas a programmer can spin out as much code as they want, basically without material consequence. There is no constant gravitational force keeping them in check, requiring them to justify each piece of complexity as they go. It's ethereal, weightless, and its disadvantages usually only surface years down the line.
- dkarl 6y agoIn my experience, the costs are felt immediately, because there is more code and more complexity. Virtually every cost in software development goes up when there is more code and more complexity. There are more bugs. It takes longer to diagnose and fix bugs. It takes longer to add new functionality. Performance is less predictable, and performance problems are harder to diagnose. Onboarding new programmers is slower. Fewer members of the team can do critical work on the code. Routine library upgrades are more likely to impact the code and take longer when they do. Code is a liability, in other words. It may not be tangible, but you can think of it as weight that the team has to carry everywhere it goes.
- brundolf 6y agoYou're totally missing my point, which is that all of those costs are abstract and protracted. They aren't felt as you're literally typing the characters; they can't be listed as concrete numbers in a budget. If an engineer is using a CAD tool and they add a part, they can see the space that's no longer available for other parts. Or they can see that the product would have to be made physically larger to accommodate it. There is concrete feedback to contend with during the development process, not just a vague notion of future reliability.