top of page

04. The Challenge of Modern Application Development

Making a modern software application is not easy. Why do these efforts fail so often?

By Chris Munford, CEO/Founder of

While the velocity and value of a modern app can be far greater than a traditional one, making a modern software application is not easy. 

One study says that as high as 79% of attempts fail. 

With so much riding on the success of these applications, why do these efforts fail so often?  Some of the common reasons for failure include:

  • Lack of planning, requirements, and expectations

  • Inadequate team communication and collaboration

  • Complexity of new technologies and processes

  • Insufficient skills

Instead of diving into each of these categories, let’s discuss what they all have in common. They all increase cognitive load on the developer.  Cognitive load leads to decreased productivity, project delays, budget overruns, and eventually failed projects. 

Developers have always had a high cognitive load, having to be experts in software programming languages, project requirements, system design methodology, etc.  However, there are many new sources of cognitive load introduced by cloud and open source software, causing developers to also learn and worry about:

  • New and changing Cloud Infrastructure

  • Increased Cloud-induced security measures

  • Micro-services interactions with other developers

  • Dependencies on cross-functional teams: DevOps, SecOps, SREs, IT, Cloud Engineers

  • Creating and maintaining software containers (ie: docker)

  • Deploying, Observing, and upgrading software containers in Kubernetes

  • 1000’s of open source tools to master

Consider the diagram below. 

The developer should only have to focus on their application (My App), but look at all of the other sources of cognitive load distracting them from My App.

These new sources of people, process, and tools creates cognitive overload for developers.

Of course, the natural response to this, for enterprises that can afford it, is to hire more staff (developers, operators, cloud and IT folks).  However, this often has the opposite of the desired effect, increasing the number and type of interfaces that a developer has to maintain, and processes they have to follow; further increasing cognitive load on the developer.

Keep on reading!

Anchor 1 - K8S
bottom of page