YAGNI, and The Rule Of Three

Great post on successfully building large software systems over at WTF.
"Avoid premature generalization," [Phil] Haack advises. "Don't build the system to predict every change. Make it resilient to change."As for knowing when to generalize, Haack lives by the rule of three: "The first time you notice something that might repeat, don't generalize it. The second time the situation occurs, develop in a similar fashion -- possibly even copy/paste -- but don't generalize yet. On the third time, look to generalize the approach."
In my view, the Rule Of Three advice applies to business processes as well. stop you aren\'t going to need it Online marketing is evolving so quickly, there typically isn't time to engineer the "perfect process" out of the gate. Heck, you can't even envision what the right process looks like until you've done something a few times. So start with the simplest approach that could possibly work. The agile development community have an acronym for a related idea -- YAGNI, for You Ain't Gonna Need It -- and this is a central point of Mike Moran's excellent new book, Do It Wrong Quickly. So, in software and in marketing:
  • Do the simplest thing that could possibly work.
  • Don't over generalize.
  • After three experiences, start optimizing if needed.
Link: Avoiding Development Disasters over at WTF
Join the Discussion