Have you ever observed how much your development process is hindered by the pace of I/O?
Note that I’m not talking about the performance of your application, nor of the RAM and SSD you have in your development environment - I’m talking about your own personal I/O effectiveness: How well do you read, write or type?
Being an effective software developer is all about the inputs and outputs.
You need to read requirements, documents, user stories, emails, component documentation, existing code, websites, blogs, google search results and answers on stackoverflow.com.
You need to write emails, documentation, more emails, code, yet more emails, automated tests, blog posts, and questions on stackoverflow.com.
Doing these things more effectively will help you get to your goal more quickly, regardless of whether that goal is the next release or to go home for the evening.
How effectively do you read?
The average native English speaker reads at around 220 words per minute (wpm), though the range of “normal” reading speeds is anywhere from the pedestrian 120 wpm to somewhere north of 800 wpm.
Intimately coupled with the raw speed in wpm is the level of associated comprehension - a measure of how well the text is understood and the information retained. Reading a page of text at breakneck speed isn’t so useful if none of the information is available for you to use.
The unfortunate thing for many of us is that efforts to teach us to read at school stopped at the point where we were able to sit and read silently without bothering the teacher.
A few years ago I did an Advanced Reading course through my employer. This course taught me about many of the common errors that people make (all unconsciously) that slow them down. My own outcome was to lift my reading speed by 2.9x with no loss of comprehension. One of the other people on the same course lifted his reading speed by 4x!
Lifting your effective reading speed can save you a significant amount of time every day, giving you more time to get other things done.
What’s your own reading speed? If you’re not sure, try using a stopwatch to time yourself reading a passage from a book to get a useful estimate. Look at the number and decide if you’re happy with reading at that speed.
How effectively do you write?
Compared with writing for a human audience, writing for a computer’s consumption is easy. The programming language is designed to eliminate ambiguity and the computer doesn’t care how fluid, articulate or literary your writing.
Writing for other people, on the other hand, is often a real minefield. Not only are human languages inherently ambiguous and imprecise, but our audience brings their own perceptions, bias and interpretation to the table - and that’s before we bring motivation and politics into play (there are some who will take any opportunity for creative misinterpretation if they believe they can gain political stature by doing so).
The primary factor you need to consider for effective writing is to know your audience, but once you’ve got that in mind, there are a number of other factors that come into play.
Bad spelling, poor grammar and overly casual language will all impact negatively by distracting your readership from the actual message you’re trying to convey. The impact can be considerable - a single misspelled word can reportedly slow comprehension of the entire sentence by 10%. Mixing up “fewer” and “less” is a common grammatical error that trips up many.
Improving your writing can help you become more persuasive and may help you appear more competent and professional.
How good is your writing? Do you routinely write with bad spelling or poor grammar? If so, are you willing to improve?
How effectively do you type?
The transfer of information out of your mind and into the computer via the keyboard is a key activity for any knowledge worker and especially for a software developer, so the ability to type quickly with a minimum of errors can be extremely useful.
Making things harder, the range of symbols required by most programming languages requires a very high proficiency with punctuation and other symbols.
With a sufficiently high proficiency at the keyboard - one where so-called muscle memory comes into play and typing is largely a subconscious activity - the process of transferring information out of your mind and into the computer can be as efficient as possible.
Of course the converse is true as well - if you need to pay a lot of attention to the keyboard while you type, your ability to “get things done” will be reduced and you’ll spend more time getting things done.
Improving your keyboard skills, especially if you put the effort in to learn to touch type at non-trivial rate with a good level of accuracy (no trivial task), will save you a significant amount of time and moreover will free up head space to concentrate on the job at hand.
Are your reading, writing and typing skills up to scratch? If not, what are you going to do about it?