There are two approaches to functional specifications, one is to list all of the functionality that could be needed and the other is to start with a few key use cases. We prefer a bit of a hybrid in that we want to know "where we are going" in terms of functionality, but also we want to only specify that which we can build immediately.
For an initial build, we should reference both of these:
Group-Based Financial Inclusion Methodologies
However, when the functional requirements conflict with rapid development with sufficient testing, then we should push functional requirements to the next release.
Minimal Viable Product
The initial release should consist of these microservices:
- identity
- provisioner
- organization
- accounting
- customer
- notifications
- fims-web-app
- supporting libraries
See Fineract CN Project Structure for references to these microservices.
The target is a minimal payment app backend system with minimal UI.
There is a good discussion concerning a minimal viable product here – > https://lists.apache.org/thread.html/f658ccf0d9b0c350be901d58aad07c66fc40637f46d480b164793320@%3Cdev.fineract.apache.org%3E