In the long-run, hiring a freelancer is not always cheaper and employing your own developers is not always easy. Over time, freelancers have hidden costs, because they come and go and they usually lack the infrastructure of hard skills, experience and know-how a development team has. This might result in you redoing the same project over and over again with different people. Regarding hiring, software development is notoriously one of the toughest recruiting markets. You can search months for the right people and still come up empty handed, especially for projects requiring highly specialized skills. The recruiting alone might end up costing as much as a small software project. However, as a wise man once said: if you think it's expensive to hire a good software developer, try hiring a cheap one.