<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/zv7vkxmid" -->

---
title: Symptoms of Bad Software Design | daily.dev
description: Four classic symptoms of bad software design are examined with practical examples and solutions. Rigidity (cascade of changes from tight coupling) is addressed...
canonical: https://daily.dev/posts/zv7vkxmid
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Symptoms of Bad Software Design | daily.dev
og:description: Four classic symptoms of bad software design are examined with practical examples and solutions. Rigidity (cascade of changes from tight coupling) is addressed...
og:url: https://daily.dev/posts/zv7vkxmid
og:image: https://api.daily.dev/og/posts/zv7VkxmId.png
og:image:alt: Post cover image
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Symptoms of Bad Software Design

**[Marcos Lobo](https://daily.dev/sources/ecbg5hr2onwwnpbkypf2v)** · [@marcosflobo](https://daily.dev/marcosflobo) · 322 upvotes · 21 comments

## Summary

Four classic symptoms of bad software design are examined with practical examples and solutions. Rigidity (cascade of changes from tight coupling) is addressed with the Strategy Pattern and Open/Closed Principle. Fragility (unrelated breakage from changes) is solved through encapsulation and Interface Segregation. Immobility (inability to reuse code) is fixed via Clean Architecture and Dependency Inversion. Viscosity (resistance to doing things correctly) is tackled through automation and infrastructure improvements. Each symptom includes a concrete scenario and actionable solution.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://newsletter.optimistengineer.com/p/symptoms-of-bad-software-design>

## Community discussion

Top comments from developers on daily.dev.

**@radmilomarkovic** · 26 upvotes

> Interesting article. First step to implement this is recognizing the bad patterns in the code which can be only understandable if someone made many mistakes before. In the world of the artificial intelligence it is difficult to learn those patterns as most people now outsource the thinking part to model.

**@timsurov** · 8 upvotes

> On mistakes we learn

**@a\_meb\_a** · 6 upvotes

> this is absolute cinema!

**@erikpillon** · 5 upvotes

> Nice article indeed. Clear and practical examples that pop ups relatively often. Bookmarked ;)

**@ralsei** · 4 upvotes

> Well-written article. I enjoyed reading it.

## Similar posts on daily.dev

- [Don’t just attend KubeCon \+ CloudNativeCon, Merge Forward your experience\!](https://daily.dev/posts/don-t-just-attend-kubecon-cloudnativecon-merge-forward-your-experience--l0rpp73x8) · CNCF · 1 upvotes · 0 comments
- [Announcing H2 2026 KCDs](https://daily.dev/posts/announcing-h2-2026-kcds-m96goajm1) · CNCF · 1 upvotes · 0 comments
- [Two months of Open Community Groups](https://daily.dev/posts/two-months-of-open-community-groups-asf52zhbs) · CNCF · 0 upvotes · 0 comments
- [CNCF Unveils Schedule for KubeCon \+ CloudNativeCon Europe 2026](https://daily.dev/posts/cncf-unveils-schedule-for-kubecon-cloudnativecon-europe-2026-ikhcoa5cb) · CNCF · 2 upvotes · 0 comments
- [CNCF Debuts KubeCon \+ CloudNativeCon Japan 2026 Schedule](https://daily.dev/posts/cncf-debuts-kubecon-cloudnativecon-japan-2026-schedule-xp5pyudub) · CNCF · 1 upvotes · 0 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming), [#architecture](https://daily.dev/tags/architecture), [#design-patterns](https://daily.dev/tags/design-patterns)

[View this post on daily.dev](https://daily.dev/posts/zv7vkxmid)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/zv7vkxmid","headline":"Symptoms of Bad Software Design","text":"Shared: Symptoms of Bad Software Design","url":"https://daily.dev/posts/zv7vkxmid","datePublished":"2026-05-06T20:35:01.206Z","dateModified":"2026-05-06T20:36:09.824Z","author":{"@type":"Person","name":"Marcos Lobo","url":"https://daily.dev/marcosflobo","image":"https://avatars.githubusercontent.com/u/5293167?v=4","description":"Senior Software Engineer & Tech Lead. Writing The Optimist Engineer optimistengineer.com","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":3030}},"image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":322},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":21}],"sharedContent":{"@type":"WebPage","url":"https://api.daily.dev/r/rSQSHK4x2"},"comment":[{"@type":"Comment","text":"Interesting article. First step to implement this is recognizing the bad patterns in the code which can be only understandable if someone made many mistakes before. In the world of the artificial intelligence it is difficult to learn those patterns as most people now outsource the thinking part to model.","datePublished":"2026-05-06T21:37:39.876Z","url":"https://daily.dev/posts/zv7VkxmId#c-nZZ267Gx5","author":{"@type":"Person","name":"Radmilo Markovic","url":"https://daily.dev/radmilomarkovic","image":"https://media.daily.dev/image/upload/s--gblKAFwc--/f_auto/v1774901807/avatars/avatar_pw9CkxZCzHWQjy1MHbhtO?_a=BAMAMiWQ0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":26}},{"@type":"Comment","text":"On mistakes we learn","datePublished":"2026-05-07T12:45:44.678Z","url":"https://daily.dev/posts/zv7VkxmId#c-BNgYppMJw","author":{"@type":"Person","name":"Tim Surov","url":"https://daily.dev/timsurov","image":"https://lh3.googleusercontent.com/a/ACg8ocL9laFg1bTg6IlfC9jSvbm-x9iX9NXz3Cs6INo0nQt8Vqfdnt8Y=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":8}},{"@type":"Comment","text":"this is absolute cinema!","datePublished":"2026-05-07T11:42:45.881Z","url":"https://daily.dev/posts/zv7VkxmId#c-uMZEohT1K","author":{"@type":"Person","name":"Phillippe Michel Weir","url":"https://daily.dev/a_meb_a","image":"https://media.daily.dev/image/upload/s--BwH-uTMq--/f_auto/v1740136991/avatars/avatar_N403VFK9lAHNRwlSAhl1h"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":6}},{"@type":"Comment","text":"Nice article indeed. Clear and practical examples that pop ups relatively often. Bookmarked ;)","datePublished":"2026-05-07T15:09:24.384Z","url":"https://daily.dev/posts/zv7VkxmId#c-3O32v2QCl","author":{"@type":"Person","name":"ErikPillon","url":"https://daily.dev/erikpillon","image":"https://lh3.googleusercontent.com/a/ACg8ocLWO8dp0oVIUTEvKyuZDm5ctSGgiOTfTIzA7eVj4Q8aAk4=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":5}},{"@type":"Comment","text":"Well-written article. I enjoyed reading it.","datePublished":"2026-05-07T16:40:29.494Z","url":"https://daily.dev/posts/zv7VkxmId#c-GCAPq4Qjd","author":{"@type":"Person","name":"Ralsei","url":"https://daily.dev/ralsei","image":"https://media.daily.dev/image/upload/s--4OFiaBRW--/f_auto/v1770997251/avatars/avatar_GZQ6TUkl08VeKSBvLh49j?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/ecbg5hr2onwwnpbkypf2v","name":"Marcos Lobo"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Marcos Lobo","item":"https://daily.dev/sources/ecbg5hr2onwwnpbkypf2v"},{"@type":"ListItem","position":3,"name":"Symptoms of Bad Software Design"}]}
```

