Talk:Anti-pattern

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Many Anti patterns listed are valid commercial decisions[edit]

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)[reply]

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)[reply]

The JAPOCC and GGIAN anti patterns are missing[edit]

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)[reply]

Section Suggestion: User Interface Antipatterns[edit]

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 (talkcontribs) 11:18, 30 December 2010 (UTC) Also, the article suggests dark patterns are an alternative name for antipatterns. If you Google the term "Dark Pattern" you'll see this isn't accurate.[reply]

Move[edit]

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)[reply]

That's done. Rewriting the article will take some time and there may be some opposition so I'll leave it at that for now. More anon. Colonel Warden (talk) 11:42, 26 March 2008 (UTC)[reply]

  • STRONGLY object to this move. The term "anti-pattern" is well-established in the CS literature and has been for over a decade; it is not a neologism. Am requesting an admin move it back. --EngineerScotty (talk) 21:39, 26 March 2008 (UTC)[reply]
  • 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)[reply]
  • A search of Google Scholar shows a reasonably large number of scholarly publications (mostly CS from my quick browse of the results) that use the term "anti-pattern", which seems to indicate that the term has entered the technical lexicon. That said, I agree that the article itself consists mostly of unsourced lists of dubious quality. I don't see much point in having the big lists, particularly since they're mostly just going to be duplicating PPR's AntiPatterns Catalog anyway. --Allan McInnes (talk) 05:48, 27 March 2008 UTC)
  • I have created Bad habit as a separate article with a natural focus on personal bad habits. That article is just a stub but already has more references than this tendentious neologism. It is a bad habit of computer geeks to think that their business is something special and so deserves an article for every bit of whimsical jargon. This is systemic bias. Colonel Warden (talk) 14:15, 27 March 2008 (UTC)[reply]
    • Nonsense--Wikipedia is larded with articles on every bits of the "whimsical jargon" found in *numerous* disciplines and fields of study--CS is probably one of the easier ones to cover, as most of the technical jargon in CS is fairly well defined, and those things that aren't (i.e. "object") are nonetheless the subject of much discussion in the literature. Technical jargon != neologism. Now, a technical term that is only used by one author or in one paper, and not accepted by a wider academic or professional community--that is neologism. (Or protologism). And most technical jargon starts out as neologism, with some being accepted by a community (and becoming part of the lingua franca of that community), and other bits of technical jargon not becoming so. But Wikipedia is not paper, and is certainly free to cover well-established technical terminology in detail. Remember, perceived "importance" is not an issue here; the ability to write a well-sourced article is what determines whether or not something is worthy of coverage. --EngineerScotty (talk) 16:46, 27 March 2008 (UTC)[reply]
      • This article is not well sourced and it is not well-titled. The term antipattern is not as prevalent as you suggest. The search of Google scholar above yields 719 hits and that includes other usages. If I try other searches in plain English, I get more hits, e.g.
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)[reply]
  • I too object to the move. In spite of its flaws, this article is useful, it contains what people want/need to know, and it is where most computing professionals will expect it, while they would scarcely stumble on Bad habit. That article, incidentally, could well become interesting, but one sees at once that it is a different topic, and I suspects its references are there to prove a point - and this article has more external links and further reading. As to whimsy, that seems to fit a lot of the articles in User:Colonel Warden/creations. Bad practice has indeed been around for a long time, but this approach to recognising, avoiding and repairing it in programming and elsewhere seems to deserve a term of its own. As to "neologism", I feel it was one ten years ago, but is no longer, even if it hasn't made it into the OED, which reacts slower than Wikipedia. I agree that this article has some problems, but feel that is outweighed by its utility. It certainly needs regular pruning and maintenance, as people stick in their pet grudges, which seem to be concentrated in the managerial/organisational rather than technical sections. Another problem is that limiting it strictly to anti-patterns at the expense of e.g. pitfalls involves tricky judgements and makes it less useful, as the borders are a bit fluid. It has also been suggested it should just be a category, but for that it has too much substance of its own and useful descriptions on the links. Perhaps it is worth standing back and trying to say what we want the article to achieve. PJTraill (talk) 01:58, 28 March 2008 (UTC)[reply]
  • 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)[reply]
  • Object. WP:NEO is satisfied, it allows an article about this term: To support the use of (or an article about) a particular term we must cite reliable secondary sources such as books and papers about the term—not books and papers that use the term. This is satisfied, period. We can argue about WP:COMMONNAME for a "a design pattern or behavioral pattern that should be better avoided" in a separate thread. I'd say it is a common name. We can argue also if the article is properly sourced: it is NOT. It cites mainly a primary source, which is against WP:RS. There is a lot of secondary sources. Your argument about "individuals casting the commercial net" completely misses the point (!), but proves that intro section should be re-written if it gave you such impression. --Kubanczyk (talk) 10:19, 11 April 2008 (UTC)[reply]
