Great article. I think you are missing “minimum coupling, maximum cohesion,” which influences every line of code you write—and you get punished if you break the rule.
I noticed that some laws are missing from your list.
Glass's Law: For every 25% increase in the complexity of the problem space, there is a 100% (fourfold) increase in the complexity of the solution space.
Session's Law:
+ The Law of Exponential Complexity: As you add more components to a system, the complexity increases exponentially, not linearly.
+ Equivalence Relations & Partitioning: Sessions argues that the only way to manage massive IT complexity is through partitioning—breaking a large system into smaller, independent "Snowman" units that do not share state or data directly.
+ Mathematical Predictability: He uses these laws to calculate the probability of IT project failure based on the number of interconnected components.
Great article. I think you are missing “minimum coupling, maximum cohesion,” which influences every line of code you write—and you get punished if you break the rule.
Great post and fantastic website, Milan. I look forward to reading your book. I shared it here: https://www.blog.ajabbi.com/2026/04/laws-of-software-engineering.html
I noticed that some laws are missing from your list.
Glass's Law: For every 25% increase in the complexity of the problem space, there is a 100% (fourfold) increase in the complexity of the solution space.
Session's Law:
+ The Law of Exponential Complexity: As you add more components to a system, the complexity increases exponentially, not linearly.
+ Equivalence Relations & Partitioning: Sessions argues that the only way to manage massive IT complexity is through partitioning—breaking a large system into smaller, independent "Snowman" units that do not share state or data directly.
+ Mathematical Predictability: He uses these laws to calculate the probability of IT project failure based on the number of interconnected components.
Thanks for the feedback. I’ll check it out.