The first time I read “Small is beautiful”* in a computer magazine—one that was very popular in the 1980s—I was in elementary school and had just started (or was trying to) teach myself how to program. I don’t remember exactly what the article was about, probably because I didn’t understand most of it at the time. But the phrase “Small is beautiful” somehow stuck with me.
From the “God Class” to Clear Principles
Later in my career, I came across this phrase time and again, even during my studies when I was learning about modular design principles. Nevertheless, when I was assigned the task of creating a media import tool at my first job, I ended up writing a “god class” with over 1,000 lines of code. This happened for various reasons: I was fresh out of college and had little practical experience; the requirements were unclear or not defined at all (“Here, take these 10 CDs with pictures and import them by Friday”); later, edge cases and escalations cropped up that required quick fixes without much time to think things through, and so on.
It wasn't until later that I came to understand the importance of clear architectural principles. Prioritizing non-functional characteristics—such as performance, security, and fault tolerance—over functionality is crucial. Combined with continuous refactoring, this approach leads to products that run with minimal downtime, scale well, and have no serious security issues.
At the same time, I’ve seen products literally explode and fail because people tried to do far more than was actually necessary. Too many features, too many stakeholders, too many “must-haves,” too many “we absolutely need this, too.”
Non-functional characteristics as a foundation
Later in my career, I came across this phrase time and again, even during my studies when I was learning about modular design principles. Nevertheless, when I was assigned the task of creating a media import tool at my first job, I ended up writing a “god class” with over 1,000 lines of code. This happened for various reasons: I was fresh out of college and had little practical experience; the requirements were unclear or not defined at all (“Here, take these 10 CDs with pictures and import them by Friday”); later, edge cases and escalations cropped up that required quick fixes without much time to think things through, and so on.
It wasn't until later that I came to understand the importance of clear architectural principles. Prioritizing non-functional characteristics—such as performance, security, and fault tolerance—over functionality is crucial. Combined with continuous refactoring, this approach leads to products that run with minimal downtime, scale well, and have no serious security issues.
At the same time, I’ve seen products literally explode and fail because people tried to do far more than was actually necessary. Too many features, too many stakeholders, too many “must-haves,” too many “we absolutely need this, too.”
Onion Architecture: The Heart of yuuvis® Momentum
We have also introduced the concept of “onion architecture.” At the core of this architecture—that is, at the “center of the onion”—the system must guarantee the agreed-upon non-functional properties at all times without compromise. All services in the core are essential to the system’s operation and follow the principle “small is beautiful.” Other functions built around the core—like the layers of an onion—can be removed without affecting the system’s operation. These layers should also adhere to the non-functional properties, but may intentionally violate them for a specific use case. However, this must never jeopardize the entire system; other functions must not be compromised by such trade-offs.
That sounds very simple on paper. However, putting this decision into practice in our day-to-day work is difficult, and it’s often necessary to make compromises. We’ve tried to make as few compromises as possible along the way. It also helps to have a lead software architect on the team whose favorite quote is: “Perfection is not achieved when there is nothing left to add, but when there is nothing left to take away.”** That’s why yuuvis® Momentum is now a very powerful ECM platform designed for the cloud, offering many exciting features such as audit-compliant document management, a powerful search function, an intelligent schema, a flexible workflow, a fast security system, integrated AI, and much more. Despite these advancements, it continues to offer virtually infinite scalability, remains maintainable, and is just as fast and secure as it was a few years ago, when it was “just” a very fast document archive.
Small really is beautiful.
* "Small is beautiful" is the first principle of Mike Gancarz's Unix design philosophy
** Antoine de Saint-Exupéry