I believe each software product should have its constant team throughout its life cycle.
What about the situation, when one of the core developer, who has been involved in project by 100%, shifts to another project. Here, assigning a new developer seems the only reasonable way to keep the project going. However, the time spent on communication and the full involvement and understanding of the code written by others arises many problems. Besides, many developers are reluctant to engage in such projects. Another important thing is that team becomes fragmented and the team spirit starts to disappear, if team members are constantly changing.
How should PM keep its software team or at least core members unchanged until the delivery of the project?