Login
Theme: Light Dark

Given the complexity of frameworks and languages, is the web overengineered?

Tagged:

Home - Quora Link

The web is not engineered at all. First we need to discuss the difference between design and engineering, and finally we can draw from that what the web is in comparison.

Design is a top-down creative process. You start with an idea in your head, and you proceed from that idea down through the various parts of that idea, all the way down to the bottom, the actual functioning of the thing, the materials it uses, etc. Apple’s is a very design-driven process, everything is focused on those top-level details. Design produces things that are very pleasing to human senses.

Engineering, on the other hand, is bottom-up. You start from what exists and you try to improve upon it. You might have a top-level goal in mind, or you might just be looking to make a small improvement in functionality. Things that are engineered aren’t necessarily pleasing, but they’re exceedingly functional, because they took something that was already there and made it better. Microsoft is an example of an engineering-driven company, their software will run on just about anything.

The web is neither of those things. If you look at design and engineering, what do they have in common? They are both conducted by a singular team of people or a company. Engineered products and designed products are cohesive, they hold together as a unit because you need them to in order to drive business value.

The web, instead, is like Linux, created and improved on by anybody who cares to. The web is a platform, not a business product. It’s not cohesive. It creates tremendous amounts of business value, but because it’s not all in the hands of one firm, that business value can be captured by anyone using the platform.

That’s not to say that businesses can’t produce platforms, of course they can. But it’s a different product strategy and the approaches you use to creating platforms are different than normal business products.

So what verb do you use to describe how the web is created? The web is not engineered or designed, it instead evolves. The way evolution solves problems is different than the way that people solve them. When people solve problems, the ability to capture business value is the most important consideration, whether you’re using a design or engineering focus. When the market solves problems, greatest public utility is what drives progress.

So everything you see on the web is a cobbled mess of convoluted solutions to problems, done by all kinds of organizations with all sorts of purposes. Us consumers get to select the best ones, and so things slowly improve over time.

But evolved systems retain a lot of vestigial cruft. Perhaps it’s this you’re seeing when you describe over-engineering.