This section of Lumiera’s technical documentation deals with the code base as such, not so much with the internals of the Lumiera application. It is targeted towards people participating in Lumiera development.
The Lumiera source base is huge and expected to grow for some time to come. Just judging by the lines of code, Lumiera can be considered as a medium sized system, which gives us some hints towards the adequate practices, conventions and the degree of formalism to apply.
Generally speaking, a small system doesn’t exceed the mental capacity of a single knowledgeable human. A single person can know everything and understand everything in such a code base. Thus, any formalism and organisational overhead is detrimental; we’re best off doing away with “Methods” and just rely on taste and craftsmanship.
But there is a hard limit for this approach, kind of a sonic wall — usually somewhere around a size of 60000 LoC. At that point, the adequate value system flips around as a whole. Since beyond that point, no single person can understand and know everything about such a system, communication and understanding become the primary concerns of the development process. Suddenly, we do need some organisation, some rituals and a methodical approach. Yet still we don’t need a high degree of formalism, since at least we can easily know and recall everyone involved.
To give a delineation to the other side, a constantly growing project might eventually reach the point where the actual coding of new functionality makes up less than 25% of the overall work required. More people might be involved than anyone can recall or overlook reasonably. A code size of 1 Million LoC seems to exceed any kind of sufficiently precise imagination. From that point on, a rigorosely formalsed organisation is vital to keep such a large scale project from floundering.
-
also see the Design Process for ongoing discussions
-
see the Developers Vault for frequently used developer’s resources