Recently there were some tweets going back and forth in my Twitter timeline regarding the difference between complicated and complex. Let me start by saying that I have an opinion on that. I actually have an averagely strong opinion, meaning that I am pretty sure that I’m right, but I reserve some doubt just in case someone has mighty good arguments to convince me of their view.
Let me continue by saying that this opinion has in no way been influenced by literature, the study of complexity theory or any lengthy discussions with friends, colleagues or other people. It’s an opinion that seems to have formed over the years and is mostly a gut feeling that I have when I hear either of these words. It’s a natural reaction to what I’ve learned in the last 31 years of my life and I understand both words based on that life-long experience.
(I have also – on purpose – not tried to read up on existing definitions. I want to do that after I finished this post, but for now I thought it would be better to get my science-untainted view written down first before I can go ahead and let it be influenced by whatever is out there.)
From what I could gather in the tweets that were going around there are other opinions on what means what which is why I felt compelled to write about this in something that is more than 140 character (minus what it takes to add at least two persons‘ twitter handles).
To start with let me compare the two words in a few variations:
- Complex is fine, complicated is bad.
- Complex is inherent to the system, complicated is man-made.
- The opposite of complex is simple, the opposite of complicated is simple.
Wait, what?
Before I get to that last statement which for me somehow explains why it’s so easy to get the two words mixed up and confused, I want to start explaining what I mean with the second statement. Mostly this is what I believe the main difference between complex and complicated is.
Or, put in another way: Complex describes a system and complicated is a description of a system.
Take a beehive for example. From what I know beehives are pretty complex systems with how jobs are distributed, how communication is handled, how reproduction works. There are a lot of little details that we may have trouble understanding or even realizing especially considering the fact that we are not bees.
Anyway, let’s assume a beehive is a complex system. There’s nothing you can change about that. A beehive will always be a complex system because that’s what it is. You can’t have a decent talk with the bees and convince then to devise a simpler system.
This doesn’t mean that it’s a bad system, though. First of all it means that explaining a beehive may not be an easy task. So, what do you do? You paint pictures. You write a description. You come with analogies, metaphors or whatever suits your needs. You draw a model. Or a chart. Or whatever. And this whatever-you-come-up-with to explain a beehive can be either simple or complicated. And whether it’s one or the other depends mostly on you. It may also depend on the difficulty of the task, but you are the deciding factor. Sorry.
Complex is the system, complicated is how we describe it. If we’re doing it wrong. What I’m saying is that you should always try for simplicity when you are describing or defining a system. Complicated hardly ever works. It mostly confuses people. And it is often unnecessary.
Complicated is a device often used by people who want to display their intellectual superiority by making things look hard. What they do not realize is that the real challenge is not to come up with a complicated model of a complex system. It’s coming up with a simple and understandable model of a complex system.
I know that you can only dumb down things to a certain level without running the risk of leaving out important parts. But in any case striving for simplicity instead of complication should be the goal.
So, once again I would argue that complexity lies within a nature of a system. For some systems this can be changed, but not for all of them and it isn’t necessarily a bad thing. It just means that a system consists of a lot of things which interweave and depend on each other.
Complicated is how we structure or describe things. A model or an explanation can be complicated. The organization chart of a company can be complicated. And complicated is something that we should be able to do something about. It’s not good. It’s making things harder to understand – sometimes on purpose, sometimes because we’re lazy and sometimes because we just don’t know how to do it better. But it’s not the nature of the system it’s the nature of the whatever model we use to explain it.
Which brings me back to the first statement. Complex is fine. If you can, make it simpler, but if you really can’t then that’s how it is. Complicated is not fine. Try to find a better way to do it. Complicated is adding details where we don’t need them or constructing detours where there’s a simple short cut or using big words when small words would totally suffice.
And as for the third statement. Yes, the opposite of complex is simple and the opposite of complicated is also simple. Maybe we need a different word for one of the simples to make the difference between the two clearer. And, to add to the confusion I would like to throw in another statement: The opposite of complex is complicated. How about that?
I guess what we end up with is that the difference between complex and complicated is a complex matter. I tried to explain my view on the matter as simple as possible. Did it work? Or was this too complicated. (Damn.)
Special thanks go out to @jurgenappelo, @alshalloway, @markusandrazek, @tastapod and whoever else joined in the discussion for giving me the motivation to try to put these jumbled thoughts into sort of coherent sentences.
nice try ! What you said about complexity as being inherent property of the system is correct. What is missing is the practical consequences me that property. Have you read about the Cynefin model? Check it out it helps understanding the differences between the different contexts, and the practical implications of those differences.
I think your explanation was good. 🙂
It sounds as though you believe it's a matter of perspective. Things are 'complex' if you have to deal with them but have no ability to alter them, and things are 'complicated' if you have the ability to alter them. You have no ability to alter how bees organize their hive, but you do have the ability to alter how you convey that organization or model it for someone else.
I'm not sure that I agree, necessarily, that complexity is "fine" — I might instead say "sometimes unavoidable". Take the bees, for instance. If the goal of someone interacting with that system is to get honey, then it would probably be preferable to undertake some simpler process of synthesizing it if one had the means and resources to create such a process. If not, the complexity of the bees and their system is unavoidable.
I mean, philosophically, processes that evolved (Darwin-style or otherwise) to become intrinsically complex are like the natural equivalent of spaghetti-code with user work-arounds. They evolved because they randomly varied things until something worked and just went with it. That they happen to work doesn't mean there isn't a simpler, preferable or more efficient way to do things.
Erik, I think I agree with you. When I say that complexity is "fine" I am mostly trying to point out the difference to "complicated". If you have to deal with a complex system, then, yes, it might not feel fine. But it's usually not that the system is bad or faulty and in need of improvement, it just might be hard to understand and figure out.
But complexity in itself is not a bad thing it's just something that might need more time to understand fully.
Erik and Anne,
I think (maybe wrongly) that you are using the English definition of "Complexity" as a word, but actually "complexity" is about properties of a "system". Complexity in the scope and context that was used in #LESS2011 and in @jurgenappelo sessions is a Scientific Theory (or rather a collection of them).
Check the work by Dave Snowden and Ralph Stacey for more about that. In the meantime the Wikipedia page is a good resource:
http://en.wikipedia.org/wiki/Complexity
@Anne – That distinction makes sense to me in the context of the terms as you define them. It seems to (accurately, in my opinion) task the engineer with making things more understandable for users.
@Vasco – The definition from the wiki link you supplied that I gravitate toward most naturally is the computational complexity, but I come from a math-heavy programming background. 🙂 As for the definition that I was using, I was commenting on the working semantic definitions in the blog post and not really considering the meanings of the words in any established, objective context. My interest here lay more in the idea of the engineer having a role in taking things that are difficult to understand and making them simple for users to understand.
@Erik: I understand what you mean, but in that case we should not contract "complex" with "complicated" because in that context they mean pretty much the same.