In-house development mainly involves hiring a team of developers to work on your software in your office. The main advantage is that you will have more control over your project, and you will be able to oversee every aspect of its creation.
On the other hand, outsourcing means hiring a third party to develop your software for you. With outsourcing, you can get your product to market quickly and at a lower cost than if you were creating it in-house.