In part one of this series, I discussed the technical know how I think will help get you your next PHP job. This part points out some of the soft skills that are required for software development, discussing reasoning and how to go about acquiring those skills.
Like it or not, PHP developers are going to have to write documents of some kind as part of their job. You need to produce clear and concise documentation, including but not limited to requirements specifications, design specifications, technical documentation, end user documentation and possibly evening marketing documents and copy depending on the size of your company. Three quarters of this post is about communicating in different forms, getting your ideas across on paper is the first step to being better than the average programmer. Joel Spolsky actually recommends programmers take a creative writing course.
The guys at Manager Tools had an episode on teaching people interpersonal skills a while back and they made the point that being a good speaker is great, as long as you've got something great to say. If you can't listen to other people, you'll never have anything good to say. That cast is worth checking out, the points made are easily applied to yourself rather than other people.
Another nice article, this one concentrates on the barriers we all face while trying to listen to people, read it and be concious of them. The first time you put them into practice might be an interview, which you can't afford to mess up.
You're going to have to listen to lots of people, people you report to, people who report to you and clients. The better you are at listening, the better you'll be at your job.
When it comes to speaking, I find the most important rule is to know what you want to say. Sometimes we're forced into situations where we have to act and speak on instinct, but these situations are the minority. Most of our speaking comes in the form of meetings and presentations, both of which are usually arranged in advanced. If they are arranged in advance, you should have time to plan what you want to say in advance and also what you want to get out of it. Even if things don't go quite according to plan, the fact that you had a plan should have at the very least raised your confidence. Confidence can be quite a key factor when speaking, many things affect our confidence. For example, in my eyes an easy win is to look smart. If you look smart, or at least feel like you look smart, your confidence will be higher and the way you communicate will be better.
While not strictly a soft skill, without being able to give reasonable estimates for development work, you wont be able to manage your time effectively. Software estimation is exceptionally difficult, this book comes highly recommended, but if you want some lighter reading, I recommend Joel Spolskys Painless Software Schedules. That post actual says it is obsolete, but I don't think it's true, the Evidence Based Scheduling article takes things to another level, but the base techniques are still the same.
I'm part way through this book and I'm yet to put it to much use, but it's a bloody good read. Being able to influence people comes in handy in all walks of life, selling software, recommending the latest technology to your boss or peers or convincing your boss you really need to go to ZendCon.
That's it for now, I'll be back with part 3 soon, which will be on writing your CV/Resume.