Latest stories

DRY – Don’t Repeat Yourself

Coding

One of the most common principles of development that I hear is DRY. Don’t Repeat Yourself. Why is this principle so important and how do people break it? I mean, it should be common sense, right? Don’t repeat code. Don’t copy paste. I will repeat that last sentence. Don’t copy paste. If you have to […]

D for Dependency Inversion Principle

Coding

Depend on abstractions, not on concretions. Robert C. Martin Welcome back to the series on SOLID. By now, I’ll assume you’ve read my earlier post on the Interface Segregation Principle. In this post, we’ll be investigating the Dependency Inversion Principle which is not to be confused with Dependency Injection. Dependency Injection is only a form of […]

I for Interface Segregation Principle

Coding

Make fine grained interfaces that are client specific. Robert C. Martin Welcome back to the series on SOLID. By now, I’ll assume you’ve read my earlier post on the Liskov Substitution Principle. The guts of this principle is that your interfaces should be very specific to the purpose. You shouldn’t have a super interface or […]

L for Liskov Substitution Principle

Coding

Derived classes must be substitutable for their base classes. Robert C. Martin Welcome back to the series on SOLID. By now, I’ll assume you’ve read my earlier post on the Open/Closed Principle. This principle is quite an obvious principle. I’m going to use the time-and-time-again Duck example below. Think: If it looks like a duck, swims […]

O for Open/Closed Principle

Coding

You should be able to extend the behavior of a system without having to modify that system. Robert C. Martin Welcome back to the series on SOLID. By now, I’ll assume you’ve read my first post on the Single Responsibility Principle. That is, each class should only have one responsibility (or a class should have […]

S for Single Responsibility Principle

Coding

A class should have only one reason to change. Robert C. Martin I’m going to start a five blog post journey about the five principles behind SOLID. I’ll describe these in my own words and give examples of what breaks the rule and how to fix it. Now, what I’m not going to prescribe, is […]

How Do You Decide Which New Thing to Take?

Strategy

I know you may think this topic is familiar. I mean, I did talk about it in my previous post about how you decide which package to take. But in this post, I’m going to be discussing this in broader terms. Think in terms of, frameworks, languages, tools, or debates in the company, or experimentation. […]

What IDE Do You Use?

Coding Strategy

I’m curious to know what IDEs people out there use. But before anyone tell me what their IDE of choice is, I’ll give you mine and how I work. An IDE is a very personal choice, I think. I mean, at my current company we have people who use wildly different IDEs even for the […]

What Does Agile Mean?

Leadership Strategy

Today I want to talk about what agile means to me. I mean there is a standardised definition which I’ve quoted below from the agile manifesto. But, I think for most of us, being agile means that we can move quickly and break things. It means that we reduce risk to our businesses by being […]

Read more