Modular Thinking — Breaking Complicated Systems down into Simpler Pieces

Isuru Walpola
IgniterSpace
Published in
4 min readApr 6, 2017

When I was a kid, I used to think the grown up world was so big and complicated. Over time, I realized this was because I was looking at the big picture, not realizing that it was made up of millions of individual pixels. I was looking at finished products, and not realizing that they were assembled from multiple pieces that can function on their own. Maybe even that these multiple pieces were manufactured by different companies.

Modular thinking can be seen everywhere in our modern world, and is essential skill for a technology developer.

Modules in Software

Modern software is modular from various perspectives. Most web and app software, for example, can be distinctly separated into layers:

  • a User Interface layer (HTML, CSS and Javascript) running in a Web Browser such as Chrome or Firefox. A mobile or desktop application can serve the same purpose.
  • a Data Layer such as MySQL/PostgreSQL or newer platforms like MongoDB and Neo4j
  • a server side Application Layer running on a platform like PHP, NodeJS or ASP.NET

Even within these layers, there is a common modular aspect, called “Libraries”. Libraries are modules which add a specific functionality to that platform. For example:

  • D3.js is a data visualization library for user interfaces, that any developer comfortable with javascript can use, without much effort, to beautifully represent data in a variety of ways.
  • Facebook PHP SDK is a library that allows PHP developers to easily plug into facebook’s rich social data.
  • SoftwareServo library allows Arduino coders to easily control servo motors without worrying about the specifics of the ATMEL microcontroller clock speed, and the pulse timing intricacies of servo motors.

Modules in Electronics

In a modern electronic circuit board, you will see the usual resistors and capacitors and transistors, but among them also “tiny little black square and rectangular things”. These are called integrated circuits, and each is responsible for a particular task.

For example there are integrated circuits which specialize in:

  • Logic (Microcontrollers): Programmable devices that can run through logical steps in a loop, that loops multiple thousand times a second. Also capable of “talking” to other Integrated Circuits.
  • Power Control: Turning DC voltage from low to high or high to low, or controlling the amount of current that flows to particular places on the circuit board.
  • LCD control: talks to a microcontroller and accordingly controls the pixels on an LCD screen.
  • Bridging : Integrated circuits that convert one type of signal to another, for example HDMI TV to a VGA signal that can be displayed on a computer monitor.

And many more. A person with good knowledge of the ICs available and their function can assemble circuitry that performs an overall complex task. The trick is breaking it down into simple pieces.

Modules in Machines

When designing a machine or mechanical system, a mechanical engineer will most probably need a few sources of mechanical power. For this, he/she will most probably use an off-the-market engine or electric motor. Designing and building an engine would be out of the question, as it would require hundreds of thousands of man hours, and require highly specialized manufacturing, and not perform as well as the options in the market.

This is the first of many modules in a mechanical system. Here are a few more:

  • Bearings: Most machines have rotating or sliding parts, and these need to be supported. And when these bearings wear out, they need to be replaced immediately with a matching part, and the supplier will have it in stock.
  • Pumps: for transporting fluid from one place to another.
  • Chain/Sprocket and Pulleys: For conveying rotational motion from one place to another.

The Takeaway

As the examples above demonstrate, it is highly reliable modules that come together to form a customized system that solves a particular problem. Therefore modular thinking is a skill that any budding entrepreneur or technologist should develop.

It is a skill that transfers well across domains, and helps us understand the world a little bit better.

So cultivate a habit of breaking things down into the smaller pieces, and things that previously seemed complicated will start to make sense. And a person who practices modular thinking will soon be able to put modules together to solve new and exciting problems!

--

--