1. Business goals
- What does the software need to do?
- What existing software does the software need to work with?
- Are we replacing an existing solution, or creating something new?
- Explain the company's revenue model and how the software is expected to contribute to the bottom line.
"We need a stock-control solution for our existing ecommerce website. It needs to interface with our online ordering system."
2. Timescale
When does the software have to be operational?
3. Overall budget
What is our overall budget for development, hosting and maintenance in the first 3 years of its operation?
4. Off-the-shelf alternatives
- Which off-the-shelf alternatives did we consider?
- Where do they fail to meet our objectives?
5. Standards conformance
Are there any specific standards that we need to adhere to?
6. Users
List all user archetypes who will be using the software (include management and operations roles).
7. Scenarios
List all use cases and any specifics that go with them.
"As a callcenter agent, I can see a list of all available agents within the customer's range. (Need to interface with a geolocation service to establish geolocation and distances.)"
"As an operations person, I can see the basic performance statistics in my systems dashboard. (Need to install Sensu client and integrate with Sensu Enterprise dashboard)"
8. Languages
What interface languages do we need (internationalization substantially increases the total cost of ownership)?
9. Ownership, licenses
Who will own the source code of the newly developed software?
10. Interoperability
- Which other services does the software need to interface with?
- Which protocols do these APIs use?
- Where are these services hosted?
- Are service APIs documented?
11. Project management
Who communicates with the development team, measures progress, assesses quality, and reports to management? Per user archetype, list the person who will be in charge of user-testing their scenarios.
12. Hosting
Where should the software be hosted? On-premise? Within a certain geographical boundary?
13. Operations
What are the needs of the operations people (in terms of operating system, programming language and platform, documentation)?
14. Domain, DNS
- Which domain will the software run under?
- Who will own the software's domain?
- Who are the owner, administrative, technical and billing contact of the domain?
15. Threat model
What are the main threat scenarios?
16. Warranty
What do we expect from the supplier in terms of warranty?