Make software development boring to create business value - Wishevoke

Make software development boring to create business value

Because our cognitive abilities and understanding of complex systems are limited, Corstian Boerman argues that software development should become boring. He suggests getting infrastructure out of the way so it doesn’t burden the day-to-day development process and focusing on delivering business value in a predictable and repeatable way.

Corstian Boerman gave a talk about how complex software affects our cognitive abilities NDC Oslo 2023.

Boeman mentioned that our understanding of complex systems is limited because our memory is finite and fallible. This is important for two reasons, he explained:

First, training developers to remember details is expensive. This is evident not only during initial training, but also during further development, where low speed is also a symptom of this.

Furthermore, the complexity limit is reached more quickly in an irrationally complex system than in a naturally complex system, and therefore I would argue that we should take more inspiration from nature when designing our systems.

There is a clear distinction between natural complex systems and man-made complex systems, Boerman said. Through physics, natural phenomena can be explained through a series of equations, whereas with man-made systems we need to consider context, he added. This potentially irrational context cannot necessarily be generalized to the same extent that natural systems can be.

Boerman argued that software development should become boring. He made the difference between boring and exciting software:

Boring software in this categorization is similar to any software that has been created countless times and will be created a billion more times. In this context, I’m thinking specifically about back-end systems, although this also applies to front-end systems. Exciting software is all projects that require creativity to create. Think purpose-built algorithms, automations, AI integrations, and the like.

Making software development boring again is about putting the emphasis on delivering business value and making the delivery of those aspects predictable and repeatable, argued Boerman. To do this, the infrastructure must be moved out of the way so that it is still there but does not burden the daily development process:

While infrastructure takes up the majority of development time, it technically delivers the least business value, which can be found in the data and the operations performed on it.

New exciting experiments can be fast-paced and unstable, while the drill core should be and remain of high quality so that it can withstand outside disturbances, Boerman concluded.

InfoQ interviewed Corstian Boerman about building complex software systems.

InfoQ: What is the connection between software complexity and cognitive abilities?

Corstian Boerman: Cognitive abilities include three basic things: thoughts, experiences and senses. Together we use these to understand what is going on around us.

Our thoughts as such can include both the conscious, slow rational system and the unconscious, fast emotional system. Experiences clearly distinguish a person from those around them, and we use our senses to perceive the world around us. Taken together, these define our cognitive abilities as well as our disabilities.

Because cognition itself is multifaceted, exceptional abilities and debilitating disabilities are not mutually exclusive and can coexist within the same person, Boerman said, whether that be senses (a missing link), experiences (traumatic experiences), or… ours Thoughts (mental illness).

Complexity and knowledge are not directly related to each other. While complexity is a specific feature of our environment, cognition is about the way we interact with our environment. Our cognitive abilities then enable us to understand complex systems and create complex systems.

InfoQ: How should we deal with boring and exciting software?

Farmer: Most boring systems follow the same paradigm: we have some data and we want to perform an operation on that data. When we work with such systems, we spend a lot of time setting up the right infrastructure. Database queries, logging statements, system integration and much more.

In contrast to boring software, for me there is also exciting software, which is just as important to keep boring software boring. These are all projects that require creativity to implement.

In this symbiosis, the boring part contains the most important business processes for a company without any bells and whistles. This core functionality is then enriched with more exciting external software. When these exciting bits and pieces interact with the processes defined by the boring core, it becomes possible to automate manual work or de-automate manual work. This provides freedom in the way a system can evolve.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top