Discussion about this post

User's avatar
Tijmen van Gulik's avatar

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.

Mike Peters's avatar

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.

1 more comment...

No posts

Ready for more?