A well run software project should have a set of objectives that it is trying to meet. Sometimes projects will fail or be cancelled when it becomes clear that those objectives cannot be met within constraints, such as time-scale or budget, that form part of the project's business case. When a project is cancelled, it can have a profound impact on the team. It is important to manage the process of cancellation so that team members can smoothly transition in to their next project. How this is handled can impact team members' productivity now and in the future, as well as their perception of the company and its managers.
Team members should understand the reasons for project cancellation and believe them, if possible the teams should be part of the discussions around cancellation even if they can't influence them. Once team members leave the project they should be rolled on to new projects as soon as possible and given productive work to do.
It is important to realise that project cancellation is often the right action. Projects are planned based on imperfect information; as projects progress and teams learn more then the decisions on project viability can change too. Often it is difficult to act on this changing information, particularly in public sector projects, as it could directly impact the reputation of the project sponsors, and undermine the strong emotional engagement that team members have made in delivery. To make the best decisions, projects should be monitored continually, and early and regular feedback obtained from all project stakeholders so that informed decisions can be made and openly communicated.
At the end of a project, a project retrospective should be run to give the team an opportunity to take stock and take away lessons for the future. Retrospectives should be balanced, looking at the good and the bad and providing a basis for team members' future work and a celebration (cue the beer) of the teams achievements.