Know your audience
Knowing who you are aiming to sell to is the most important question to know the answer to, not just because you need to know what they want to buy, but because the answer to this question dictates how the answers to your other branding questions are formed.
Software development is a difficult service to sell if the client doesn't know what they want or need because it's not easy for them to see the relationship between what software does and the benefits provided. Knowing about your audience gives you some advantage in the sense that it allows you to identify what benefits to focus on when you talk about what you offer. Even more so, specializing your software development in one sector or for one purpose allows you to better understand how you can benefit your target market and to be more specific in describing those benefits when you are speaking to people.
If you intend to become a generalist freelancer, you will have different types of client who buy different types...