Words: The Under-appreciated Tool in Your Software Stack

Words: The Under-appreciated Tool in Your Software Stack

A skill that will help you grow in your profession and as a person.

Written by Josh McLeod

Introduction

Character, Collaboration, Craftsmanship.

At RoleModel, I think our core values are really good. One reason for that is the fact that my opinion of which is most important has changed several times. During my first few years as a developer, I highly emphasized craftsmanship in my own professional development goals and thought of it as the “core” core value—assuming that those who excelled in their technical knowledge were the most valuable, advanced, etc. But then I think of Ken Auer's recent words that he shared with the team and how he expressed his feeling that, through the years, finding people with impeccable character is ultimately how excellent teams are made. After all—if the soil is rocky, good farming will cause little growth.

What has not been mentioned yet is collaboration, and that is what I want to focus on now. Of the three, this core value has not been as emphasized in my career—yet—I think it is equal to the others. A good collaborator must be a good communicator. Communication is the way that one expresses their ideas to others. Without practiced communication skills, one's craftsmanship and character aren’t doing much good. You may have a category for how to grow in the craft of programming (or design, marketing, operations, etc.), but what about your craft of communicating? Growing in this craft will amplify your abilities in all spheres of your life—not just your job.

Why is writing so good for you?

In an article by Justin Bariso titled, “Your success will be determined by 3 things. Here’s how to get better at each” he quotes MIT professor Patrick Winston, whose burden for his students was that “no one should go through life without the ability to properly communicate” and that that would be like “sending a soldier to battle without a weapon.” The three things are:

  1. The ability to speak.

  2. The ability to write.

  3. The quality of your ideas.

I am going to focus on the second of these now, and I would also argue that by practicing writing, one will actually improve one's ability to speak and the quality of their ideas at the same time.

You may be thinking, “Why would writing be important for software engineers?” If you are like me, you probably don’t associate the skill of writing with programming. In fact, having a lesser interest in humanities-related skills may have been what pushed you towards engineering in the first place. So why would you need to practice writing?

Justin Bariso writes in his article:

Jason Fried, the founder and CEO at Basecamp, says that they make all hiring decisions–from programmers and designers to marketers and receptionists–based on the applicant’s writing ability. Why? Because clear writing indicates clear thinking. The written word has special power. It can be done at one’s own pace. It can be continually refined and improved. It influences and motivates. And as more and more work gravitates to remote, it becomes even more important to be able to communicate via writing in a concise, easy-to-understand manner.

Why would Basecamp think so highly of a potential hire's writing ability?

Because clear writing means clear thinking.

The simple act of taking to pen and paper forces one to detangle the mind and produce a cohesive thought. It reveals new angles and lines of thinking. It boosts creativity.

Why programmers should practice writing

Here are some reasons that writing is important for you, fellow developer.

You will write every day: Discussing technical implementations through chat apps like Slack, writing Bug Reports, writing comments in your code, writing technical documentation, writing reviews of other developers, writing company best practices, answering questions from less technical employees or clients, creating design documents for complex work during planning times, and much more.

Jon Leydens, Professor of Engineering Education Research at CSM, said:

“In their first few years on the job, engineers spend roughly 30% of their workday writing, while engineers in middle management write for 50% to 70% of their day; those in senior management reportedly spend over 70% and as much as 95% of their day writing.”

Something that constitutes this much of your day-to-day ought to be something that you take special care to excel in.

Craftsmanship: Writing forces you to fill gaps in your understanding. It will help you gain mastery over the material you are studying and improve your ability to verbally communicate the concepts to others.

It will help you to write better code. The skills you gain from improving your writing skills will translate into the code you write. A clear thinker will write clear code.

It's a learning tool: An article by Judy Willis called, "The Brain-Based Benefits of Writing for Math and Science Learning" concludes with this:

The neural activity or mental manipulation that transforms formulas, procedures, graphs, and statistical analyses into words represents the brain's recognition of patterns. When this is also done in writing, the facts, procedures, and observations are processed symbolically in the writing process -- giving the memory another storage modality and truly illuminating the patterns for the brain to follow as it adds new learning to existing concept networks.

The ability to explain complex topics will set you apart: In an article titled “The Importance of Writing For Software Developers,” Ben McCormick says, “Once somebody hits a minimum threshold of technical skill to hold a job in the industry, about 80% of their ability to succeed in Software Development is determined by their communication and people skills, not their technical abilities.” Being competent at building software isn't enough. Great communication skills will be necessary to effectively lead a team and collaborate with the customer. Mastering your words will set you apart.

Not just a skill for C-levels and marketers

In my experience, as a junior software developer, the benefits of writing are not obvious. More emphasis is placed on getting to a code solution and improving the techniques used. Not much is placed on how to communicate the underlying ideas with excellence. Growing in that ability felt haphazard and tangential. I would encourage the low to mid-level developers to consider this and prioritize communication skills along with technical skills. I think the level 2-3 period of time is great to begin to practice more precise and comprehensive communication. At this point, you have been exposed to enough knowledge to begin applying your own critical thought and opinions.

This skill isn't just for CEOs and marketers. You need this skill too! It is one of the most important things you can practice now that will impact your career and life exponentially going forward.

Some Tips

If you are like me, and you truncated (or completely bypassed) the collegiate path, you may need to indulge in other avenues to get up to speed.

Like anything, practice is key to growing as a writer. You just can't expect meaningful growth if you aren't taking intentional, disciplined steps. What does practice look like?

Reading Books

I think this is probably the most beneficial thing you can do to improve your writing ability. Pay attention to the sentence structure and vocabulary use of authors you enjoy. Read books that push your reading comprehension. Soak it in.

Journaling

Journaling is a perfect, low-stakes avenue to grow as a writer. You needn't spend too much time trying to get the grammar perfect or ensure the flow of paragraphs is flawless. Just write what comes naturally to you and express what is going on in your head as naturally as you can. If you don't already make a practice of this, you should try it. It will probably help you in more ways than you realize.

Transcribe

Find quotes or essays that contain language that inspires you and transcribe it several times. Forcing your hands to produce the same characters in the same order will help you abandon your trodden path of sentence structures, vocabulary, and punctuation.

Technical Explanation

Look back at recent tasks you have completed, find something interesting and try to explain the technical accomplishment as clearly as possible, such that a developer following behind you could speedily understand the context and solution. If there is a portion of your application that is particularly nuanced or confusing, produce some well-thought-out READMEs, making an effort to articulate effectively and simply. If you are writing a commit message, use enough words to supply a sufficient context and explanation of what was done.

Blogs and essays

If you want to take things to the next level, try blogging or writing essays. These mediums demand more time and effort. You will read your work over and over again, move sentences from here to there to make the flow of thought more cohesive, change out words and phrases for better ones, and maybe even get editorial input and feedback before calling it complete.

Conclusion

Words are tools. Punctuation is a tool. Sentences are tools. These tools all help you to become more effective in your job and in your life. The more control you have over these tools, the more influence and reach you will have.

Martin Luther said, “If you want to change the world, pick up your pen and write.

Treat these tools like your code editor or programming language. Dull them by constant use, and then sharpen them by embracing new innovations and plugins. Recognize the role they play in your productivity and catalyze their usefulness. Read the documentation to learn about new APIs. Observe how the more experienced people around you wield these tools and imitate them.

Remember the advice of Professor Patrick Winston: "Don’t go into battle without your weapon."

References