The scrum team is a cross-functional group that is responsible for delivering the software or product. In Agile development, the team usually includes people skilled to understand customer requirements and conduct software design, coding and testing. Additional skills (e.g. UI design, usability, etc.) may also be included, especially when they are integral to the software release. The scrum team is encouraged to be self-organizing and to take collective responsibility for all work commitments and outcomes. Scrum teams respond to requirements (often presented as user stories) by collectively defining their tasks, task assignments, and level of effort estimates. The ideal size for a scrum team adheres to the magic number seven plus or minus two rule. In scrum, the team is one of three roles; the other two being ScrumMaster and product owner.