Rewritten intro, provided sources, please comment. --Kubanczyk (talk) 14:27, 11 April 2008 (UTC)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]

Other uses[edit]

In the course of checking this neologism, I find that it is used in computer science with a different sense to the current Dilbertisms. See, for example, Anti-pattern Matching in which the usage seems more sensible. The term pattern is a long-standing one in computer science which conforms to general usage. Trying to use the term to also mean methodology, practise or style is confusing and unnecessary. Colonel Warden (talk) 10:41, 27 March 2008 (UTC)[reply]

Again, if you refer to the Google Scholar search I linked to above (or better yet, one that looks for occurrences of "anti-pattern" and "software"), you'll find that the term anti-pattern seems to be used in scholarly CS literature more in the sense of the current article. Yes, the article you link to appears in the first 10 hits. But over half of the first 10 hits are links to articles that use anti-pattern in the sense described in this article. For example, the abstract of the top hit says: "We present a library of 38 antipatterns, which describe predefined recognized sources of multithreading related errors in the code."
Personally, I'm not particularly fond of the term "anti-pattern". But the fact remains that it is in common use in scholarly literature, and the usage is predominantly the one promulgated in this article. I do think that the (as you call them) "Dilbertisms" are misplaced here, since the use of anti-pattern in the literature seems to be focused more on technical design errors than on management foibles. But I suspect that kind of thing could be cleaned up by being more stringent in requiring sources for any listed anti-patterns. --Allan McInnes (talk) 15:44, 27 March 2008 (UTC)[reply]
The example given (an anti-pattern meaning a way of matching negative and positive criteria) seems itself a neologism, and far less well-established. If it becomes established, good luck to it, but it has little bearing on this discussion. Moreover, I am not sure what this separate thread is for, and it seems a bit like a distraction from the previous thread. PJTraill (talk) 01:16, 28 March 2008 (UTC)[reply]
It's a separate thread because it is a separate issue. That's all. Colonel Warden (talk) 07:41, 28 March 2008 (UTC)[reply]

Milk monitor promotion[edit]

In the long run, are the results negative to either organization or an employee? --Kubanczyk (talk) 11:57, 5 June 2008 (UTC)[reply]

What does this matter? the point is that the promotion is a facade
Because if the results are not clearly negative then this does not meet the friggin DEFINITION of "anti-pattern" and becomes just a "pattern"; the definition is at the very top of this article! --Kubanczyk (talk) 11:57, 5 June 2008 (UTC)[reply]
The results ARE clearly negative! The employee is given more responsibility and no extra pay.
The description says otherwise: he is given "no more responsibility and no extra pay"; he is expected to work harder but he is not expected to; where are the clearly negative results? --Kubanczyk (talk) 11:57, 5 June 2008 (UTC)[reply]
The results are negative because in the short or long term the employee will consider that this is not a win win relationship. This will do lose his motivation.The result: an employee with less motivation is an employee with less productivity -- Maxi parisi 14:31, 20 December 2008 (UTC)

DLL Hell an anti-pattern?[edit]

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)[reply]

Web of Referral[edit]

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)[reply]

Reducing the Examples List - Removal of redlink and unreferenced items[edit]

I propose that the Organisational and Project Management sections be removed entirely. Each example doesn't demonstrate a pattern - just bad practice or bad habit. Surely to be a pattern (or anti-pattern) then it needs to be repeatable in a systematic way. Also, I still regard "patterns" and hence "anti-patterns" to be specifically IT software development related. For me the Organisation and PM sections don't really belong here as examples. Agree / disagree ??? Liassic (talk) 14:35, 7 January 2009 (UTC)[reply]

