Constraint Theory on Cities: Skylines

 In 1984 Dr. Eliyahu M. Goldratt introduced, with his novel “The Goal: A Process of Ongoing Improvement”, the theory of constraints. Theory of constraints emphasises on calibrating a pipeline of work using as a metric only its total output and not the productivity of each component. The user of the theory has to identify its output, its input and the major bottleneck in its pipeline.

This fundamental theory was also depicted in the novel “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win”, which was meant to be the devops flavor of the novel “The Goal”. In this novel, a new assigned IT Manager has to deliver a new project which is supposed to give to its company a competitive advantage on the market. While doing this he has to sustain the life cycle of all the IT projects this organization runs.

I read the two books with little time difference between them, quite recently. I started being a fan of this theory and I was wondering if such a theory could apply to any kind of system. At the same time I was also attracted to the city simulation game Cities Skylines which I strongly recommend. According to wikipedia ”Cities: Skylines is a city-building game developed by Colossal Order and published by Paradox Interactive.” [reference]

In this game you have to manage a city as a challenge. You are the mayor and you have to build the city from scratch. You have to decide where you are going to build your the city’s streets, which areas are going to be inhabited, which are meant to be industrial, commercial or office zones.

The way you are going to handle your energy resources and your water supplies is on you. City’s education, healthcare, garbage collection and many more similar areas are on your hands. Hence you have to spend the budget wisely and balance those attributes so that your city could become prosperous.





I played the game again and again and I lost many times. The first time I had toIn this game you have to manage a city as a challengeo many industries and not enough population to support it, another time I balanced those two but I couldn’t handle the health care or the garbage collection.

I was sceptic about the approach I was about to take, when I realized that this is a complex system and that I had to measure everything together and not separately, introduce priorities and try to find what was the target purpose of the game.

Of course the purpose was to have lots of money and a perfectly functioning mega city. So I tried to use the Theory of constraints in order to finally sustain a large city.

Theory of constraints emphasises on calibrating a pipeline of work using as a metric only its output and not the productivity of each component. You have to identify your output, your input and the major bottleneck in your pipeline. Why is bottleneck important?
Let’s suppose that you have a system like one below. I use the productivity term to describe it, and what productivity is here is nothing else but the number of items produced in a time unit.






Taking this into consideration we know that the average productivity is (50+55+14+48+60)/5 = 45.2

But surprisingly our production is 14 or less. Why? Of course this is a rhetorical question, considering this simple example. Why less than 14 though? The answer is that 14 is a maximum state you are not always utilizing 100% of your resources.

Back to the game, I assumed that the output would be the money growth you have (money per week). So you have to study how are you going to maximize that. Hopefully the game has build in features that help you monitor and identify bottlenecks. The greatest of all is traffic. You might have a city that has a lot of factories, many houses and commercial areas but you forget to make the street in front of the mall wide enough causing the nearby streets to jam and the whole area to malfunction. The ironic part of this situation is that you have a good traffic average, something around 89% with 100% being the free traffic flow (no jam).

Traffic was one of the reasons that made me consider theory of constraints as an approach to solve this issue and I think it somewhat gave me a solution.

What are your thoughts about it? Do you have any concerns about this approach? I will be happy to know if there is something I missed in my thoughts.

P.S. Special thanks to Eleni Karakizi for the proof reading and her valuable comments

Popular posts from this blog

Learning Through the Web: Lessons Learned

Learning Through the Web: Ansible