Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesWorking engineers do face pattern decisions, and experienced developers do not agree on which classic patterns are worth using. But the published surveys do not show that choosing a fitting pattern is a daily struggle for most engineers, and they do not show it is confined to learners. They measure how practitioners rate patterns and how often some of them use them. Neither measures how often the “which design pattern fits?” question actually comes up or gets stuck.
What the evidence can and cannot answer
Two peer-reviewed surveys are the most relevant data on this question. They cover different groups, places and years, so they are best read side by side.
As an Amazon Associate I earn from qualifying purchases.
| Study | Sample | Location | What it measured | What it does not measure |
|---|---|---|---|---|
| Zhang et al., “A survey of experienced user perceptions about software design patterns,” Information and Software Technology, 55(5), May 2013, pp. 822–835 | 206 usable responses from experienced pattern users | Not stated in the reviewed evidence | Which Gang of Four (GoF) patterns experienced users consider useful or not useful for development and maintenance | How often engineers struggle to choose a pattern |
| Sousa et al., “Design Patterns in Practice from the Point of View of Developers,” Abakós, 8(1), May 2020, pp. 20–42 | 58 active developers and maintainers | Belo Horizonte, Brazil | How often respondents use GoF patterns, and the barriers they report | A global industry rate of pattern use or selection difficulty |
Neither study was designed to count selection difficulty, so neither can settle whether the question is common. What they do show is that practitioners have opinions about patterns, that those opinions differ, and that actual use varies from setting to setting.
Experienced users rank the GoF catalog unevenly
The 2013 survey asked which GoF patterns expert users consider useful or not useful. Of the catalog, only three patterns were widely regarded as valuable. Around one quarter gained very low approval or worse. Those figures describe the perceptions of the 206 experienced respondents in that study, not the experience of every engineer.
#1 Best Overall
That split has a practical implication. If experienced users disagree about whether a pattern is worth using at all, a developer choosing among patterns is working with uneven guidance. The survey does not prove that this causes frequent indecision, but it is consistent with the feeling that choosing a pattern is less obvious than the catalog suggests.
A regional sample: 40 percent rarely or never used patterns
The 2020 study surveyed 58 active developers and maintainers in Belo Horizonte, Brazil. Forty percent of them said they rarely or never applied GoF patterns. That is a single local sample, so it describes that group rather than the industry as a whole.
Rank #2
The same study asked respondents about barriers. They named the following, and these are the participants’ reported barriers, not universal causes:
Free tools Windows power users keep installed
One-click scans. No signup required.
- Lack of knowledge about the patterns or how to apply them.
- Lack of company incentive to use them.
- Documentation gaps that make a pattern hard to follow in existing code.
- Overengineering concerns, where a pattern adds more structure than the problem needs.
- Effort spent adapting a pattern to the specific problem.
- Missing predefined tests that would make a pattern easier to adopt safely.
Several of these barriers appear regardless of seniority. Knowledge gaps and documentation gaps are not limited to newcomers. Overengineering and adaptation effort are concerns that tend to grow with experience, because experienced engineers are more likely to see the cost of an unnecessary abstraction.
Is it a learner problem?
The “learner thing” framing does not hold up well against this evidence. The 2013 sample was made up of experienced pattern users, and the 2020 sample was made up of active developers and maintainers, not students. Both groups were asked about patterns in practice.
The same evidence does not show that experienced engineers never struggle with the choice. Neither study measured the moment when a developer asks which pattern fits a particular problem, so the answer to whether that moment is common remains open. A reasonable reading is that pattern choice is a practitioner concern with uneven answers, and the frequency with which it bites depends on the team, the codebase and the problem.
Rank #4
A practical way to decide when a pattern seems to fit
The evidence does not support a universally correct pattern for any problem. It does suggest a set of axes that make the decision more concrete:
- Describe the problem and context in plain terms. Name the recurring change or variation you expect, such as swapping implementations or notifying several objects of a state change. A pattern is only a fit for the problem it addresses.
- Treat reported usefulness as a starting point. The 2013 ratings tell you which patterns experienced users value, not which one your code needs. Use them to shortlist candidates, not to finish the decision.
- Estimate the adaptation effort and complexity. Ask how much code you would need to change to fit the pattern to your problem, and whether the result stays readable. The 2020 respondents’ concern about adaptation effort suggests this is where many decisions stall.
- Check local factors. Consider whether your team knows the pattern, whether the codebase documents it, whether the company supports the time it takes, and whether tests exist that would catch mistakes during adoption.
- Prefer the simplest structure that solves the problem. If the candidate pattern adds layers that no current requirement needs, the overengineering concern from the 2020 study applies directly.
What people actually ask
Learners and working developers often phrase the question differently. A post on r/learnprogramming asked which design patterns are used most in day-to-day programming and which ones are worth knowing for industry. That wording is useful as an illustration of how the question is asked, but it is one community post, not a representative sample of engineers.
Best Value
The sources reviewed here do not establish a ranking of the most-used patterns in industry. The 2013 study ranks perceived usefulness among experienced users, and the 2020 study reports use within one regional sample. Neither gives a list of the patterns most engineers meet in their daily work.
The reference most of these studies assume
When the 2013 study refers to GoF patterns, it points to Design Patterns: Elements of Reusable Object-Oriented Software by the Gang of Four as the best-known resource for the catalog it evaluates. Reading the original catalog is a sensible way to understand what each pattern addresses and what it costs to adapt, especially before judging its usefulness for a particular codebase.
Quick Recap
Sources
- Zhang et al., “A survey of experienced user perceptions about software design patterns,” Information and Software Technology, 55(5), May 2013, pp. 822–835.
- Sousa et al., “Design Patterns in Practice from the Point of View of Developers,” Abakós, 8(1), May 2020, pp. 20–42.
- A community post on r/learnprogramming, cited only as an example of how the question is phrased.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.




