Dec. 10, 2024, 5:36 a.m.
Modularity, as I understand it, is a design concept where the constituent parts, of a bigger whole, can be interchanged. In my case I incorporate software modularly, however, I have also applied modular designs in real life to great success.
My software development improved when I incorporated a modular design into the architecture of the software I was building. I started by hard-coding the entire code base and incurring technical debt. As the technical debt accrued for my project it was becoming clear I would have to transition the project from a hard coded spaghetti into a modular architecture. At the beginning of transitioning the project to a modular design it seemed like a daunting task (it was) as many features had already been worked out and it seemed more appetizing to have more features rather than cleaning up old features. When I finally caught up after making the entire code base modular I noticed everything had improved, everywhere. I was able to make updates cleanly without breaking other parts, the code-base was more readable, it gave the code-base structure.
I applied a modular concept to my closet which due to the multiple variations of clothing was a pain point for me. By organizing, editing and giving the closet a storage structure I was able to improve, maybe even, entirely remove that pain point.
A downside I observed with the modularity was that it made both projects bulkier. The bulkiness of the software allowed for varied interoperability, in contrast, the spaghetti code got straight to the core of where it was needed but was not interoperable. I observed the bulkiness in my closet take form as bins and shelves; they took up more space than say a nice compact pile of clothes. The benefits were greater than the downsides in my opinion.
Therefore, whether it’s for organizing clothes or software with modular properties it wouldn’t surprise me if anyone's ongoing projects improve by employing a modular design concept or me.