A freelance software developer contract template is a document that defines the terms and conditions for the work relationship between a freelance software developer and an employer.
A software joint development agreement is a document that defines the terms and conditions for the work relationship between two or more parties, when they are creating a new software product.
The main difference is that in case of a freelance software developer contract, it's just one party who will be developing the product while in case of a joint development agreement, there will be multiple parties involved.