Talk:Anti-pattern

message: Many of the listed items are not anti patterns, but valid operating models within some commercial frameworks. For instance, a Business may decide to "Cash Cow" a product, deciding to return significant short term financial benefits rather than go for high risk, low reward long term profits. Also, many of the anti-patterns described are contradictory ("Big Ball of Mud" vs "Over Engineering"), and described outside the commercial environment that drives the decisions. These are not anti patterns, they are life.....    — Preceding unsigned comment added by 210.48.109.206 (talk) 02:26, 4 February 2013 (UTC)
replies: text: By definition an anti-pattern has atleast one scenario where it is a valid solution to a problem. --Daydreamer302000 (talk) 12:32, 12 September 2013 (UTC)
thread_title: Many Anti patterns listed are valid commercial decisions 

message: I'd like to suggest and Anti pattern that captures the concept that not everything that is done badly has to be called an anti pattern and be given a name. More often than not, its Just Another Piece Of Crappy Code pattern, or the "Gotta Give It A Name" pattern   — Preceding unsigned comment added by 210.48.109.206 (talk) 02:15, 4 February 2013 (UTC)
thread_title: The JAPOCC and GGIAN anti patterns are missing 

message: I'd like to add a section on User Interface antipatterns and "Dark Patterns" (purposefully bad UI design intended to trick users). That OK?  — Preceding unsigned comment added by Harrybr (talk • contribs) 11:18, 30 December 2010 (UTC)
thread_title: Section Suggestion: User Interface Antipatterns

message: The term anti-pattern is a neologism inspired by a particular book (WP:COI?).  The phrase seems to have other meanings (see Other uses below) and its usage in this case is obscure.  And the article seems to be mostly an unsourced collection of Dilbert-style grumbles.  The more common phrase for this concept is bad habit so I'm going to be bold and move to that title.  Under the new title, the concept will be more generally useful. Colonel Warden (talk) 11:37, 26 March 2008 (UTC)
replies: text: * The definition of WP:NEO is Neologisms are words and terms that have recently been coined, generally do not appear in any dictionary, but may be used widely or within certain communities.  Since this term does not appear in authoritative dictionaries such as the OED, it is certainly a neologism.  The concept it describes is not a new one - people have been making systematic blunders throughout history.  All we have here is old wine in new bottles.  Colonel Warden (talk) 10:08, 27 March 2008 (UTC)
replies: text: My impression remains that this is a fashionable neologism being pushed by a small clique of authors who have books to sell.  Bad practise and design existed long before they wrote a book about it and will no doubt continue under many names... Colonel Warden (talk) 19:17, 27 March 2008 (UTC)

