January 20, 2004
One of the wonderful acronyms added to the world by XP is DTSTTCPW: Do The Simplest Thing That Could Possibly Work.

This little package of wisdom has been the source of many a thread on the XP mailing list over the recent years filled with arguments over simplicity. Does this acronym give me the right to do something stupid? Aren't I supposed to think on the job? Aren't agilists just a bunch of lazy hackers?

Ward Cunningham, one of the original extremos, has offered up a description of the origin of this petite acronym which certainly puts a different spin on it:
[At] times [Kent Beck and I would] be programming away, and we'd say, “Now, wait a second, what are we working on here?” We'd just get stuck. And if we were stuck more than a minute, I'd stop and say, “Kent, what's the simplest thing that could possibly work?”

It was a question: “Given what we're trying to do now, what is the simplest thing that could possibly work?” In other words, let's focus on the goal. The goal right now is to make this routine do this thing. Let's not worry about what somebody reading the code tomorrow is going to think. Let's not worry about whether it's efficient. Let's not even worry about whether it will work. Let's just write the simplest thing that could possibly work.

Once we had written it, we could look at it. And we'd say, “Oh yeah, now we know what's going on,” because the mere act of writing it organized our thoughts. Maybe it worked. Maybe it didn't. Maybe we had to code some more. But we had been blocked from making progress, and now we weren't.

tags: ComputersAndTechnology AgileDevelopment
comments powered by Disqus