Agree, this article is full of OR. I went through and removed all the redlinked, unreferenced items. Jfire (talk) 23:12, 3 February 2009 (UTC)[reply]
The article looks a lot better now. Perhaps future contributors will now make sure that they create an actual article before adding anymore dead links to this page? Let's hope. --Daydreamer302000 (talk) 09:27, 5 February 2009 (UTC)[reply]
I have re-instated the "gas factory" and "n-tier" anti-patterns that you removed. Simply because they do not have a backing article does not mean they are not significant. In fact I would rate "gas factory" as one of the most important today. And a classic example of "n-tier" is OSI which computer companies spent billions on in the 80s.
I will attempt to add the backing articles for these shortly. In the meantime it is useful to leave them as a placeholder and for their brief but useful description. -- AndrewWPhillips (talk) 07:50, 9 June 2010 (UTC)[reply]
Your enthusiasm is appreciated, but Encyclopedic articles should not have 'placeholders' in them. It is proper form here to create the articles first and then link them to related articles where appropriate. I recommend using the sandbox feature of Wikipedia to get the basic articles together and ensure that you can find valid references to back up any major points. As such, this article appears incomplete with these red links and even has the appearance of original research. If these anti-patterns were truly as notable (significant) as you state, it should be no problem to atleast find a single reference to justify their inclusion onto the list. Also, there is atleast one article, expectation handling, which has already been deleted through a RFD due to the fact that there did not exist any valid references or proof of notability. When you did your undo, you reverted a change that had already been challenged and was thus quite valid. And there may have been others. Don't use a blanket undo for just a couple of changes. I'm going to redo my removal of the red-linked articles. If you do want to put any back, please create the articles first (make sure you've got references or they will be deleted faster than you can blink!), and put back in only those articles that have a related Wiki page. Daydreamer302000 (talk) 11:45, 28 July 2010 (UTC)[reply]
Organisational and Project Management "anti-patterns" (or simply bad practice) should be separated more clearly from software anti-patterns - or maybe removed alltogether, since there is the danger of every bad habit in every conceivable area being labeled an "anti-pattern". --217.233.159.189 (talk) 21:57, 7 March 2009 (UTC)[reply]
This article attracts the uncited addition of many ostensible anti-patterns which are likely original research. I've reverted your addition as such, and I agree that unless they can be cited to reliable sources which refer to them as anti-patterns many of the remaining examples should probably be removed as well. Jfire (talk) 22:13, 7 March 2009 (UTC)[reply]
Does this [1] count as a reliable source? If yes, where am I supposed to cite it for the creation of a new list entry? The Java "import static" statement is explained there as a way to avoid the "Static Interface Antipattern". I believe that it is a legitimate entry for in this list of software anti-patterns. --217.233.159.189 (talk) 23:12, 7 March 2009 (UTC)[reply]
The Java docs could indeed be a reliable source. It's a decent start for an entry about the "Constant Interface Antipattern" (I don't see it referred to as the "Static Interface Antipattern"). Even better would be to reference what appears to be the original source: Effective Java (Item 17). Do you have access to that source? Jfire (talk) 01:22, 8 March 2009 (UTC)[reply]
Yes, I'll try to summarize it in a new article. --Libsoc (talk) 09:59, 8 March 2009 (UTC)[reply]

Irony in 2nd paragraph[edit]

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)[reply]

Importance?[edit]

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)[reply]

It was rated higher than Design pattern (computer science)!!! Nonsense. Diego (talk) 12:02, 7 April 2010 (UTC)[reply]
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)[reply]

Waterfall Model description[edit]

[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)[reply]

I don't think the waterfall model belongs here, (I'm working in Agile), the waterall model is fairly well established, and is generally successsful [citation needed]--Oxinabox (talk) 13:16, 20 July 2011 (UTC)[reply]

Anti agile[edit]

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)[reply]

Random Aside[edit]

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)[reply]

Most brief complete definition of Anti-pattern[edit]

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)[reply]

Is Organized Religion an Anti-Pattern?[edit]

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)[reply]

What do you see as the recurring problem that organized religion is attempting to solve? Eric Corbett 16:50, 9 March 2014 (UTC)[reply]

Analysis paralysis[edit]

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)[reply]

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)[reply]
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)[reply]
How many other books on antipatterns are you aware of? Have you read it yourself? Eric Corbett 23:09, 3 January 2015 (UTC)[reply]

Is hatnote necessary?[edit]

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)[reply]

Resolved by another user --SoledadKabocha (talk) 00:45, 31 October 2015 (UTC)[reply]

Callback hell[edit]

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)[reply]

Telescoping constructor[edit]

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)[reply]

Rube Goldberg Machine[edit]

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)[reply]

