Software can be developed for a variety of purposes, whether
- For specific needs of a specific client or business, the case with custom software.
- For a perceived need of some set of potential users, the case with commercial and open source software.
- For personal use, as example, someone may need a software to automate a specific task.
Whatever is the need, the software must fulfill his task(s) quickly and efficiently without any issue, it must be easy to use although this is a very complex software.