It is not enough to just create the first version of the program. It needs to be constantly improved, new functionality must be added and there must be a possibility to completely rewrite one of the system parts without affecting the others. All of this must be done within reasonable periods and without breakdown of already existing functions. We employ principles of design of classes and packages, described by such experts as Martin Fowler, Kent Beck and Robert Martin.
The secret of high-speed development of our projects lies in the constant control and elimination of technical debts in the project.