Designing an assembly line to build a car vs designing a car.
The difference even with those disciplines is that with code, any specification sufficiently detailed to replicate the product is the product.
An architect can design a blueprint for a house and send it to 3 different builders and they will each build more or less the exact same house.
But if you write a software spec and send it to 3 different software teams, you will get 3 very different products. If you try to write a sufficiently detailed spec to avoid this problem, you'll just end up writing code.