I was reading this article on the net http://www.artima.com/weblogs/viewpost.jsp?thread=71730 and basically the author say if one of the items in the below are true, then our code sucks and I agree 🙂
1) Your code sucks if it isn’t testable.
2) Your code sucks if it’s hard to read.
3) Your code sucks if it’s not understandable.
4) Your code sucks if it dogmatically conforms to a trendy framework at the cost of following good design/implementation practices.
5) Your code sucks if it has duplication.