ANTI PATTERNS Swathi Varadharajan sxv143030
What is an anti pattern? A commonly used process, structure or pattern of action that despite initially appearing to be an appropriate and effective response to a problem, typically has more bad consequences than beneficial results A good alternative solution exists that is documented, repeatable and proven to be effective
Why anti pattern? Anti patternPattern
Causes of anti pattern Aggressive project deadlines General lack of concern Refusal to use patterns Poor decision making Failure to clearly understand the problem
Types of anti patterns Organizational design patterns Project management anti patterns Software design anti pattern Object oriented anti pattern
Organizational design pattern Analysis paralysis Over thinking of a situation and not taking any decision Solution: have deadlines, take a mental dry run… Design by committee Too many contributors with no unifying vision Solution: have a decision maker Vendor lock-in Making customer dependent on a particular vendor Solution: do not customize the application
Project management anti patterns Death March Everyone knows that the project is going to be a disaster but keeps it alive till the day zero Hero Mode Relies on the heroism of a small number of capable individuals Give me estimates now Project management forces the individual to make immediate decisions
Object oriented design patterns Anemic domain model The business logic is implemented outside the domain object Result of not using information expert Solution: Create and assign a responsibility to the information expert — the class that has the information necessary to fulfill the responsibility
Circular dependency Relation between two are more modules which directly or indirectly depend on each other Results in Tight coupling -> unwanted global effects Solution: Follow Acyclic dependency principle -> dependency must be directed acyclic graph
Software design anti patterns Software bloat Successive versions demand more and more resources, adding features just to release a version Solution: Add updates to the existing software when the requirements are less significant Pattern Fetish Excessive use of patterns Solution : meaningful use of patterns Big ball of mud (spaghetti code jungle) Lack of architecture Solution: Define and strictly adhere to an architecture from the inception
THANK YOU…..