Remix.run Logo
▲ somenameforme 3 hours ago

Probably a controversial take - but in the pursuit of elegance. 'Uhh, so I need to hook this connector up to that receiver using this adapter and then uh, I pass it to the connector manager which sends it to the scheduler that... @#%! FML.' And then it's all so polymorphicized that going through the debugger you spend an eternity just trying to figure out what the types even mean and why/where they came from.

When you look at old-school code that just hacked things together, it was ugly, but also very easy to in turn further hack. There was no elegance or grand base types with 80 levels of inheritance to enable clean extension at every possible juncture of types. And no spending forever to find out the exact function you want to be able to override, only to discover that it's outside your modifiable codebase and wasn't marked virtual. Everything just worked.

▲0c3ca83 2 hours ago | parent | next [-]

Yeah, so nobody did engineering.

▲somenameforme 2 hours ago | parent | next [-]

This reminds me of a nice quote about engineering: 'Any idiot can build a bridge that stands, but it takes an engineer to build a bridge that barely stands.' Another is that 'If people knew how many assumptions went into designing a bridge, they’d never dare cross one.'

Engineering isn't about creating some perfect thing that is prepared for any conceivable scenario, but about solving a problem as efficiently as possible.

▲AnimalMuppet 2 hours ago | parent | prev [-]

Well, that's a funny thing. The "well engineered" code can actually be harder to work on. And maintainability is one aspect of "well engineered".

What I've seen (at least at one place I worked) is that the code may be very well engineered for further modification - but only by people who have worked quite a bit on that code. For someone coming from outside, it's almost impossible. It takes forever to find your way around, and figure out where the magic place is that you need to modify in order to work within the existing design.

Well, you say, that's what the design documents are for! But they didn't have enough detail. They described the major objects, but not all the ancillary helper objects. They didn't describe the flow of data through the system in enough detail to know what to modify. The knowledge was there, in peoples' heads, but it was hard to get those peoples' time.

So, yeah. "Well engineered", but not engineered for maintenance by people who are not those already in the group.

▲0c3ca83 2 hours ago | parent [-]

You're describing something not fit for purpose. It's not well engineered.

That's like saying "that's the irony of it, a well engineered bridge sometimes drops chunks of concrete onto cars that pass underneath".

▲ 3 hours ago | parent | prev [-]
[deleted]