In software engineering, what is it? Similar to what we usually call the transitional design. The so-called transitional Design refers to over-tone functions, over-emphasis on models, and so on, resulting in a huge system volume and low efficiency.
Another concept is to develop a second system. People often design a second system based on the first system, and use the functions of the first system with caution, this is often reflected in the second system, resulting in the consequences of the transitional design.
I remember that a few years ago I had thought about this, because I often like to make some gadgets, so I felt it for a long time. The same is true for programming. I divide the creation into three times. For the first time, it is usually difficult but tolerable. For the second time, it is the most fancy, for the third time, there will be a lot of reason, and the things made are often a little discount. In fact, I sometimes think that the second operation will be better, because it is bold enough, but it is often the greatest burden on us, so in terms of software engineering, the third time should be ideal.
Therefore, we should avoid the occurrence of a transitional design or a second effect: first, we need to set budget specifications, which cannot exceed a certain limit. Second, we must stick to the decision of having at least two system development experienced architects. At the same time, it saves the vigilance against special temptations.