This article is basically garbage.[edit]

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)[reply]

Massive delete was overzealous[edit]

The recent deletion of ALL of the examples of anti-pattern by https://en.wikipedia.org/wiki/User:Drmies seems to be counter-productive to the overall goals of Wikipedia. P.S. Here is a scholarly law journal reference for armed self defense: https://scholarlycommons.law.northwestern.edu/cgi/viewcontent.cgi?article=6853&context=jclc It is one of very many, even if you disagree with the facts they document. I was going to add the reference, but you deleted the entire section of examples before I could. P.P.S. If armed self-defense is a bad thing, then Ukraine should not hand out machine guns to civilians and instead simply surrender to Russia and turn over the country to Putin. I'm sure you will delete this entire comment, since you disagree with it.

P.P.P.S. If you disagree with my edit, then please delete it, but not the entire section. Also it's not ok for you to cancel/disappear my edits simply because they disagree with your personal political views.— Preceding unsigned comment added by J.S. Gutenberg (talkcontribs) 00:49, 6 April 2022 (UTC)[reply]

@J.S. Gutenberg:Here's a link to the first and second diffs in question for editors. The External links section was also pruned.
Firstly – I don't think Drmies is being counterproductive to Wikipedia's goals, I think they were following WP:SOURCELIST accurately and well. In their second edit summary, they state that "first of all, "lists of examples" are not always encyclopedic; they are more a trash can. second, the only secondary source in this long list (despite the warning) was a spamlink". The warning itself has been there since before 2009; however, most examples on the list were still unsourced. Entries can always been readded with sourcing, but for the time being, they were WP:CRUFT. I recently performed a similar cleanup on List of British cheeses following the same principles. One or two {{cn}} tags would be fine, but for an entire section of unsourced cruft, there's no reason to keep it in when it could potentially be utterly baseless. It doesn't improve the encyclopedia to leave this stuff in.
Secondly – if you have a source, I don't think Drmies would be in opposition to restoring some of the list's entries with that source added. In fact, you added to the entry on gun control, which you added in the first place, without a source. Anyone would look at that entry and count it as WP:SYNTHESIS; this isn't an academic paper, and we don't draw conclusions together that based on X and Y, something must be Z. Something that contentious would need a source, and Drmies was correct to remove it.
If the source you list is "one of very many", you should not have had an issue with citing it when originally adding it in. Adding an entry on gun control without a source and only later stating "It shouldn't have been removed, I have a source" is not how referencing works, which I think we all know.
Thirdly – "If armed self-defense is a bad thing, then Ukraine should not hand out machine guns to civilians and instead simply surrender to Russia and turn over the country to Putin. I'm sure you will delete this entire comment, since you disagree with it." is entirely uncalled-for. I suggest you retract that, as it's a), a leading question – "if you don't agree with this then you must believe this" – and b), it's just rude. I think we can have nicer discussions on the removal of material than this. You could have just lead with "If you disagree with my edit, then please delete it, but not the entire section", which I think is the heart of the matter.
"Also it's not ok for you to cancel/disappear my edits simply because they disagree with your personal political views." – the issue of gun control is obviously contentious, and I hope you'd understand that statements like "Gun control is not crime control and may have the unintended consequence of increasing crime since it makes law-abiding victims defenseless against crime. In contrast, armed self-defense by the law-abiding has repeatedly been proven to be the safest and most effective means of self-defense against crime" would need some very, very good referencing to warrant inclusion and not be counted as WP:SYNTHESIS. Personally-held views regardless, contentious material needs sourcing, or it may be rightfully removed. That's solid Wikipedia policy.--Ineffablebookkeeper (talk) ({{ping}} me!) 11:00, 6 April 2022 (UTC)[reply]
Also – nowhere in the source you linked are anti-patterns mentioned, making that entry by definition WP:SYNTHESIS and thus unsuitable for inclusion.--Ineffablebookkeeper (talk) ({{ping}} me!) 11:04, 6 April 2022 (UTC)[reply]
J.S. Gutenberg, Ineffablebookkeeper is right. And this accusation, of your edit being "canceled" (that's actually funny) because of my views--PLEASE, by all means, try to get a consensus that your text, which I'll quote in full, is somehow encyclopedic, acceptable, and neutral:

While often well-intentioned, by definition gun control affects only the law-abiding, reducing their self-defense rights against crime, while criminals ignore it and continue to abuse guns to harm their victims. Gun control is not crime control and may have the unintended consequence of increasing crime since it makes law-abiding victims defenseless against crime. In contrast, armed self-defense by the law-abiding has repeatedly been proven to be the safest and most effective means of self-defense against crime, as measured in government-sponsored criminology research.

Ineffablebookkeeper did a pretty good job explaining some of the problems here; I'll just say that your edit, and the complaint here, makes me think I dropped into a Facebook thread. Drmies (talk) 12:51, 6 April 2022 (UTC)[reply]
I refer to this page all the time for that list of anti-patterns. That delete sucks :( Hyperactive dave (talk) 02:05, 23 April 2022 (UTC)[reply]
@Hyperactive dave: it's not gone forever, spud, you can find the list of now-removed examples in this diff. You're welcome to refer back to it for personal use, and that diff isn't going anywhere; we just can't have a list of uncited entries and call it encyclopedic.--Ineffablebookkeeper (talk) ({{ping}} me!) 10:18, 23 April 2022 (UTC)[reply]

Reply to the mass deletion[edit]

My first concern with this edit is that it was by somebody who was not invested in maintaining this article. There was already an agreement in place amongst its typical curators that nothing is added to the list unless it warrants its own separate page on Wikipedia. This ensured that at a minimum, every item in the list had atleast some review, at some point, from an encyclopedic standard. A more appropriate action would have been to remove items from the list whose pages did not meet the citation standard (and probably delete - or atleast RFD those).

Secondly, I take some exception to saying that lists inside of encyclopedias are trash cans. Perhaps in some very specific scenarios, this is true. However any quick glance through any reputable encyclopedia will reveal that there are valid and consistent use of lists where neccesary and in obvious context. It had to be obvious from the traffic that this the go-to list of commonly referred to anti pattern examples on the internet.

That leads to another concern about the somewhat condescending link to the history now replacing what was previously a relatively well-curated page. No common user is going to going into the talk page or the history. If they are looking for examples, now they must (and WILL) look somewhere else.

On that point, I notice that the user who made this edit didn't bother go through and clean up any of the other 'trash can' lists that are on the non-English sites. Japanese, Polish, Spanish, German, French, etc... all have such lists. And many of those pages are in much worse shape than this page ever was, having red-links sprinkled throughout and no source references whatsoever.

I'm tempted to revert this edit on the basis that atleast I've been one of the active curators who has actively participated in the upkeep of this page. If someone can point me to a valid reference suggesting that lists are now somehow invalid in encyclopedic content (not Wikipedia, which clearly does not say such a thing:WP:SOURCELIST, but in general), I'll consider holding off. At a minimum, such a massive change should be discussed with those of us who taken the time over the years keep this article in decent shape. — Preceding unsigned comment added by Daydreamer302000 (talkcontribs)

Unsourced enormous lists of terms aren't helpful to anybody. What is needed is secondary sources describing what was listed as pertinent examples. ScottishFinnishRadish (talk) 16:42, 11 May 2022 (UTC)[reply]
I am invested in the integrity of the project. The huge list of original research you are curating is not in the best interest of the project; we are not a webhost for lists of examples. What happens on other wikis is not our concern. That long list had only a few sources, and many of them were simply not acceptable--this is a website whose authority is unproven, this is even less authoritative and seems like a hobbyist's site, this might be something but it begs the question of what this list is, and this is just a blog. There are two more citations, to books--but one of those, for the Peter principle, is clearly not a secondary source. So, no, "lists" aren't inherently anti-encyclopedic, but this list of examples is of no encyclopedic value, and is woefully undersourced--undercurated, one might say. If you want to improve the article, improve the article. One could start with that "Project management anti-patterns", which seems to elevate the status of one particular book to an unacceptable level. Drmies (talk) 17:32, 11 May 2022 (UTC)[reply]
@Drmies: "I am invested in the integrity of the project." -
But if that was true, then why didn't you take the time and go through the list and cull out the items that are unacceptable? Even just a few. I'm completely willing to put the time and effort into this article and do this. You've taken a hammer, and pounded a nail in. And that's good that you've managed this. But the problem wasn't a nail, and the solution wasn't a hammer. The result is a couple of paragraphs of cobbled together original research ramblings, as opposed to links to other articles that atleast (at a minimum) managed to pass snuff long enough to stand on their onw on this site no matter what their issues with citations were, or their legitimacy as anti-patterns was. Whatever your intentions, the 'article' is now of vastly lower quality than it was before. That couldn't possibly be what you meant to happen. But that's exactly what has happened. "If you want to improve the article, improve the article. One could start with that "Project management anti-patterns", which seems to elevate the status of one particular book to an unacceptable level." - And that's why I'm tempted to revert this change. As a result of your edit, we now have a worthless page with a couple of low quality scribbles. If you'd posted what you want to do here in the talk, maybe even made an example edit. One of us here (probably me as I've shown no fear in deleting stuff from this article), would have gone through and done the work to not only make it right, but keep it up to standard. Daydreamer302000 (talk) 16:26, 17 May 2022 (UTC)[reply]

The huge list of original research you are curating is not in the best interest of the project; we are not a webhost for lists of examples. What happens on other wikis is not our concern. That long list had only a few sources, and many of them were simply not acceptable--this is a website whose authority is unproven, this is even less authoritative and seems like a hobbyist's site, this might be something but it begs the question of what this list is, and this is just a blog. There are two more citations, to books--but one of those, for the Peter principle, is clearly not a secondary source. So, no, "lists" aren't inherently anti-encyclopedic, but this list of examples is of no encyclopedic value, and is woefully undersourced--undercurated, one might say. If you want to improve the article, improve the article. One could start with that "Project management anti-patterns", which seems to elevate the status of one particular book to an unacceptable level.

@Daydreamer302000: I'd say "not invested in maintaining this article" is perhaps not the right description. Drmies acted, I'd say, under the Bold, revert, discuss cycle, and cleaning up a mass list of examples that had no citations (and had not had any for a considerable length of time) is an improvement. They're not gone forever, we can retrieve them easily from the edit history; and this isn't an example of a user churning out a barrage of edits of mixed quality with one non-descriptive edit summary or no edit summary at all, resulting in a shit ton of work for other editors. (Which I've had the misfortune of dealing with recently.) That would be someone not invested in maintaining articles or considering the viewpoints of others; Drmies' action wasn't that.
"There was already an agreement in place amongst its typical curators that nothing is added to the list unless it warrants its own separate page on Wikipedia" – okay, that's a good place to start, but it was noted a year ago on the Talk page here that a number of examples listed just don't even fit the definition of an anti-pattern. Combine that with no citations next to them, and what you have is editor WP:SYNTHESIS of what various editors think fits the definition of an anti-pattern – but that's not how this works, we should only have examples on the list considered to be anti-patterns if they're considered anti-patterns by reliable inline sources.
(Sorry if this seems pointed, I use a lot of emphasis when I'm writing.)
I mean, deleting links to articles that already don't meet Wikipedia's standards for notability would be a great starting point, but it's not the problem here. The problem is that the article kinda ended up being the Chinese takeout special of grabbing bits and pieces here and there and shoving them into one proverbial dish. One proverbial and mostly-uncited dish.
"I take some exception to saying that lists inside of encyclopedias are trash cans" – no, I've seen this happen on Wikipedia, and lists that don't have much proper work put into them can become a landfill article if no-one sits down and decides to hunt for some proper sources, and if they don't get much editing traffic. Worst case, they can end up with advertising content in them – like I mentioned last time, List of British cheeses ended up with what I can only assume are entries added by editors wishing to promote products they had a personal link to.
Any article can fall victim to nonsense and degrading quality over time, it's why we can delist articles from Featured Article status and why that's noted on the Talk page, but List articles, because of their uncommon layout and content structure, make this process much easier to speed up. Instead of a sentence here and there, just squeezing in five or more new bullets with blue wikilinks can go massively unchecked on a List article with very little editing traffic. If someone has a long watchlist and not too much time, I can see how it would be easy to assume that a bluelinked article would be a valid entry; only on further inspection and investigation would you maybe realise hey, this is a completely different concept we're linking to, and it doesn't need to be here.
"However any quick glance through any reputable encyclopedia will reveal that there are valid and consistent use of lists where neccesary and in obvious context." – we're not debating the purpose of a List article here; this List is great, but it needs upkeep and correct citing to stay great. And other encyclopedias aren't relevant here; a lot of them tend to lift from Wikipedia outright.
"That leads to another concern about the somewhat condescending link to the history now replacing what was previously a relatively well-curated page."
I wouldn't call an article with numerous uncited entries, with warnings about how uncited they are dating back to 2009, well-curated. If it's not cited, then I can't tell how well-curated it is. It could be, for all I know, really well put-together, using commonly-held knowledge in its field; likewise, it could be the work of one editor with a drive to just add spurious entries. That's the point of citations. They let readers, readers for whom this may not already be their area of interest, know that what they are reading is WP:VERIFIABLE.
"If they are looking for examples, now they must (and WILL) look somewhere else." Yeah – they'll look to the sources that ought to be used in this article. If there's other places they can find examples of anti-patterns, why are we not citing from them?
"On that point, I notice that the user who made this edit didn't bother go through and clean up any of the other 'trash can' lists that are on the non-English sites. Japanese, Polish, Spanish, German, French, etc... all have such lists."
Really spurious complaint. Do you know how many List articles Wikipedia has? I mean, here's the Lists of books article, a list of lists. I count over 200. Here's the Lists of lists. Here's the List of lists of lists. Wikipedia has thousands of lists, and you could spend a lifetime cleaning them up, and you would still not even be close to finishing. I mostly clean up Japanese arts and culture articles, and my watchlist is 500 articles long, and I am nowhere near close to ever cleaning up this one topic.
Also, we don't have jurisdiction over non-English Wikipedias. They're sister projects, but they rule themselves. We're not the mothership.
Long story short, you don't have to have proved that you spend all your time in one area cleaning up one thing to conduct a bold but necessary edit. I get that it can be a bit of a red flag to have someone who doesn't usually edit this stuff come in and conduct a large change, really I do, but we are the encyclopedia that anyone can edit for a reason, and sometimes it's necessary. It's more alarming when it's an editor who doesn't respond to messages, doesn't engage with others and doesn't explain their reasoning, but Drmies isn't that.
"I'm tempted to revert this edit on the basis that atleast I've been one of the active curators who has actively participated in the upkeep of this page."
That's not a valid reason to revert an edit. "I've been editing this article longer than them" is not, and never will be a valid argument for a revert. Throw that out of the window right now; if that's your basis for reverting an edit, that does not stand up.
I also feel obliged to point out that Wikipedia doesn't have curators. You gotta come up with an argument that isn't "I've been editing this for longer than you".
Looking at your edits to this article, you noted in 2015 that "If it can't be sourced and isn't notable enough to stand as its own article, please don't add it to the list. This material only detracts from this article."
This tends to suggest that you can source material that was removed, and that uncited material does detract from the article. And I rather think that agrees with Drmies' point; unsourced, uncited entries purported to be anti-patterns, but with no actual citations on this List as to whether they are or not, detract from the article.
Doesn't matter how many citations an entry may have on its own article; it can be a noted phenomenon without being an anti-pattern.
If you can cite any of the removed entries as being described as anti-patterns, you're welcome to add them back in. But just because something is bluelinked, doesn't make it an anti-pattern, and just because you've edited this article 32 times since 2009, doesn't make your edits any more worthwhile than Drmies'.
(Also, you'd be undoing a number of references and constructive edits conducted by Jonathan de Boyne Pollard. So I'd still not undo the bold removal of uncited content.)--Ineffablebookkeeper (talk) ({{ping}} me!) 17:37, 11 May 2022 (UTC)[reply]
But Wikipedia does have curators. It's all of the people who invest their personal time and effort to contribute positively to this site. The site wouldn't, indeed couldn't, exist or survive without its curators. Daydreamer302000 (talk) 16:26, 17 May 2022 (UTC)[reply]
I'm sorry, but that's not a logical retort. This isn't the front page of Wikipedia or some high traffic site like the article on China. Just because an article has low traffic and few edits does not mean that the few who do come along and keep it up are doing less of a job with what they time they can volunteer. I really don't think that's fair on anybody on the site who invests their time to look after quieter articles. Daydreamer302000 (talk) 16:26, 17 May 2022 (UTC)[reply]
WP:OWN is never a good way to proceed. No sources were provided to support the vast majority of the listing; which was as excessive and unencyclopedic as those things tend to be. I'll note that this article is Anti-pattern, not List of anti-patterns; and that, like most encyclopedic topics, it is almost certainly possible to have an in-depth article on it without resorting to a listing (for example we don't have a list of molecules in molecule; we don't need a list of wars in war to provide an overview of the subject; so on so forth... RandomCanadian (talk / contribs) 22:01, 11 May 2022 (UTC)[reply]
Yes. Imagine a list of beers in Beer. List of beers itself is a redirect to an article which doesn't have a list of beers, thankfully. Drmies (talk) 16:02, 12 May 2022 (UTC)[reply]
"WP:OWN" - Agreed and that's kind of my point. You've gone through and made a radical change to an article as if you owned it. I don't think I can be convinced that a more appropriate action would not have been to take the time to first post here in the Talk page what you've got in mind along your justification (which I actually fundamentally agree with), and make a sample edit along those lines. Nobody would have disagreed with you, atleast I don't think so. Even if somebody did disagree, it would have been a good discussion. And indeed, we would have probably taken it on ourselves to clean up the article in the same consistent fashion. I'm not saying it would have happened overnight. As has been pointed out in one of the 'attacks' above, this article doesn't get a lot of action. But it would have happened. Now instead of cleaning a relatively tidy list, it's cleaning up a mess that's borderline RFD standard. Daydreamer302000 (talk) 16:26, 17 May 2022 (UTC)[reply]
Daydreamer302000, you can't claim I pretend to own something when I made only three edits. As "OWN" indicates, "Some contributors feel possessive about material they have contributed to Wikipedia"--that's not me in this article. If you want an all-caps link for what I did, it's WP:BOLD but, as you can see, I'm not alone in my opinion on article content. I do wonder why you refer to talk page posts here (by a number of different editors) as "'attacks'", in quotation marks. And I don't know what you mean with "a mess that's borderline RFD standard", or how that applies here. Drmies (talk) 17:00, 17 May 2022 (UTC)[reply]
@Daydreamer302000: fair enough that this article doesn't get much traffic; that's a fair point. But Wikipedia doesn't have a formal, or even really informal, category of article 'curators'; my point is that the term implies an 'in-group' of editors responsible for an article, which is something that very obviously sidles towards WP:OWN territory. This site couldn't exist without its editors – but that's all of them, not just those who edit an article all the time. This means IP address editors, those uninvolved who drive-by with bold yet necessary contributions, and those for whom this isn't their area of study or interest usually. The semantics are kinda similar to people who insist that articles be referred to as 'articles', not 'pages'; it gives a clearer idea of what Wikipedia is and what it's here for. An insular group of curators can be a bad thing for an article, as it's necessary to have fresh takes on the subject from outsiders to write an article digestible to those who may not know the subject going in.
I'm conscious of the fact, for instance, that I've got a relatively high percentage of contributions to the Kimono article. Having an article's quality rest on one, two or three editors means it has a higher potential to go shit-shaped; instead of the quality of many editors levelling out to produce a good article, in this instance, my quality of work is the quality of article. You never really want that; that turns editors into lynchpins with the words "trust me on this" written on.
Though bad edits by drive-by editors do happen, I'm also very aware that having a small, insular group of contributors can ruin, for want of a better term, the biodiversity of an article. Wikipedia is built by those who choose a small interest and work at the articles on it, but it's a balancing act with the fact that years of editing only by a handful of editors can create large, structural issues, beyond the vandalism of one or two paragraphs.
"As has been pointed out in one of the 'attacks' above, this article doesn't get a lot of action. But it would have happened." – the point is that it hasn't had the right action for several years. The point is that entries were added with no citations actually backing them up as anti-patterns. That's the point. There's nothing wrong with curating quieter articles, but you have to cite the information you're adding. I know it's a weighing up of "do I add this and cite it later or do I spend time writing one smaller portion that has a citation", I've done that and I've been there, but this is years of uncited material.
If this article is RfD material, that implies you can't find sources. If it's not – then let's find some sources.--Ineffablebookkeeper (talk) ({{ping}} me!) 09:38, 18 May 2022 (UTC)[reply]
I regarded the anti-pattern Wiki List as a rather handy reference and rather encyclopaedic.
For those who don't know, a list of examples makes an article an exceptionally useful document, as the examples can quite easily be used as a reference for those who aren't familiar with the topic.
To that end, if anybody would like to see the original list, or if anybody wants to instantiate the list now it has been removed, the original list can be found here.
https://web.archive.org/web/20191113002708/https://en.wikipedia.org/wiki/Anti-pattern 86.16.67.51 (talk) 06:43, 17 July 2022 (UTC)[reply]
As I stated further up, the revision that saw the list removed has not been revision deleted, nor is it likely to be; no need for a WayBack Machine link, you can find it here.--Ineffablebookkeeper (talk) ({{ping}} me!) 10:52, 17 July 2022 (UTC)[reply]