The sources of ideas for software products are legion. These ideas can come from market research including the demographics of potential new customers, existing customers, sales prospects who rejected the product, other internal software development staff, or a creative third party.
There are several different approaches to software development. Some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece. There are significant advantages and disadvantages to the various methodologies, and the best approach to solving a problem using software will often depend on the type of problem.