Hard skills are concrete skills that can be defined and measured. They are typically job-specific and you can obtain them through education, training (both internal and external to the organization), and certifications. For a software development professional, these would include technical skills such as knowing a particular programming language or the use of a specific framework.
In contrast, soft skills are not as tangible and are much more difficult to define and measure. Soft skills are more related to interpersonal skills, such as leadership, communication, listening skills, empathy, negotiation, and patience. While you can improve soft skills through training, they are more innate than hard skills.
It is useful for software development professionals to have certain soft skills and to spend time improving them. As you move from a developer role to that of a software...