the customer – who provides the driver for requirements, and the domain knowledge and experience; the developer – who fulfils the requirements, using technical knowledge and experience; the tester – who verifies that the system does indeed do what the customer wants it to do, as defined via the requirements.