We have faced some practical issues. Someone develops a code and when he leaves, it takes a while to get used to understand the interpretation of the code. This becomes more difficult with novice coders. Secondly, any process consists of inputs, interlocks and outputs. Most of the time when interlocks changes, the output also changes. This means, some one has touch two piece of code, Viz. interlocks function and output function.
I am looking for something like layered based architecture, where I change only the top file and rest of the downstream code is untouched.