Platform Decision Document - Hamster339/Piping-Tool-Java GitHub Wiki
Introduction
This document will outline the decision behind which platform the software will be made on
Taking the results of the survey, Three options exist. These are, in order of preference form the survey:
- Mobile app
- Website
- Desktop program
Mobile app
Advantages
- The survey suggested potential users much prefer a mobile app
- An app would provide mobility to users.
- The target demographic of pipers are more likely to have a smart phone than a pc, based on the fact that more people in general have phones.
Disadvantages
- Development team has no experience with apps, meaning much longer development time
- Harder to carry out testing than other options, as testing conducted on different device than development
- have to deal with android and iOS, requiring separate apps, increasing dev time
Website
Advantages
- Assessable by the widest set of users
- Easy to share stuff between users
- Dev team has experience with websites (esp Django)
Disadvantages
- Requires internet connection for users
- Requires server to work
- Requires users to have accounts making program more complex
PC program
Advantages
- simplest
- dev team has most experience with pc program
- easy to develop and test
Disadvantages
- significantly least popular method in survey
- Least portable and assessable
- have to deal with pc/mac/Linux
Conclusion
Considering the advantages and disadvantages outlined above, the only viable option appears to be a pc program.
The website has the fatal flaw of requiring a server to be properly released to the public. This must either be paid for, which is impossible on a zero budget project such as this, or done on a free site, which limits the scale of the project. Additionally, storing everything server side is unnecessary, and may take up lot of space if users are able to include sheet music in the program and storing client side is much more complex than for other platforms. Overall a website adds too much complexity without enough gain in the context of this project.
The mobile app is a strong contender, as it fits well with the goal of the project, and is by far the user's most preferred. However, it has the fatal flaw of the dev team having to learn app programming from scratch, which would cause dev time to be much much longer. This is simply not feasible in a small in my free time project such as this.
That leaves only the PC program. Although the least popular option in the survey, it remains the most viable option. Using this platform greatly increases the chance that the project will be completed. As suggested by a user, developing a mobile app later that syncs with the pc program, once the pc program is completed, remains a viable option.
Overall, the best solution is for the software to be developed for a windows pc, with mac and Linux support maybe being added later.