Solving Real World Bad Design by Applying the Tell, don’t Ask Principle

Can you spot bad design when you see it? Can you tell what's wrong here? if (!response.getStatusCode().is2xxSuccessful()) { logError(response.getBody()); throwException(response.getStatusCode()); } The snippet above is an example of a pattern we often see in the wild: if(someObject.getSomeAttribute()) { doSomethingWith(someObject); } else { doSomethingElse(someObject); } Why should I care? For us to understand what are the … Continue reading Solving Real World Bad Design by Applying the Tell, don’t Ask Principle

Build people, not tech

school children smiling

Retrospectives, build-measure-learn and continuous improvement are all activities and practices that companies and their agile teams do to support project delivery and product development. I think this is wrong. These things are way too important to be only supporting the business. Not long ago, businesses used technology to accelerate, to automate, to improve themselves somehow. … Continue reading Build people, not tech

Clever code is bad. Don’t write clever code.

Will Smith looking confused

"Wait! Isn't code supposed to be smart? Programming IS hard! We have to be smart!"  Nope. Code is supposed to be simple. And programming is no place for being a smart-ass. Let me explain. What is clever code Clever code is code that when you read it your face goes like this: "Interesting.." Or like … Continue reading Clever code is bad. Don’t write clever code.

3 books that will take you to the next level

You can write code and make the computer do what you want - no problem. You can even do it in more than one language and you're fluent in many frameworks. You know all your data structures and algorithms and can use databases and external APIs without breaking a sweat. And you've been doing it … Continue reading 3 books that will take you to the next level