| ▲ | Mawr 3 hours ago | |
> making it default is often a huge waste of $ for problems you/most don’t have. It's the opposite — knowing the exact spec of your program up front is vanishingly rare, probably <1% of all projects. Usually you have no clue what you're doing, just a vague goal. The only way to find out what to build is to build something, toss it over to the users and see what happens. No developer or, dear god, "stakeholder" can possibly know what the users need. Asking the users up front is better, but still doesn't help much — they don't know what they want either. No plan survives first contact with the enemy and there's no substitute for testing — reality is far too complex for you to be able to model it up front. > You don’t iterate the foundation of a house. You do, actually. Or rather, we have — over thousands of years we've iterated and written up what we've learned so that nobody has to iterate from scratch for every new house anymore. It's just that our physics, environment, and requirements for "a house" doesn't change constantly, like it does for software and we've had thousands of years to perfect the craft, not some 50 years. Also, civil engineers mess up in exactly the same ways. Who needs testing? [1]. Who needs to iterate as they're building? [2]. | ||
| ▲ | embedding-shape 2 hours ago | parent [-] | |
> knowing the exact spec of your program up front is vanishingly rare, probably <1% of all projects I don't have anything useful to add, but both of you speak and write with conviction from your own experience and perspective yet to refuse that the situation might be different from others. "Software engineering" is a really broad field, some people can spend their whole life working on projects where everything is known up front, others the straight opposite. Kind of feel like you both need to be clearer up front about your context and where you're coming from, otherwise you're probably both right, but just in your own contexts. | ||