It all depends on what kind of software you want to develop and for what purposes. You have already been given several options. If you want to develop an e-learning platform, you are better off contacting companies that specialize in this kind of technology. If you want a CMS system, then it will most likely be another contractor. However, there are large companies that offer a varied range of services. Also, if you have a small business, you can try ordering development services from individual developers or freelancers. It's better to choose according to the portfolio and reviews of previous clients