Welcome to Codidact Meta!
Codidact Meta is the meta-discussion site for the Codidact community network and the Codidact software. Whether you have bug reports or feature requests, support questions or rule discussions that touch the whole network – this is the site for you.
Post History
The first question to ask when considering a change of architecture is why? What benefits would a modular architecture bring, and would it outweigh the drawback of having to re-write the entire sys...
Answer
#1: Initial revision
The first question to ask when considering a change of architecture is _why?_ What benefits would a modular architecture bring, and would it outweigh the drawback of having to re-write the entire system? The main reason to make something modular is so that it can be used as separate parts, but if you separate parts of Codidact it either doesn't work at all, doesn't make sense, or is pointless on its own. The system we have is formed by its parts; remove some and it becomes something else. The next questions to ask, especially in our case, are _who_ and _how_ and _when?_ Who will work on this change, how, and by when will it be done? We are a volunteer organisation with a very small team and extremely limited developer time — that means we need to be quite careful about how we allocate it to get the most out of that time for our communities. Re-architecting the system to no tangible benefit to our communities would not be the best use of that time. Moreover, the systems that our platform is built on are already somewhat modular by design. Ruby on Rails uses an MVC pattern, which means that each feature is almost inherently self-contained within a few well-defined files. Once you're used to the conventions, it's reasonably easy to work on something without conflicting with any other ongoing work because of this nature.