How writing makes me a better software engineer
There are several ways that my career has benefited from writing regularly and concisely. I've learned to put my most meaningful thoughts into words and become a more effective and persuasive communicator. Moreover, I embraced writing subject matter that's dry and highly technical but managed to push through engaging content. Software engineering relies on the written word more than we think, but anyone that catches the writing bug can contribute significantly.
Software engineering and writing are disciplines that seem at odds with each other. As a programmer that has worked on several contract projects, I've realized how demanding and technical software engineering can be. On the other hand, I've always enjoyed writing and regularly put my thoughts into words at any given opportunity.
While writing does seem like a more creative and fluid process than coding, this doesn't mean that it's easy. It's crucial to know when and where to use specific words and phrases and get to the point with as few words as possible.
Now, why is that so important? Firstly, English is the language of international communication - and secondly, it's the language of business. Thus, brevity and a fluent communicative style are required, even for software engineers.
Learning by writing
Over time, numerous writing opportunities have presented themselves in my software engineering endeavors. These include writing best practice guidelines, code reviews, debugging guides, postmortems, and project proposals. In some cases, it was even necessary to write documentation on Git.
The entire process requires plenty of research, writing drafts, revising, and editing before reaching the stage of a polished document. This process has helped sharpen my coding and writing skills, as I've improved my mental clarity and learned to focus more.
Communicating with stakeholders will set you apart
Most of my fellow team members and peers will read my writing. But sometimes, it's necessary to write for non-technical staff and other stakeholders. For example, senior management, marketers, and investors don't have all the background and have little interest in what programming language we use to develop an app.
But they may want to know what pain points our app is trying to address, how marketable it is, and its financial feasibility. Communicating clearly to those without an insider's view of the software development process is a rare and valuable skill.
Good documentation saves time
We all know how important it is to write clean, concise, and maintainable code. And not only should this code be easily readable by the engineer, but also fellow team members and future maintainers of the code. Furthermore, it may require additional documentation, such as inline comments and wiki pages. These should be easily digestible by everyone working on the project to save time.
On a recent virtual reality (VR) project, we had to rewrite the underlying 3D rendering engine. The team that worked on the rendering engine before us provided documentation that lacked clarity and completeness. Therefore, we had to fill the blanks ourselves as we pieced together the new renderer. While we managed to do this successfully, this wasted valuable time that we could've spent on the VR app instead of the renderer.