Recently I've been thinking about my career as a technical project manager and business analyst over the years.
What I've come to realise is that technology isn't the hard part when it comes to building software, it's the people.
Let me qualify that statement by saying I don't mean customers are a pain, or anything of a pejorative nature relating to people on a project. What I mean will become more apparent as you read on.
I think we're all aware that anything you need of a technical or factual nature can be found online, in a book, in a blog post, or in a YouTube video.
All the knowledge is out there, you just have to look and you will get a definitive answer on how to do something, or how to deal with a problem.
If you want to know how to connect your website to a third party web service, you contact the vendor and ask for their API. Bang, the programmers send you the documents which explain how to talk to their service.
You want to know what the best pattern is for dealing with spam, you can research it and find plenty of answers. As to what the 'best' answer is, that may be subjective. But consider you started from a point of not knowing anything, and now you have lots of options to choose from.
Say you're getting a weird error message in Windows. Looking at the error message itself gives no clue as to what to do next. But chances are someone else out there has experienced the same problem. Simply type in the exact error message into Google and within minutes you'll discover other people have run into the same dilemma. Rather than having to bungle around trying to figure out how to fix the problem yourself, you can see how other people solved it - "oh, I need to update my Java Runtime Environment. Is that all."
My point is this - chances are you can always find a solution online to a technical challenge. Things aren't so simple when it comes to what I'll term 'people problems' for the sake of this article.
If you were to type into Google: 'Harpreet never seems to contribute to team meetings. He's a smart guy, why doesn't he ever say anything?". There is going to be zero chance you will find a blog article or YouTube video explaining exactly how to fix your 'shy team member' problem, at least nothing specific to Harpreet and your circumstances.
Let's follow along another fictional scenario. For reasons unknown to you, Alice and Alfonse just don't seem to collaborate. It's not that there's open antipathy or anything, they just don't take opportunities to cross-pollinate, bounce ideas off each other, that sort of thing. Once again, you are going to get nothing from Google if you ask it: 'why won't Alice and Alfonse collaborate?'
You can see pattern to the scenarios I've presented, these are people problems, not technology problems.
You probably can find general advice on solving such matters online, but you'll never find an actual answer like you get with technology questions.
Will you get better at solving these 'people problems' if you read books like: How to Win Friends & Influence People (Dale Carnegie),
Definitely yes - and I recommend these books especially for people who aren't naturally extroverted. I think these are undeveloped skill for most people, so called soft skills. The reason is because this skill is hard to cultivate, and you can't get quick easy answers.
As a result of this realisation my reading has leaned more towards books about people rather than just technology. Sutherland's Scrum: The Art of Doing Twice the Work in Half the Time is a good example of this, it’s got a heavy people focused, rather than being a prescriptive 'do this, do that' kind of book. It does have some of that in there too, but it's not the focus.