Keeping the list as memo – this is something you should ideally document – or at least know well the answers before you start development of your money-making project.
- What architecture pattern do you want to use?
- What client model is most appropriate?
- Which platform is best for this solution?
- Does the hardware or OS matter?
- How will you handle component integration?
- What communication protocols are you going to use?
- Is the solution even feasible given skills, budget and time?
- How secure does the system need to be?
- Does the system need to scale?
- How much performance is needed from the system?
- How available does the system need to be?
- Do you need to be concerned about the maintainability?