Thoughts on AI and software development - Part 3

Consequences and unresolved questions

Uwe Friedrichsen

16 minute read

Black swan swimming on water

In the previous post, we looked at the want side regarding Steve’s projection and the forces they trigger. We took off the rose-colored glasses and tried to have an unembellished look at these forces even if the things we saw, were a bit more gloomy and controversial than we would have liked it.

Thoughts on AI and software development - Part 2

The real forces that drive markets and decision makers

Uwe Friedrichsen

17 minute read

(Humanized) steel crow sculptures

In the previous post, we looked at Steve Yegge’s post where he made a projection from the vibe coding of today to controlling AI agent fleets in the near future that take over all coding reliably. Pondering this projection as a possible future, we realized that this future is not what we need as our actual problems in software development do not lie in a lack of developer productivity (or to be more precise: developer efficiency) but…

Thoughts on AI and software development - Part 1

A possible future of IT between need and greed

Uwe Friedrichsen

16 minute read

Steel spider sculpture in a park

This blog series will be a bit different. It might leave you with more questions than answers and I apologize for that upfront. It is also more controversial than most other posts, I have written before. In this post, I will discuss the current developments regarding AI in software development more from a CTO’s perspective. This means, I cannot simply reason about the pros and cons of a topic but I also need to take the market forces into account.

(Un)coupling in distributed systems - Part 2

The effects of temporal coupling

Uwe Friedrichsen

9 minute read

A jellyfish lying on the beach

In the previous post, we started to discuss a specific type of coupling, the coupling between processes in a distributed system. We discussed the fallacy that loose technical coupling, i.e., using a message-based communication style is sufficient to ensure loose coupling between processes. We learnt that instead we need to implement loose coupling at a technical and a functional level to actually become loosely coupled.

(Un)coupling in distributed systems - Part 1

Understanding functional coupling

Uwe Friedrichsen

11 minute read

Rock covered by clams

Coupling is a big issue in software design. With software landscapes becoming more and more complex, coupling painfully steps on our toes whenever we attempt to change things. Hence, we want to reduce coupling. On the other hand, without any coupling systems and their parts would not be able to interact. Hence, we need coupling – feels a bit like being stuck between a rock and a hard place.