Tackling Complexity - Defined

Tackling Complexity - Defined

I thought it might be interesting, at the outset of this blog, to fully define two words and make some observations on these definitions.

Tackle:

  1. to take hold of, seize
  2. to deal with
  3. to undertake to do or solve (something difficult)

(Ref - Webster's New World College Dictionary)

There are other definitions but these apply in the context of this blog

What is also interesting is the derivation of the word tackle:

[[ME takel < MDu, pulley, rope, equipment in general, prob. akin to MLowG tacken, to touch, press, ? akin to take]] (Ref - Webster's New World College Dictionary)

"The meaning 'lay hold of, come to grips with, attack' is attested from 1828, described by Webster that year as 'a common popular use of the word in New England, though not elegant.' The figurative sense of 'set to work on, try to deal with' (a task or problem) is attested by 1840." (Ref - https://www.etymonline.com/word/tackle)

And finally, it comes from Middle Dutch, the verb tacken meant to grab or to handle. I like this definition since it has the notion of actively handling complexity.

Also it is good to look at block and tackle and the notion that it is device to help you lift heavy loads. A block and tackle has both fixed and moving parts.

Image from https://en.wikipedia.org/wiki/Block_and_tackle

I also liked the notion from block and tackle that it is quite configurable so as to adjust to the load and is, in fact, based on mathematical principles.

Images from https://en.wikipedia.org/wiki/Block_and_tackle

And finally there is the more modern usage in American football and International Soccer and Rugby. Both seem applicable when dealing with a hard problem that is coming at you.

A sentence: How are we going to tackle that?

Complex:

Here are a few definitions:

adj.

  1. consisting of two or more related parts
  2. not simple; involved or complicated

n.

  1. a group of interrelated ideas, activities, etc. that form, or are viewed as forming a single whole.

(Ref - Webster's New World College Dictionary)

And also this definition: Many definitions tend to postulate or assume that complexity expresses a condition of numerous elements in a system and numerous forms of relationships among the elements (Ref - https://en.wikipedia.org/wiki/Complexity)

And its derivation:

1650s, "composed of interconnected parts, formed by a combination of simple things or elements," from French complexe "complicated, complex, intricate" (17c.), from Latin complexus "surrounding, encompassing," past participle of complecti "to encircle, embrace," in transferred use, "to hold fast, master, comprehend," from com "with, together" (see com-) + plectere "to weave, braid, twine, entwine," from PIE *plek-to-, suffixed form of root *plek- "to plait." (Ref - https://www.etymonline.com/word/complex)

The definitions:

  1. a group of interrelated ideas, activities, etc. that form, or are viewed as forming a single whole.
  2. a condition of numerous elements in a system and numerous forms of relationships among the elements

seem almost identical to the definition of a system.

That is: A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. (Ref and https://www.merriam-webster.com/dictionary/system)

So we really could be talking about tackling systems.

There is also the notion that complexity is in the eye of the beholder and is a relative term. That is, it depends on viewpoint and context and can certainly change over time.

Sometimes it is important to also note what is not there as well as what is there in these definitions. It is not included as an essential part of complexity that it cannot be tackled or that nothing can be done about it. It's really just knowing that you can do something about it and then determining how best to tackle it.

It is vital to mention the other side of the dichotomy of complexity and that is simplicity. By tackling complexity we are seeking a simplicity. That is the purpose and goal of tackling complexity.

Some good quotes on this:

"Simplicity is the ultimate sophistication" is often attributed to Leonardo da Vinci.

"Simplicity is prerequisite for reliability" - Edsgar W. Dijkstra (ref)(ref2)

“Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.” - Edsgar W. Dijkstra (ref)

Hopefully tackling complexity sells ;)

“The art of programming is the art of organizing complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible.” - Edsgar W. Dijkstra (ref)

Speaking of chaos. I ran across this sketch by Nat Pryce and Steve Freeman in their book Growing Object-Oriented Software, Guided by Tests:

I think it illustrates an example technique for tackling complexity and that is to use software tests earlier rather than later.

Perhaps I get ahead of myself in that I am now looking into ways to tackle complexity and manage complexity (kind of like managing expectations). The purpose of this first post is to look at some definitions.

© Bruce Trask 2025