One of the core practices of eXtreme Programming. DTSTTCPW can be very hard to achieve, even though at first it sounds so simple. (Pun intended...)

It can be especially difficult for experienced engineers who have learned all about good object-oriented design, design patterns, and have the natural tendency to overengineer everything to force themselves to sometimes choose a simpler but less elegant solution.

The practice is similar to lazy evaluation: "If you don't need it right now, don't do it because you 'might' need it later. And then if you don't need it, you didn't waste that time."

Deferring the costs of developing something can also pay off, as in lazy evaluation because you can get more done now, and when things change, and they will change (embrace change!), you won't have wasted time pursuing the wrong things.

However, as an engineer, it is my sworn duty to fight this dangerous practice wherever it rears its ugly head! I mean, come on, how will people get by if I don't constantly look for ways to put another control or feature on the thing?

There we go, now I'll take off my engineer stereotype mask, and pull my tongue out of cheek

Log in or register to write something here or to contact authors.