What should the composition of the team be.
- Domain Experts
- Project Manager(s)
Defining the responsibilities of the domain experts is hard. The domain expert has to:
- describe the problem;
- identify, describe all relevant actors;
- describe, identify all nouns (inputs and outputs);
- identify and define all the verbs (actions) taken on nouns;
- outline work-flows and processes;
- articulate possible solutions for moving from starting state to desired state;
- create a model of all the above in any form (text, graphics, mathmatics, etc).
None of the above responsibilities require technical abilities but they do require problem solving, good analytical abilities, and good communication skills.
The developer takes the solutions from the domain experts and translates those solutions to working software.
The project manager is the go between between the domain experts and developers and the administrators and customers. It takes a person who is sympathetic to the customer view but can communicate in the language of the domain and developer. This person is the grease.
Customers or Users
The customer/user should be involved as soon as possible to make sure we're solving the right problem. Customers should be responsible for developing "use cases". How to they anticipate using the system.
Administrator(s) (when not just overhead) are the champions for the product to the outside world. They promote and communicate to the widest possible audience the benefits and utility of the system.