A negative pattern of behaviour in software development (e.g. in development practices, technical approaches, design concepts) that may lead to poor-quality software and project failure. The conscious avoidance of anti-patterns can be of great benefit in software development practice.