Whole team practice recommends including on the team people with all skills and functionalities needed for creating the product: developers, testers, designers, technical writers and especially customers. It is a known fact that in software development a lot of information is lost or misinterpreted whenever the distant handover occurs. Even if everybody is doing his best and 90% of information is handed over correctly when the request goes over 4-5 handovers from customer to analyst to architect to developer to tester the information loss already reaches about 40%.
Agile software development methods fight with this information degradation with the help of the feedback loops, by making it easy for people to clarify things and verify if they got the idea correctly. Whole team practice is an extension of this idea to the extreme level - include everybody on the team and during the iteration they will be able to collaborate in order to produce a shippable increment of the software. Such a permanent collaboration and frequent commitment to the iteration plan also helps people to actually develop a feeling of a team - a feeling of belonging together, common responsibility, a feeling of "we are in this together".
Whole team practice does not necessarily dictate to having the same team during the whole project. While it is definitely good to have the team core stay on the project extra team members can be added on the need basis. For example, in the beginning of the project there might be a bigger need for the subject domain experts, database administrator or user interface designers.
This page is a part of the Extreme Programming overview