Complex Designs lead to unstable, weak software

#hope
3 min readJan 24, 2024

After speaking with someone recently, I remembered “A New Kind of Science” (https://shorturl.at/jnQ47) from Stephen Wolfram. Can we build complex functionality from complex code in a universe, where almost everything complex manifests from simple patterns?

Because that is what I have noticed most companies trying to do; and failing badly.

If I have noticed a pattern in my career, it is that companies which try to implement complex designs and architectures “everywhere” within software development fail consistently.

On the other hand, most successful companies which were able to build software coherently had relatively simple code which did not use concepts like Inversion of Control, Dependency Inversion, etc — except where actually needed & necessary.

While reading Architecture books, developers tend to forget another maxim: “High Cohesion within a layer, and loose coupling between layers”.

Even if we write software using the simplest code, it is an inherent nature of programming that initial development will always have bugs. Bug free code whenever it is claimed means that the person has no idea about real software development. There is no such thing.

Adding complexity makes things worse. This is not over engineering or Agile — this is…

--

--

#hope

“If you see something that’s not right, not fair, not just, do something about it. Say something. Do something.” — Rep. John Lewis