The software architecture team is responsible for defining and maintaining the software architecture. The team should include architects with a balanced set of skills in both the problem domain and software development. The role and authority of the architecture team needs to be clearly defined to avoid pitfalls like lack of authority, isolation from the rest of the project team, or imbalanced skills among team members.