Focus on non-deferrable complexity first

There are only two types of complexity: complexity you need right now, and complexity you don’t need. What there isn’t is complexity you need soon. What there isn’t is complexity you don’t need “yet” (stick with me…)

“Complexity You’ll Need Soon” is a myth

If you need some complexity so soon that it needs to be done now, then — obviously — it’s complexity you need now. If holding off adding some complexity will make it so much more expensive to do later that it’s worth doing it now even though it slows you down, then it too is complexity you need right now. Everything else is complexity you don’t need.

(Revisit this decision regularly, but don’t worry about it: there really are only two types of complexity. Build so you can adopt complexity as you need it — that is keep it simple — but don’t adopt complex tools before you need them. Focus on non-deferrable complexity first).

Most complexity is complexity you don’t need yet

Complexity is the enemy of distributed systems. It’s the enemy of moving fast. It’s the enemy of successful DevOps.

So: why do so many huge websites and companies use such complicated solutions? Because they’re huge! Because the complexity is no longer deferrable for them. Are you at that stage? Can you avoid being at that stage a bit longer?

If you’re building something that’s small, medium, large or even very very very large indeed consider whether using tools developed for the absolute biggest systems in the world now will increase your speed or if it’s just buying the solution to problems you don’t need to have. Are you google-scale, netflix-scale, facebook-scale? If you’re not and you want to be, it may be best to use your advantage: you’re not at that scale yet, so you can move faster, if you stay simple now.

Don’t use a rocket launcher to open a door

We’re blessed to live in an age where incredibly smart people have released all sorts of technologies used to build some of the biggest systems on earth so that everyone can use them. These technologies are rocket launchers. They’re fantastically impressive and fantastically effective. But some of the most succesful websites in the world still run off a couple monolithic web servers, some proxies and a database. You might be closer to Stack Overflow than Google for quite a while, and that might be ok.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.