text: * Typically what happens in such cases is that the long list of examples is spun off into a separate List article and people then fight over what should be included.  See List of massacres, for example.  If the basis for inclusion is not clear then the article will then usually fail at AFD, as in the recent case of List of Geordies.  In any case, if there isn't a reliable source saying that something is an anti-pattern, then it should go, as the term is derogatory.  I wouldn't consider the creators of this neologism to be acceptable since they have a commercial interest in casting their net wide and so are not independent.  What we want are examples of serious secondary usage. Right?  Colonel Warden (talk) 08:07, 28 March 2008 (UTC)
replies: text: Rewritten intro, provided sources, please comment. --Kubanczyk (talk) 14:27, 11 April 2008 (UTC)
replies: text:  I'm not sure that you've touched this bit but, according to the current lede, an anti-pattern requires that there be a refactored solution, i.e. another way of writing the code to achieve the same effect but without the technical drawbacks.  For example, spaghetti code might be rewritten in a more structured way.  This seems to limit the concept quite tightly to coding issues.  So, why do we have all the Dilbert stuff about bad management?  This belongs to organisation theory, not computer science and so should be purged from this article, right? Or is the lede's definition wrong?  Colonel Warden (talk) 15:54, 11 April 2008 (UTC)
replies: text:  I would say that the whole idea expanded from the OO design pretty much into IT project management. Maybe further into org/mgmt theory. WP:RS needed. But my source-browsing battery is totally depleted. --Kubanczyk (talk) 17:52, 11 April 2008 (UTC)
replies: text:  The anti-pattern here is adding endless examples of bad behaviour without any verification.  The refactored solution is to exclude anything that doesn't have a reliable source.  See - anyone can play this anti-pattern game.  I'll source a few entries to show how it's done and then toss out all the other examples.  Colonel Warden (talk) 18:20, 11 April 2008 (UTC)
replies: text:  Mhm, but that's not actually an anti-pattern. It's just the Bad Thing :)) If I were you I would start with removing links that describe a bad thing, instead of describing a "supposedly good thing that turns bad later". For example Death march (software development) is not an anti-pattern. But per WP:V it's really up to you. --Kubanczyk (talk) 19:00, 11 April 2008 (UTC)
replies: text:  No, simple deletionism is an anti-pattern because it does not demonstrate the correct way forward.  The refactored solution is to lead by example. But I find that some sources seem to give examples which seem wholly negative and so are just bad things.  These sources seem unreliable but it may be difficult to exclude them.  I favour a tabular structure in which we have several columns: a) the antipatterm b) its false promise c) the refactored solution. Colonel Warden (talk) 19:25, 11 April 2008 (UTC)
replies: text:  I like the idea of the three column table! "A proper pattern example" seems like a better name for the third column. My concern is, that sometimes the third column could contain A LOT of text. There are types of problems that have 3 or more equally excellent solutions. --Kubanczyk (talk) 19:59, 11 April 2008 (UTC)
thread_title:  Move 

message: Is this sourced? While the multiple-copies-of-one-library thinking may be an example of an anti-pattern, is the "Hell" part? Surely that's the outcome, rather than the rationale? Chris Cunningham (not at work) - talk 09:25, 22 July 2008 (UTC)
thread_title:  DLL Hell an anti-pattern? 

message: A specific Mushroom Management pattern is when managers mutually refer to each other when giving informing on decisions and responsibility to employees of a lower rank. The manager supposedly responsible, is typically not present or available.  —Preceding unsigned comment added by 193.162.59.125 (talk) 11:05, 13 January 2009 (UTC)
thread_title:  Web of Referral 

message: Found the sentence "Often pejoratively named with clever oxymoronic neologisms, many anti-pattern ideas amount to little more than mistakes, rants, unsolvable problems, or bad practices to be avoided if possible. " to be a classic example of an anti-pattern. Thanks! haha  —Preceding unsigned comment added by 58.68.26.146 (talk) 18:10, 6 September 2009 (UTC)
thread_title:  Irony in 2nd paragraph 

message: Why is this article rated as Top importance for the Computer Science wikiproject? Is it really at the same level as Graph Theory, Sorting algorithm, P vs NP, Donald Knuth or Operating System? I'm demoting it to Medium. Diego (talk) 12:00, 7 April 2010 (UTC)
replies: text: It was rated higher than Design pattern (computer science)!!! Nonsense. Diego (talk) 12:02, 7 April 2010 (UTC)
replies: text:  This was probably my fault. When I go on my assessment runs I do a lot of copy/pasting and on rare occasion, if things get moving quickly, I don't always remember to adjust the class/importance respectively. I'd still probably rate this as High (yes, even higher than Design Patterns, as this topic is considerably more generic) but that is a disputable point. Anyway, good catch. Daydreamer302000 (talk) 10:53, 1 September 2010 (UTC)
thread_title:  Importance? 

message: [New guy here - please be gentle :-)]
Just wanted to suggest that the entry under "Project Management Anti-patterns > Waterfall Model" appears to violate both NPOV and lack of citation.
Original entry (diff) could still use a citation, but isn't quite so egregiously biased. Thoughts? 
TheOnlyCueball (talk) 05:26, 25 March 2011 (UTC)
thread_title:  Waterfall Model description 

