Which is better? Code as fast as possible and then correct later or take it slow and carefully?

Not least because you’ve suddenly dragged in “well-architected” as an apparent synonym for “not shitty”.

Because it's one example of "not shitty". Or do you disagree that an entire application written as one function with GOTOs for flow control is shitty?

My actual point is: doing something better usually means doing it slower. But "better" doesn't always translate into "higher value for the customer". A customer doesn't, for instance, care about what your architecture looks like. They care about features and bugs.

Agile says: ship stuff quickly. Literally the first of the Agile principles:

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

"Early". You can fix your shitty code later. Release the product and then get on with improving it.

/r/learnprogramming Thread Parent