<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v" -->

---
title: A complex system designed from scratch never works
description: A software architect reflects on a failed mainframe rewrite project to illustrate Gall's Law: complex systems designed from scratch never work, while working...
canonical: https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: A complex system designed from scratch never works | daily.dev
og:description: A software architect reflects on a failed mainframe rewrite project to illustrate Gall's Law: complex systems designed from scratch never work, while working...
og:url: https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v
og:image: https://api.daily.dev/og/posts/E1zYZVM5V.png
og:image:alt: A complex system designed from scratch never works
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.

# A complex system designed from scratch never works

**[The Art of Simplicity](https://daily.dev/sources/bartwullems)** · 4 min read · 17 upvotes · 2 comments

## Summary

A software architect reflects on a failed mainframe rewrite project to illustrate Gall's Law: complex systems designed from scratch never work, while working complex systems always evolved from simpler ones. Management rejected an incremental approach in favor of a full upfront redesign, driven by fear of delivering an incomplete product. The result was years of struggle with no working system. The key lesson: complexity must be earned through iterative, real-world feedback — not front-loaded through exhaustive upfront design. If you can't ship a small working version first, you don't yet understand the problem well enough to design the full solution.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://bartwullems.blogspot.com/2026/07/a-complex-system-designed-from-scratch.html>

## Questions this post answers

### What is Gall's Law and how does it apply to software rewrites?

Gall's Law, from John Gall's book Systemantics, states that a complex system that works is invariably found to have evolved from a simple system that worked, and a complex system designed from scratch never works and cannot be patched to work. Applied to software rewrites, it means large systems should be built incrementally from a small working core rather than fully designed upfront, since evolved complexity is validated by real usage while front-loaded complexity rests on untested assumptions.

_Architects weighing rewrite strategies can find real-world case studies like this one on daily.dev._

### Why do big bang legacy system rewrites often fail?

Big bang rewrites often fail because they delay real user feedback until the very end, when the cost of being wrong is highest. In one mainframe rewrite case, management rejected an incremental proposal out of fear the business would not accept a minimal first version, so the entire project bet on getting a massive, never-tested system right in a single shot, and years later the organization was still struggling to get it running.

_Teams debating rewrite strategy can compare real incremental-vs-big-bang outcomes on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@aleksei\_aleinikov** · 0 upvotes

> Exactly. A small working system reveals more than months of upfront design. Complexity should grow through use, feedback, and evidence.

**@thedevalex** · 0 upvotes

> The fear of making mistakes can be an incredible driver to wanting to plan everything out to the finest detail before you even get started. This is easy to fall into.

## Similar posts on daily.dev

- [What the hell have you built.](https://daily.dev/posts/what-the-hell-have-you-built--hnpv2bjl3) · Hacker News · 42 upvotes · 5 comments
- [The 20 Software Engineering Laws](https://daily.dev/posts/the-20-software-engineering-laws-owj1euvui) · Tech World With Milan · 72 upvotes · 7 comments
- [Growing Software](https://daily.dev/posts/growing-software-mew6fcra2) · Ruby Flow · 59 upvotes · 4 comments

---

Tags: [#career](https://daily.dev/tags/career), [#architecture](https://daily.dev/tags/architecture)

[View this post on daily.dev](https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v)

```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":"TechArticle","headline":"A complex system designed from scratch never works","url":"https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v"},"datePublished":"2026-07-10T04:50:38.040Z","dateModified":"2026-09-14T06:49:55.462Z","description":"A software architect reflects on a failed mainframe rewrite project to illustrate Gall's Law: complex systems designed from scratch never work, while working...","image":"https://media.daily.dev/image/upload/s--HRgLpUt6--/f_auto/v1722860399/public/Placeholder%2003","thumbnailUrl":"https://media.daily.dev/image/upload/s--HRgLpUt6--/f_auto/v1722860399/public/Placeholder%2003","isAccessibleForFree":true,"articleSection":"The Art of Simplicity","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"The Art of Simplicity","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/52b68c70636d44f0901ae7cd107c9438","url":"https://daily.dev/sources/bartwullems"},"commentCount":2,"discussionUrl":"https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":17},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":2}],"keywords":"career,architecture","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"The Art of Simplicity","item":"https://daily.dev/sources/bartwullems"},{"@type":"ListItem","position":3,"name":"A complex system designed from scratch never works"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v","comment":[{"@type":"Comment","text":"Exactly. A small working system reveals more than months of upfront design. Complexity should grow through use, feedback, and evidence.","datePublished":"2026-07-11T17:29:48.004Z","url":"https://daily.dev/posts/E1zYZVM5V#c-qIGSBZYGm","author":{"@type":"Person","name":"Aleksei Aleinikov","url":"https://daily.dev/aleksei_aleinikov","image":"https://lh3.googleusercontent.com/a/ACg8ocJ_l1qn_U-_YIOWNm3o7ajQpJM5DHFhA-FW4lS7TeUPB4h8uIM=s96-c"}},{"@type":"Comment","text":"The fear of making mistakes can be an incredible driver to wanting to plan everything out to the finest detail before you even get started. This is easy to fall into.","datePublished":"2026-07-12T18:22:02.528Z","url":"https://daily.dev/posts/E1zYZVM5V#c-fGBGSDCDs","author":{"@type":"Person","name":"Alex","url":"https://daily.dev/thedevalex","image":"https://media.daily.dev/image/upload/s--ypfz8Hse--/f_auto/v1731086373/avatars/avatar_Tr72WSVlSkNCwF4rCk6Rg"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/a-complex-system-designed-from-scratch-never-works-e1zyzvm5v#faq","mainEntity":[{"@type":"Question","name":"What is Gall's Law and how does it apply to software rewrites?","acceptedAnswer":{"@type":"Answer","text":"Gall's Law, from John Gall's book Systemantics, states that a complex system that works is invariably found to have evolved from a simple system that worked, and a complex system designed from scratch never works and cannot be patched to work. Applied to software rewrites, it means large systems should be built incrementally from a small working core rather than fully designed upfront, since evolved complexity is validated by real usage while front-loaded complexity rests on untested assumptions. Architects weighing rewrite strategies can find real-world case studies like this one on daily.dev."}},{"@type":"Question","name":"Why do big bang legacy system rewrites often fail?","acceptedAnswer":{"@type":"Answer","text":"Big bang rewrites often fail because they delay real user feedback until the very end, when the cost of being wrong is highest. In one mainframe rewrite case, management rejected an incremental proposal out of fear the business would not accept a minimal first version, so the entire project bet on getting a massive, never-tested system right in a single shot, and years later the organization was still struggling to get it running. Teams debating rewrite strategy can compare real incremental-vs-big-bang outcomes on daily.dev."}}]}
```