message: What's the deal with the anti agile comments in the article?
i dont think its the appropriate place for this nonsense
"but is far more robust than so called agile methods which are a trial and error approach to software development that ignores any a priori systems architecture thus leading to unintended consequences."
"Programming by permutation (or "programming by accident"): Trying to approach a solution by successively modifying the code to see if it works. This is the essence of the agile approach.
"
I agree, Test Driven Design, as a bad thing?  --Oxinabox (talk) 13:25, 20 July 2011 (UTC)
thread_title:  Anti agile 

message: While I'm not 100% sure of the terminology, the pokemon anti-pattern does exist. It's bad practice to catch every single error, you should only catch the relevant ones and allow the language framework to throw any other further up for analysis and handling  — Preceding unsigned comment added by 60.242.108.101 (talk) 08:22, 27 August 2011 (UTC)
thread_title: Random Aside

message: How can we begin to improve our definition of Anti-pattern?
I see we found outside sources for our: An anti-pattern (or antipattern) is a pattern used in social or business operations or software engineering that may be commonly used but is ineffective and/or counterproductive in practice.
I see En.wiktionary.org offers us the more cogent: (software engineering) A design pattern that may be commonly used but is ineffective and/or counterproductive in practice.
In my own world I'd more likely say: A familiar, convenient, intuitive, natural, popular way of overwhelming yourself with complexities of your own making, like shooting your self in the foot
How can we even begin to ask a tool like Google where the original research on this is?
Pelavarre (talk) 20:09, 25 October 2013 (UTC)
thread_title: Most brief complete definition of Anti-pattern

message: I ask this as a spiritual person who thinks this is a very interesting question. It seems when humans try to speak for God and shape their actions and behaviors on what they believe to be God's rules and use this to create formalized inflexible protocols for every situation they encounter, much good appears to come from it initially. Over time, things degenerate as God's actual intentions for particular situations that arise (especially as society and culture changes) cannot be acted upon because they come in conflict with the established rules and protocols of the organized religion. People get burned by this, then hate God without realizing that they should be hating organized religion instead. In the absence of God, morals degenerate and the very things that organized religion was trying to help, ultimately brings much harm. (It looks like much thought about anti-pattern can take place outside the field of computer science.) DavidPesta (talk) 15:18, 9 March 2014 (UTC)
replies: text: What do you see as the recurring problem that organized religion is attempting to solve?  Eric Corbett 16:50, 9 March 2014 (UTC)
thread_title:  Is Organized Religion an Anti-Pattern? 

message: Which book are you referring to when you say "try reading the book"? Also, if the linked page analysis paralysis is wrong in its software development section, you should probably correct that first, because this article should just give a brief one-sentence summary of that article - it's more important that that article be right. Finally, it makes no sense to take about the "analysis phase" of an agile project which doesn't have phases.--greenrd (talk) 21:56, 3 January 2015 (UTC)
replies: text: It's not my job to fix every single article in WP, and may I remind you that WP is not a reliable source in any event. In other words, it doesn't matter what the linked article says.  Eric Corbett 22:00, 3 January 2015 (UTC)
replies: text: So can I take it that the book you're referring to is Antipatterns by William J. Brown?--greenrd (talk) 23:02, 3 January 2015 (UTC)
replies: text: How many other books on antipatterns are you aware of? Have you read it yourself?  Eric Corbett 23:09, 3 January 2015 (UTC)
thread_title:  Analysis paralysis 

message: As the book AntiPatterns is already mentioned in the lead paragraph, the hatnote constitutes overlinking and possibly legitimate article content that does not belong in a hatnote. Is any of this a valid reason to remove the hatnote? --SoledadKabocha (talk) 03:51, 1 June 2015 (UTC)
replies: text: Resolved by another user --SoledadKabocha (talk) 00:45, 31 October 2015 (UTC)
thread_title:  Is hatnote necessary? 

message: Recommend adding this, as it's a well known anti-pattern on javascript. ref: http://callbackhell.com  — Preceding unsigned comment added by 2.216.33.111 (talk) 20:11, 24 October 2015 (UTC)
thread_title:  Callback hell 

