Modern Control Systems – Part 1

Modern Control Systems – The Secret to Understanding Agile
We make a simple promise to you, read and understand this overview of modern control theory and you will understand how agile software development works, in a profound way. You will understand it better than many people who lecture on Agile techniques at conferences.

Open Loop Systems
We begin with a simple description of open loop systems. An open loop system is a modern control system without feedback. “What is that?” you ask. Fortunately, it is easy to understand, it is as easy as making toast.

A modern control systems can be described in three simple parts:

 Part 1: Desired Output

You begin  with an idea of a specific output you desire to create. If you are creating a piece of toast then you being with an image of what a perfect piece of toast may look like to you.

Toast

Having the idea of the desired output is the first part in modern control theory. You need some idea of what you want so you can discover a way to create it. That leads us to:

Part 2: Process

After you have a desired output you create a process to give you that desired output. If we want to make a process to give us the perfect piece of toast it will likely contain the following steps:

1. Acquire bread, remove from package.
2. Put bread into toaster.
3. Set desired darkness.
4. Press down control lever lowering toast into toaster and engaging heating elements.
5. Wait until toast pops up.
6. Remove toast.

You implement this process to create your desired output, having the desired output in mind helped us describe this process.

[Desired Output] →[Process]

Simple, even a child can do it. In fact, making toast is one of those childhood delights.

Glowing toaster

That leads us to:

Part 3: Desired Output 

At the end of the toasting cycle we removed the perfect piece of toast and enjoy. Our entire process looks like the following:

[Desired Output] →[Process]→[Actual Output]

In modern control systems we call this an “Open Loop” control. It is perhaps better described as a “No Loop” control. No loops because there is no feedback in this system. You set the controls, wait, and whatever you get is whatever you get. Hopefully, the actual output is close to the desired output and you have the perfect piece of toast.

Toast

Burnt Toast

Sometimes, however, the actual output looks more like this:

Toast

What happens if you accidentally create a piece of toast that looks like this?

Well, you can try to do additional processing and scrape the burnt part off in the sink. But that doesn’t create a very compelling piece of toast. The typical solution is to toss the toast into the trash and start the whole process all over again, setting the darkness knob on the toaster to a slightly lighter level.

The process we outlined for making toast contains no feedback (no loops). Step 1, led to step 2, led to step 3,… and so on.

1. Acquire bread, remove from package
2. Put bread into toaster
3. Set desired darkness control
4. Press down control lever lowering toast into toaster and engaging heating elements
5. Wait until toast pops up
6. Remove toast

In open loop systems like making toast, with no feedback loops during the toasting process, if your toast comes out burned you really have to just start over. If your toast comes out under toasted you also have a difficult problem, because if you just press the lever down again it is very likely the next time the toast pops up it will be burned!

Closes Loop Systems

Nowhere in the previous system do we use information while the toast is toasting to understand how well our process is working. What might it look like if we try to gather information while our toast is toasting?

I can guarantee that you have already done it.

What do you do? You ADD A FEEDBACK LOOP to prevent your toast from burning.

How do you do this? You start peering into the top of the toaster to see how your toast is doing!

If the toast is getting too dark, you pop it out! Even children know how to do this. You get FEEDBACK by looking at the toast. You COMPARE what you OBSERVE with your idea of your desired output and you adjust the toaster CONTROLS to try to force the toaster to give you a perfect piece of toast. The steps look something like this:

1. Acquire bread, remove from package
2. Put bread into toaster
3. Set desired darkness control
4. Press down control lever lowering toast into toaster and engaging heating elements
5. Watch the toast with your eyes
6. Compare what you see with your eyes with the desired toast
7. If the toast is lighter than then desired toast go back to step 5
8. Pop-up the toast manually
9. Remove toast
The steps 5, 6, and 7 repeat over and over. They become a loop. The system described above is called a CLOSED LOOP control system. It contains a feedback loop that helps you make decisions based on what is going on inside the toaster.

In control theory these steps are labeled observe, compare, and control:

Observe: Watch the toast with your eyes

Compare: Compare what you see with your eyes with the desired toast
Control: If the toast is lighter than then desired toast go back to step 5, otherwise pop-up the toast manually.
It turns out, that even making something as simple as toast can benefit from “closed-loop” controls. Imagine how something as complicated as software may benefit.