http://xprogramming.com/blog/2009/02/02/discovering-essential-technical-practices/