message: The Builder pattern is cited as being a software design solution to the "telescoping constructor anti-pattern that occurs when the increase of object constructor parameter combination leads to an exponential list of constructors." Also discussed here. SteveChervitzTrutane (talk) 05:40, 4 August 2017 (UTC)
thread_title:  Telescoping constructor 

message: Seems like Rube Goldberg machine could qualify as an anti-pattern, with the antidote being Occam's razor. This anti-pattern could be applicable to either organizational or engineering realms. SteveChervitzTrutane (talk) 05:56, 4 August 2017 (UTC)
thread_title:  Rube Goldberg Machine 

message: The article starts out by defining "anti-pattern" in a meaningful way. It's a common solution to a problem, where the solution is worse than the problem. Multiple other sites give similar definitions.
But then it lists a ton of things that don't remotely meet this definition.
* Big ball of mud - This isn't a solution to a problem. It's the state a solution ends up in after decades of patchwork maintenance.
* Database-as-IPC - This is a performance question, not an anti-pattern. DB software is intrinsically good at creating, sorting, and deleting records, so any complex data being passed between programs can be readily represented here. Why re-invent the wheel if the performance is fine?
* Inner-platform effect - I don't even know what this article is attempting to describe. Firefox is a bad browser because someone wrote an addon that acts like Windows Explorer?
* Input kludge - Creating an input is better than having no input (how else would the user interact?), so it's not an anti-pattern from that perspective. And it doesn't even attempt to solve the problem of bad inputs, so it's not an anti-pattern from that perspective.
* Interface bloat - Is a non-article that shouldn't exist. Googling "interface bloat" results in completely different definitions, except where somebody just copy/pasted the Wikipedia article. Even if you can find a legitimate example, I doubt it's remotely common enough to meet the definition of "anti-pattern".
* Magic pushbutton - A perfectly valid way to accept and process user input. Just because modern systems use better, more responsive methods doesn't make the old way an "anti-pattern".
* Race condition - Nobody sets out to deliberately create a race condition as an actual solution. Rather, race conditions are created by inadequate solutions.
* Stovepipe system - This is another state a solution ends up in after decades. Alternately, it's just a standalone program that isn't coupled into a bunch of unrelated programs.
* Call super - This is about language specifications. Has nothing at all to do with anti-patterns.
* Circle–ellipse problem - This is a conceptual problem, not a bad solution. Again, nothing to do with anti-patterns.
* Constant interface - This is needless griping about semantics. The solution works perfectly fine and lots of people swear it's better than the "correct" alternatives.
* God object - Typically, this is a failure to refactor with growth, not a design choice.
* Object cesspool - It's what happens when you don't validate objects in an object pool properly, not a design decision. The solution is the object pool, which isn't an anti-pattern.
* Sequential coupling - There might be cases where this is an issue, but most of the time (such as the examples given in that article) it's  not. You have to init an object before starting or stopping make sense. The start function may be asynchronous, in which case stopping it immediately afterwards is stupid. If not, it might make sense to call Stop as a private function at the end of Start, but isn't going to hurt if you call a public Stop when it's not started.
* Singleton pattern - The anti-pattern here is someone who thinks all single-use objects need to be singletons, not the idea of a singleton itself. There are places where singletons are useful, and a lot of cases where you can just not create more copies rather than waste time making it a singleton. But mostly singletons don't actually hurt anything, so they aren't themselves anti-patterns.
* Accidental complexity - I don't even know what to say to this. It's literally impossible to not have accidental complexity; it's just a way of measuring how efficiently you made it from problem statement to final, implemented design. The more we reduce accidental complexity, the closer we are to just pushing a button to design the program for us. The only way to get better is practice; it's not a pattern you just stop using.
* Boat anchor - Another state you reach after decades of maintenance. Not a pattern you set out to create.
I could go on, but I really don't feel like it.
69.28.44.248 (talk) 00:38, 28 August 2021 (UTC)
thread_title:  This article is basically garbage.