Blog

Command Query Notification Separation (CQNS)

CQS (Command Query Separation) is a well known principle for disentangling method responsibilities in OO software. I had known it for quite some time, but only recently actually have taken it to heart. And now I’m really loving it. I cannot imagine doing without it....

mehr lesen

Against pseudo-wisdom

Apart from esoteric or „spiritual“ circles it seems a trait of software development to use „pearls of wisdom“ to impart one’s professionalism. „Appeal to authority“ likewise is in broad use. It was this tweet which made that clear to me once more: And I’m sick and...

mehr lesen

Functional Dependencies Considered Harmful

You’ve probably heard of the seminal paper „Go To Statement Considered Harmful“ by Edsger Dijkstra from 1968. It paved the way for broad adoption of then modern programming languages with their control flow statements like if-then, for, or while. With Pascal and C...

mehr lesen

Revolutions Over Velocity

You probably have ridden a bike a couple of times. And you probably have used one with a couple of gears. So I think you are in a good position to reflect on the notion of velocity as still promoted by quite a few Scrum fanboys. Here’s what I mean: Imagine you’re...

mehr lesen

Event Sourcing for Constructivist Software

What’s Event Sourcing (ES) for? Why deviate from the all encompassing cosy domain data models for keeping and storing application state? Why jump through all the hoops of ES and risk overengineered code? The other day I read an article about Event Sourcing by Tobias...

mehr lesen

Eventual Consistency for Mere Mortals

Developers shun it, if they can: Eventual Consistency (EC). Rather they jump through hoops and invest huge efforts and drive technologies through all sorts of contortions to avoid even small areas of EC in their applications. What developers love is Immediate...

mehr lesen

Terminus Architecture

In my experience most software architectures in projects I see are too technical. They don’t focus on the most important thing: results and behavior. Robert C. Martin coined they term „screaming architecture“: Your architectures should tell readers about the system,...

mehr lesen

Making Productivity Tangible

It's no small wonder customers, managers of software development, and even developers themselves, I guess, are so focused on code functionality and code efficiency (e.g. performance, scalability, usability, security). Both represent what's tangible to them. Both are a...

mehr lesen

Magically Predictable Software Production

Here’s a story, or a thought experiment, of you like: Imagine you as a Product Owner (PO) find a black box which magically transforms written requirements into high quality executable code. You just need to hook-up the black box to a GitHub repository. Once that’s...

mehr lesen

Two Problem Solving Approaches

Solving a problem can be hard at times. What I’ve found helpful then is to distinguish between two different approaches to tackle the problem. Without distinguishing them I’m prone to use an unsuitable approach and make things harder than they actually are. Here’s a...

mehr lesen

TDD – How It Can Be Done Right

TDD has gone wrong. It was well intentioned and is a great technique, but many developers who are trying it are not experiencing the promised benefits. How come? This question was asked and answered by Ian Cooper in a DevTernity talk in 2017. Watch the video here, if...

mehr lesen

Ralf Westphal
Hans-Henny-Jahnn-Weg 44
22085 Hamburg
Germany

0049-170-3200458