design issues 5%
architecture constraints 5%
language shortcomings 1%
mental blocks 5%
personal time management 4%
personal energy 5%
communication with others 75%
I waste more time just trying to figure out what others are trying to say, sometimes in person and by voice, but mostly in writing. For most emails, I have to click "reply" or call back simply because what you're trying to tell me is so unclear. I think the last time I received a written specification I could actually work from was in 2002.
This isn't a problem of education, country of origin, or any other demographic: almost everyone sucks at writing. It's a real problem.
I suppose the best antidote to poor writing is more writing, especially on-line. Don't be bashful because as OP says, your readers won't be.
Thanks OP for the one "please" post this week that everyone can benefit from. (Did I just end that sentence with a preposition? Need more practice.)
A preposition is a perfectly acceptable thing to end a sentence with. Seriously. If you find yourself re-writing it as "with which to end a sentence" you're going to come across as stilted and awkward.
Eschewing trailing prepositions is a rule improperly inherited from Latin. It does not apply to Germanic tongues where prepositions are necessary to disambiguate verbs. For example, to ask about, to ask of, to ask to, and to ask in are very quite distinct. In Latin, the default position of the verb is the end of the sentence. Latin word order isn't fixed like English, so the ordering of words is a form of emphasis, and placing something in the final position, after the verb, is one of the strongest emphases possible. Putting a preposition in that position would be like someone screaming "WITH! WITH!" on a soapbox on the street corner.
It's a useful rule though: an English grammar book that proscribes trailing prepositions is one you needn't spend any more time with. Just put it down and forget that it exists.
Like so many other rules, it results from Latin-steeped scholars of the 19th century who were uncomfortable with the flexibility of their native tongue, and attempted to hem it round. It's understandable. These men knew they could use the full scope of expression of Latin. About the only person who's ever pushed English hard enough to make it creak was James Joyce.
Amusing aside: you can transform transitive verbs into nouns in English directly (to request, a request). You can't similarly transform intransitive verbs because they require a preposition. In German, you would say a for-ask or an of-ask, but we don't accept that in English. Verbs with both forms are an interesting grey area, such as to dig vs to dig for.
It isn't fixed like English, but parts of it are indeed fixed, prepositions being one of them. The issue isn't that putting a preposition at the end of a sentence in Latin gives the preposition undue emphasis, but rather that you simply can't put a preposition at the end of a sentence in Latin[1]. Ending an English sentence with an article would be roughly similar in terms of nonsensicality. As for Joyce, well, you know he's binomeans to be comprendered!
> You can't similarly transform intransitive verbs because they require a preposition. In German, you would say a for-ask or an of-ask, but we don't accept that in English.
Unless writing for a scientific journal, or some other such formal setting, your goal of clear communication will be best served by using a casual, conversational style that resonates as closely as possible with how you would talk to your reader in person.
That means prepositions are very much something you can end a sentence with. And you can start one with a conjunctive too, if it feels right. The rules of grammar are more like the pirate code than an ISO standard - they're more what you might call guidelines, really.
Agreed. Grammar's just norms of communication, and norms depend on context. So treat the violation of them as such - sometimes it matters, sometimes it don't.
I'm not against ending a sentence with a preposition, but I find myself often unconsciously avoiding doing it in speech as well as in writing. I don't really find it stilted (but I don't care about the issue one way or another). I say "what are you talking about?" about as naturally as I do "On which machine does this process run?".
Similarly, I tell people that I can count on one hand the number of times I've had a project fail (or nearly fail) because I or someone on the team couldn't open a database connection, or write to a file, or shrink an image, or what have you (it's happened, but very rarely, and usually because of some arcane weirdness or a truly incompetent person).
Overwhelmingly, projects I've been involved in that failed or nearly failed did so because of basic communication problems - misunderstanding someone, not clarifying, not getting enough detail, making assumptions, etc. Yet these skills are hardly ever taught anywhere. Hard tech skills in schools, certification progams, etc. all cover less than half of what makes a truly useful developer.
I work for a large corporation that paid for my Masters in Software Engineering.
Despite that, the most important training I have received is from taking the in-house courses on subjects like Interviewing, making decisions, being effective, basic management skills, etc. The one thing they have all had in common was that they taught (and stressed) better communication skills.
Seemingly simple, "soft" stuff like learning how to listen better has been more useful in my day to day work as a programmer than a technical graduate degree. Go figure!
It's a nasty habit that I've been trying to curb this year, with some effectiveness. Whenever I catch myself making an assumption, I either come up with other assumptions and weight them, or wait until I can get some clarity on the issue.
I find that I have a nasty habit of giving a "voice" to a textual conversation. I'll start reading it as if the other person is happy, or angry. Then I'll continue down that path.
Recently it got to a point where I was seriously convinced that every text a friend was sending me was an angry quip. Every fiber of my being was slowly filling up with anger and resentment. When in fact they weren't angry at all, they were just short on time and words. I was getting upset over an imagined (assumed) problem.
I felt incredibly silly, and that is what made me decide to stop making assumptions in my communications.
I think you hit it on the head. I'd break down the 75% a little further in my case:
- 25% Poisonous people in key architectural/infrastructure positions who actively make it as difficult as possible to communicate.
- 15% "Mea culpa". I fail to clarify or make an assumption due to busyness, lazyness or missing something.
- 25% Folks who do not take initiative to engage in conversations at the appropriate time. These folks typically pop up with 11th hour critical path problems.
- 35% General nonsense: People incapable of writing english, etc.
Making the online communications situation worse is the proliferation of "short" communication methods (ex: IM, Twitter, FB Status messages, etc.).
Written communication is naturally more challenging than face to face verbal communication. These "short" communication modes make things worse, opening up all sorts of possibilities for misinterpretation and miscommunication.
I felt so shackled by IM conversations, that I disabled GChat earlier this year. I've rediscovered the telephone and how superior it is when I really want to understand the other person. The only modes of only written communication I employ now are blog posts, forum posts, and emails. They all give me the opportunity to thoroughly review my words before setting them free.
I've tried both, and for coding-related stuff, I really dislike phone (or Skype), ranking it just about the worst possible option. I'd much rather IRC or IM, where at least we can exchange code and links and there's a bit of a scrollback buffer.
Twitter and FB status messages I put in a different category, because it's difficult to have a proper conversation with them. It's pretty easy to have a proper conversation on IRC, though, at least if all parties are text-chat-fluent.
There are a bunch of collaborative text editing web sites where two or more people can work on the same document.
I've used them for technical phone interviews and they work well. Combine that with phone and skype and you can make things happen (of course it's hard to run code in this).
Perhaps a screen sharing / webex approach would work in the case where you really need to run code together.
I've set up a private server and it's really nice. First of all you can record voice conversations. Secondly it offers chat between users and between channels.
I find that voice communication is really effective, but having the ability to say "Hold on, let me send you this link!" is also crucial.
I hadn't considered the coding situation, but you're right: coding is something where you need a visual reference to make sure that you're both on the right page.
But what about this compromise: Skype voice conversation + skype text-chat for showing each other code snippets.
That can work better than just Skype, but I guess I don't generally see the benefit. As long as all parties are chat-fluent (I've worked with some people who aren't, and then it can be painful, like IMing with my parents), I find IRC discussions better than Skype. Especially true if three or four people are participating; conference calls are much harder to demultiplex, at least for me, with all this time wasted on people accidentally speaking over other people, asking for something to be repeated, etc., etc. And with text, you can grep the logs, too!
> But what about this compromise: Skype voice conversation + skype text-chat for showing each other code snippets.
I've been using this combination for a few weeks now, working on a development project with a partner who is ~1000 miles away. Besides voice and text, Skype also has screen sharing. All three parts have become essential to how we work.
At my last firm we could share our screen just by giving someone a hyperlink over IM. Sometimes this was really valuable... for coding issues or support issues. Skype has this too, people should use it more.
While reading helps to improve your understanding of what makes good writing, I feel writing regularly is more important. You need to learn to foster your own ideas through writing, being careful not to just think what others write.
"For ever reading, never to be read." - The Dunciad III
Right. But if you only ever write and rarely ever read your writing will not be as good. Reading is essential to good writing. The quote you use is encouraging the reader to write, but it also presupposes that the reader is well read ("A lumberhouse of books in every head"). Maybe that's not a coincindence.
Is there a difference in encouraging a "scholiast wit" to write versus encouraging a "dimwitted blogger"?
Yes, I agree. Like all things it's a balance. In looking to refine skills everyone will require tuning in different areas. A programmer may be great at writing code but often fails to identify re-use of libraries/patterns. Reading others' code and technical articles may assist him/her in developing in that area. Likewise you may be able to tell when a writer lacks a 'lumberhouse of books'.
Being aware of why you are not developing a skill is probably key -- review from others helps to provide insight into potential underdeveloped areas.
> Did I just end that sentence with a preposition? Need more practice.
For me, grammar is the farthest thing from the real issue. What I find makes it difficult to communicate are situations when the writer/speaker is producing without the understanding that the reader has no fucking clue (or limited understanding of) what they are discussing.
Inevitably what I read or hear in terms of "specs" or "user stories" has an entirely different meaning to the writer/speaker than to the reader. The writer/speaker generally has at least some domain knowledge and often assumes such knowledge that should not be expected of the reader/listener.
Sort of ironic but pretending your someone else "really well" could qualify you as both perhaps insane (under some definitions) and as a really good writer/speaker. The critical point for me is the age old adage "know your audience".
I learned to improve my writing quite a bit by using outlines that let me shift through levels of abstraction at will. I write long e-mails and blog posts using mind-mapping software. Being able to re-order my paragraphs & sentences, include or change examples, and step up and down different levels of detail has made it much easier for me to communicate the points I want to make. I've found that this helps even when I'm writing short e-mails or HN comments.
Admittedly my writing doesn't sound pretty. I'm okay with this. My e-mail chains end up much shorter than any other programmer/analyst I know and result in significantly fewer misunderstandings. That's what I call success.
I used to use bubbl.us because it has nice keyboard shortcuts. Now I use www.checkvist.com because you can create stuff in a list format, which is easier to paste into documents and share with others.
I love freemind, mostly for how quick it is to use from just the keyboard, and also for the the platform independence which makes it very easy to use it collaboratively.
This is exactly why Jeff Atwood was wrong. If you can solve your own problem instead of having to communicate it to someone else, you've taken away 75% of the impediment to a solution.
All dependent on context. In the context of a team, one can rarely solve all problems by herself. More importantly, it can cause greater disfunction when work isn't coordinated/communicated appropriately. The whole point of working in a team is to get more work done more efficiently because the work load is shared and each member focuses on her specific skill, and doesn't do everything.
Yes, context is key. My implied context was small problems that can be solved with just a little bit of programming. If the problem is big enough to require a team then a different approach is required.
People deal with small problems or questions all the time. If you can answer your own question using less effort than it would require you to communicate the question to someone else, you're ahead.
This isn't a problem of education, country of origin, or any other demographic: almost everyone sucks at writing. It's a real problem.
I suppose the best antidote to poor writing is more writing, especially on-line. Don't be bashful because as OP says, your readers won't be.
Thanks OP for the one "please" post this week that everyone can benefit from. (Did I just end that sentence with a preposition? Need more practice.)