Got It Working

When you say “I got x working”, I hear “I’m not thinking about whether x is designed well.”

When you “get it working” and then ship it without spending time getting it right, thinking it through, planning for change: You’re shipping prototype code. I could maybe imagine a context where that might be acceptable, but it’s usually not a good decision. At the very least, it should be a conscious decision.

Kent Beck’s old line is: “make it work, make it right, make it fast”. Effectiveness, design, performance. Shipping the prototype gives you only the first of those.