The first iteration of a service project should be slightly different to the rest, while the aim of future iterations is to create functionality the aim of the first iteration is to define the interface, contract, tests and a stub. The purpose of this iteration is two fold
- Formally define what the service is
- Interface is what other services need
- Contract defines how it should operate
- Tests prove that it operates in that way
- Provide something for others to call
There are a few rules for the stub
- It should reliably succeed or fail
- It shouldn't do any real business logic
- It shouldn't call anything else
There are abilities to think about services as Mock Objects and all of those challenges, but that is really the job of the people calling the service to work out what they need. This leads to an interesting situation, other services will create mock versions of YOUR service to test against, this helps build the testing library based on their requirements rather you trying to create them.
So that finishes iteration 1, all that is required is to deploy the service to the test environment so others can start "using" it.