I didn’t like writing documentation when I was a Junior Engineer. I thought my job was just coding and creating more features. However, as I progressed to a more senior role in the team, I realized I didn't have as much time to code. There were numerous other responsibilities, including communication with other teams/stakeholders, reviewing code/design documents, addressing questions, attending meetings, and planning.
I started contemplating how to better utilize my time on the team. I recognized that software engineering involves not just coding but also other skills like communication, documentation, innovation, etc. From that, I discovered that writing is a powerful skill to facilitate communication and optimize time.
The importance of writing can be summarized in the following points:
Scaling Yourself: Creating effective documentation not only helps in avoiding repeated questions but also saves valuable time. It captures thought processes, architecture, decisions, and ideas, acting as a reference for both yourself and others. Even when you are on vacation, colleagues do not need to disturb you; they can find answers in the documentation. This, in turn, enables you to better allocate your time and contribute more to other important tasks. Writing is the most scalable way to influence others, as people will read your content and might be inspired by it.
Saving People’s Time: Comprehensive documentation reduces back-and-forth communication and enhances information retrieval efficiency. Serving as a knowledge base, it allows people to efficiently search for keywords and locate content. This documentation proves invaluable for onboarding new team members, troubleshooting issues, and understanding the project's evolution over time. Additionally, good writing skills contribute to summarizing rich content in a concise manner, saving people's time and keeping everyone aligned, especially in a chat context.
Conveying Ideas and Creating Consensus: Effective communication is crucial in any collaborative environment. For abstract and complicated ideas, writing provides a structured way to convey the idea to other stakeholders, whether in a design document, proposal, or project progress report. Clear documentation makes it easier for everyone to understand intentions and create consensus, especially in decision-making processes, as it explains the rationale behind a choice or direction.
This makes me feel writing is actually a part of software engineering. Software Engineer or Writer? Writing is a subset of Software Engineering, so software engineers should acquire better writing skills. The way you summarize or structure the content helps facilitate communication between different stakeholders and makes people work more efficiently.
What else do you think writing can help in your software engineer career?