Why are communication skills important in Software Development?
Comprehension and verbal skills are required to read and understand, as well as convey: a. Requirements b. Specifications c. Books, articles and manuals d. Bug reports e. Project Plans f. Achievements g. Difficulties and obstacles coming in way of goals h. and more...
More importantly, good communication skills help a developer prioritize tasks better. A good communicator can better grasp the urgency/importance of a particular situation or feature. And of course, innumerable other reasons.
Now, one thing I have noticed is that there are many software developers, those with excellent academic records, who could be brilliant programmers or testers, if only their communication skills were better.
Often such 'latent' good programmers find their way into organizations of all shapes and sizes. Sadly, more often than not, such professionals are unable to achieve their potential because of their Achilles' Heel: Communication. Often we hear reports of speeches by industry leaders or top managers who have said that graduates from <insert country or state or university> are unemployable. My belief is that the students have the fundamental material built in, but are only hampered by lack of good communication skills.
Responsible organizations will want such people to achieve their potential. What are the options open to such organizations? Classroom Training? Online Training?
I will appreciate if other people who have thought about this issue could contribute their opinion. If anyone has links to online articles which address this issue or online training programs, that would be very helpful.
On Wednesday 08 July 2009 17:54:12 Prashant Verma wrote:
I will appreciate if other people who have thought about this issue could contribute their opinion. If anyone has links to online articles which address this issue or online training programs, that would be very helpful.
I have thought deeply on this issue and face the problems you mention on a daily basis. Solution is very simple. The candidate should join an open source project. If he perseveres for more than three months he will have well rounded communication skills - a will be a better programmer. If he is unable to cut it, then he is unfit to be a programmer and better off as a coder in some sweatshop where the only communication skill is to say 'yes sir'.
In open source programming, communication is through mailing lists, ticket tracking systems, IRC and wikis. On a mailing list, if the question is not formulated properly or the relevant information regarding platform, version, error reports etc not given, the poster gets ignored or flamed.
bug reports and patches are taken seriously and inadequete reports, buggy patches, patches without tests and documentation are mercilessly attacked. IRC is extremely helpful - if one knows how to communicate. And one learns fast. And messing up a wiki page is the easiest way to learn how to format one.
the main problem is that India is still a highly feudal society where people in authority cannot be questioned. In open source, authority comes with contribution and even the geekiest geek would not dream of getting upset if he is questioned.
using this method I have been very successful in churning out employable people - from very unpromising material. There have been failures, because some people are incapable of learning.
On Thu, Jul 9, 2009 at 7:31 AM, Kenneth Gonsalveslawgon@au-kbc.org wrote:
using this method I have been very successful in churning out employable people - from very unpromising material. There have been failures, because some people are incapable of learning.
Speaking of failures, I've seen many of my peers who do not attempt free software, or even something more challenging or different than what they are currently doing solely because of the fear that it is beyond them and that they would fail. Failure would mean they would be laughed at and their high college rank and prestige will be tarnished. So the best way out is to not try and simply claim that it is too childish, hippyish, useless, etc. But this is probably not an Indian outlook -- must be a global problem right?
On Thursday 09 July 2009 07:56:49 Siddhesh Poyarekar wrote:
On Thu, Jul 9, 2009 at 7:31 AM, Kenneth Gonsalveslawgon@au-kbc.org wrote:
using this method I have been very successful in churning out employable people - from very unpromising material. There have been failures, because some people are incapable of learning.
Speaking of failures, I've seen many of my peers who do not attempt free software, or even something more challenging or different than what they are currently doing solely because of the fear that it is beyond them and that they would fail. Failure would mean they would be laughed at and their high college rank and prestige will be tarnished. So the best way out is to not try and simply claim that it is too childish, hippyish, useless, etc. But this is probably not an Indian outlook -- must be a global problem right?
very Indian - typical feudal thinking. My niece in a very prestigious school once found that in her notes the teacher had wrongly described convex and concave mirrors. So in the exam she wrote the correct definitions - and it was marked wrong. Her mother complained to the head mistress and was advised to advise the girl to write the wrong answer next time as anything else would undermine the teacher's authority.
on three occasions I was called in to consult with proprietary companies who wanted to use open source. Although they offered good money, I didn't last for more than a few hours in each company. 'Team lead' would not sit with team members for a session. Everyone was afraid to ask questions ere their ignorance would be exposed. And no one wanted to show their code to anyone else. And when the code was shown, they took it as an insult when bugs were pointed out. The attitude is so bad that if there is a bug in code written by a higher-up, the lower downs would never have the courage to file a ticket. They would work around the problem or just keep quiet.
as for collaborative development - no way. I write my code and you write yours and some 'integrator' can put the pieces together. This mail is getting too long ...
On Thursday 09 July 2009, Kenneth Gonsalves wrote:
the main problem is that India is still a highly feudal society where people in authority cannot be questioned. In open source, authority comes with contribution and even the geekiest geek would not dream of getting upset if he is questioned.
More a conspiracy of silence, where the incumbents know their incompetency and will not do anything that upsets the status quo. And will not allow heretics to question the entrenched wisdom.
On Thu, Jul 9, 2009 at 7:31 AM, Kenneth Gonsalveslawgon@au-kbc.org wrote:
On Wednesday 08 July 2009 17:54:12 Prashant Verma wrote:
I will appreciate if other people who have thought about this issue could contribute their opinion. If anyone has links to online articles which address this issue or online training programs, that would be very helpful.
I have thought deeply on this issue and face the problems you mention on a daily basis. Solution is very simple. The candidate should join an open source project. If he perseveres for more than three months he will have well rounded communication skills - a will be a better programmer. If he is unable to cut it, then he is unfit to be a programmer and better off as a coder in some sweatshop where the only communication skill is to say 'yes sir'.
In open source programming, communication is through mailing lists, ticket tracking systems, IRC and wikis. On a mailing list, if the question is not formulated properly or the relevant information regarding platform, version, error reports etc not given, the poster gets ignored or flamed.
bug reports and patches are taken seriously and inadequete reports, buggy patches, patches without tests and documentation are mercilessly attacked. IRC is extremely helpful - if one knows how to communicate. And one learns fast. And messing up a wiki page is the easiest way to learn how to format one.
the main problem is that India is still a highly feudal society where people in authority cannot be questioned. In open source, authority comes with contribution and even the geekiest geek would not dream of getting upset if he is questioned.
using this method I have been very successful in churning out employable people - from very unpromising material. There have been failures, because some people are incapable of learning. -- regards Kenneth Gonsalves Associate NRC-FOSS http://nrcfosshelpline.in/web/
I do not think the strategy is sufficiently perfect. Such people should be made to write complete developer-level documentation under a mentor preferably as well (in the FOSS project). Language skills cannot be handled properly in a FOSS development environment without special mentoring.
P.S. I am quoting your full mail for the benefit of some other readers.
Best
A. Mani
On Sat, Jul 11, 2009 at 4:22 AM, Mani Aa.mani.cms@gmail.com wrote:
I do not think the strategy is sufficiently perfect. Such people should be made to write complete developer-level documentation under a mentor preferably as well (in the FOSS project). Language skills cannot be handled properly in a FOSS development environment without special mentoring.
I understand the need for a mentor as a person whom one can approach when stuck. But I always get the feeling that when we talk about mentoring we almost always talk about it in the sense of hand-holding/spoon-feeding. The one person to go to to get your medicine bottle opened or your fly pulled up. That just won't happen in FOSS and if we're trying to do that here, it is very disappointing. What counts in FOSS is the ability to stand on your own feet and do your thing. Doesn't matter if you're wrong -- people will correct you if what you are doing matters. And those very people are your mentors in the unofficial sense. Yes, you need ambassadors to promote the concept of FOSS, the beauty of FOSS, but they will not be there to walk you through list etiquette or follow up on you to make sure you sign up to a project or tell you what goes in each registration field. Nor are there going to be programmer-mentors teaching you to code in C. You need to have the motivation to do that yourself.
FOSS is the platform where students can understand how amazing it is to be independent and learn from some really intelligent people as peers and not demigods. You can see what they do, understand how they do it, replicate if you want and once you're good enough, improve upon it. You can see how they can also go wrong in so many cases and understand that it is not criminal to be wrong, or to fail.
And as for language skills -- if you're talking about the mere ability to speak in English or write perfect grammar then no, FOSS is not the place to learn that. In fact I haven't seen to many grammar pedants in the FOSS programming scenario -- you have to be if you're contributing to documentation though :)
If you're talking about etiquette like writing clear complete statements (without the sms style 'ma frenz'), politeness, professional behaviour, honesty, etc. then FOSS is the perfect place to be. There's nothing better to straighten you out than a flame (or in some rare cases, a polite reply) to post according to list guidelines.
On Sat, Jul 11, 2009 at 10:46 AM, Siddhesh Poyarekarsiddhesh.poyarekar@gmail.com wrote:
Nor are there going to be programmer-mentors teaching you to code in C. You need to have the motivation to do that yourself.
Oh, and I purposely did not say python ;)
/me ducks to avoid flames from the python fanbois.
On Sat, Jul 11, 2009 at 10:46 AM, Siddhesh Poyarekar wrote:
[snip] ...
If you're talking about etiquette like writing clear complete statements (without the sms style 'ma frenz'), politeness, professional behaviour, honesty, etc. then FOSS is the perfect place to be. There's nothing better to straighten you out than a flame (or in some rare cases, a polite reply) to post according to list guidelines.
/me applauds for a fantastic written e-mail. :) I appreciate Siddhesh's comments and agree with it.
-- Roshan Baladhanvi
On Saturday 11 Jul 2009 4:22:24 am Mani A wrote:
I do not think the strategy is sufficiently perfect. Such people should be made to write complete developer-level documentation under a mentor preferably as well (in the FOSS project). Language skills cannot be handled properly in a FOSS development environment without special mentoring.
well it is your opinion against my experience