Ask Slashdot: Communication Skills For Programmers?
An anonymous reader writes "As a new developer at a young-ish software company, I've been told my communication skills need some work. I'm not painfully introverted or socially inept, but I get lost in my work and only contact people if I need something from them or they ask me a question. Traditional advice isn't relevant to casual, less hierarchical companies — I don't have to hold my tongue when someone is wrong or worry about formalities. But I do need to connect with people professionally, since my team members and managers decide my perf and advancement. How do you keep colleagues abreast of your work without having exponentially many needless conversations?"
So this needless communication is actually needful?
Maybe just change your attitude. Forming relationships is very important at work.
Are you sure "communication skills" means that you aren't socializing enough? Perhaps your emails are inadequate, you aren't keeping people informed, aren't discussing ideas with others or are not adequately explaining your ideas.
The fact that you only talk to people when you need some from them is a problem. What about brain storming? Design meetings? Code reviews?
Getting to know people and taking an interest in their lives doesn't hurt either.
Buy it, and read it. Then read it again.
This book changed my life. I had no idea how bad I was at dealing with people until I read it. I re-read it at least once a year.
http://www.amazon.com/How-Win-Friends-Influence-People/dp/0671723650
If I were God, wouldn't I protect my churches from acts of me?
Not to single you out when there are many other offenders around, but comments like yours remind me of something I don't miss on slashdot. You open up with an unsound criticism of someone's word choice ("exponentially" has an informal non-technical definition that does not equate to geometric growth). You close with a sarcastic putdown. You sandwich good stuff in-between.
Evidently, the key to understanding recursion is to begin by understanding recursion. The rest is easy.
You've been told that your communication skills need some work. Part of communicating is asking for, and learning how to receive, feedback. So, I'd suggest the following:
DO NOT:
Good luck.
Finding God in a Dog
I had a similar situation once in which I was working away as a contractor, but the manager wasn't really aware of everything I was doing.
The best advice I received, which came from an outside source, was to start emailing the team leader and the manager a quick "status" update every week. Just a quick email about what I was working on that week, what I accomplished, and any issues they should be aware of or handle. It worked very well, and it tended to cut down any interruptions from them wandering by asking me "how's it going?" As time went on, they learned to trust me more as a professional, and it became less of an issue.
Now, I hate mandated weekly status reports as much as anyone, but if the perceived problem on their end is that they don't know enough about what you're doing, I would much rather start sending them email with the relevant information. Otherwise, you might find you have to start filling out detailed weekly status reports, attending regular status update meetings, or something else more painful that a quick email.
Have you tried turning it off and on again?
This.
Years ago, my boss pointed me to a good article titled "How to Be a Star Engineer." (Apologies for the annoying format; if you're an IEEE member or university student you can download a PDF).
The article essentially says communication skills and attitude are what differentiates star performers from the rank and file. Understand the people you're working with, what they need, and provide that. Everyone will enjoy working with you, and you will become well-known.
[Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
My first manager always told me that I needed better communication skills. Mostly this was because she was incompetent and couldn't keep track of her own work much less those reporting to her. In hindsight, I do not blame her, but rather the organization that promoted someone beyond what their skill set could handle.
At the same time, I did work on my communication and organizational skills. Since then I've earned five or six promotions and get consistently high marks in both of these areas. In my twenty years of a professional career, six in management, I've learned quite a bit and learned it can be distilled into just a couple of points
1) Know your audience.
This is the most important aspect of communication. My direct reports have learned (and I have told them) that I trust them and only expect a minimum of communication on a daily basis. I like status reports on a daily or near daily basis that let me know if you are on track. I also want to see reports when you see things going off track. Then we can sit down, go into more detail and I can do my job of providing additional resources or a manager's voice to get cooperation. If it is urgent, see me immediately. if not, it can wait for our 1:1. I want my employees to be able to work without getting sucked into a lot of meeting, be allowed to take ownership of their projects but then leverage my position when they need it.
But that is just me. Some managers want to be in the middle of every technical decision. While I don't agree with this management style, if that is your manager, adapt to his style. If he likes face-to-face daily, then give him the meetings. If he prefers a daily email, go that route. If he is a drop-by-meeting manager (I hate them) then keep talking points by your desk so you are ready.
How do you learn your manager's style? If he is good, he will explicitly tell you. Most managers are not good, however and don't receive any type of training. If this is the case, I'm sure you know who his favorites in the office are. Emulate parts of their style, or explicitly ask them how they deal with the boss. Also, occasionally, ask the boss how you are doing with communication. It will help reinforce that you are trying and he will generally view that favorably. Perception is at least half of the battle on communication...
For non-boss coworkers, communication is easier if you are already communicating well with the boss. Daily statuses on projects via email is likely the route to go. Whatever you are sending to the boss, send a similar update to your team. Develop a standard template so busy readers can scan for what they are looking for.
2) Be Consistent
For each of my direct reports, I created a template for our weekly 1:1's. There are 5-7 items on each that I go through. Sometimes most of the items will be "nothing to report". Others, there are lots. But by being consistent, I make sure everything is covered. I do the same for those I report to, either directly or as part of a project team. If you go the route of daily email updates, make sure they are done every time and have a consistent format. This will help you to be efficient with your time. Then make sure you follow through each day or however often you decide to. This creates a healthy habit in yourself, keeps people in the loop and reinforces the perception that you are an organized team player.
3) Get to the Point in EMail
Folks are busy, so spend a few minutes and think through a problem before emailing on it. When I see a long email on a subject, I immediately assume the person hasn't thought it through themselves and is looking for me to solve the problem. Don't spend three pages writing an essay. Don't go past three back and forths on an email chain. If you really need someone else to help solve something and you can't express it in two or three paragraphs, have a conversation.
Finally, a few minor points
* When getting an assignment, repeat it back to the person who assigned it so they can confirm. In most cases, follow
See my journal for slashdot ID's by year. Mine created in 2005. http://slashdot.org/journal/289875/slashdot-ids-by-year
I do not identify myself as an atheist. Technically, I am agnostic, because I know that there is no way to disprove the existence of an omnipotent and omniscient entity. I have no objection to people discussing their theories about such an entity, and I will even admit that some are a lot more entertaining than others. On the other hand, I hate it when people try to use their religious beliefs as arguments for or against anything in the real world. "This man has to die because he is an asshole" is a valid argument, "This man has to die because my Holy Book says the penalty for what he's done is death" is not. Thus, I am only 'unconcerned' with theism and theists as long as they do not pretend that their religious beliefs are in any way relevant to me. As soon as that line is crossed, I become, indeed, an anti-theist.
That said, could you please explain why the Atheist League should be called the Antichrist league, as opposed to the Anti-Kali, Anti-Mohammedan, or Anti-Pastafarian league? Sure, there are tons of different sects that profess the divinity of Christ - Catholics, Eastern Orthodox, Protestants, Mormons, members of the Unification Church, etc... But there are also a lot of sects that do not consider Christ divine, and frankly, I feel a lot more threatened by some of the latter.
The guys who keep trying to bring me to Christ on the streets of Glendora are polite, clean, and well dressed. They bother me a lot less than people who think that I could be killed without spilling blood to fuel a religious rite, that I should pay higher taxes because I am an unbeliever, or that mocking their fairy tales is a capital offense.
So, again, why should people identify as antichrists, instead of atheists if they have no more beef with Christians than they have with other, less... grown-up theists?
No good deed goes unpunished...
> > Understand the people you're working with, what they need, and provide that.
> Worrying about what people think ... then you are still going through puberty and all the pubescent insecurity that entails.
I've said things like that before. Every so often, I have to remind myself of the following:
If your customers think you suck, you do indeed suck. You may have provided them with a wonderful solution to problem X, but since you didn't listen and ask questions you didn't know their problem was Y. For the problem at hand, your solution sucks, and your poor communication caused it.
If you don't "worry about what people think" when it comes to your boss, you'll not know she thinks it's critically important that your application is very easy to use because the old farts in the C suite will be the primary users. Lack of communication = suck, for the purpose at hand.
If the people report to you think you suck, they'll leave, after having no interest in getting your projects done and probably bad mouthing you (accurately). Again, the results suck because you're only interested in what you think.
Being interested in what other people think, need, and want is the first requirement for a successful project. Not paying due attention to what other people think makes you an arrogant asshole.