What's an anti-pattern? Are there rules to identify them, or is it just name-calling? Before I use the term, I try to apply some rules of thumb. It takes time to write a book. Months, even years. It took me two years to write the first edition of Dependency Injection in .NET.