Try this, by yourself or as a team exercise:
1. Quickly list off the skills a typical software development team needs.
It probably looks something like this:
--- analysis
--- technical design
--- testing, of all sorts
--- coding, of all sorts
--- UX
--- Database design
--- and so on ...
2. Now check your list.
Does it include coordination?
How about maintaining team cohesion?
How about stakeholder management?
How about negotiation?
How about ….?
I know it's a cliche but the second list - the so called "soft" skills - are often much harder than the first.
And, worse,because they're not tangible they often very undervalued by those who do the "harder" stuff.
You tend not to notice when the "soft" stuff is being done well. Worse, when a team is not productive enough and you clearly need to build your software faster, our inclinations are often to add more of the hard skills (especially coders) when what you really need is more of the soft. Injecting a good manager or scrumMaster or test-Lead into an productive team is often a far better solution than adding another coder. Why? Because although they don't produce "hard" outputs, they can bump up the collective productivity of 5, 10, 15 other people just by helping them "jell" better.
It's a leverage thing. It's a synergy thing. The whole is more than the sum of the parts.
Maybe we shouldn't call them "soft" skills.
Maybe we should call them "jelling" skills.
