Technical Documentation - How Can I Write Them Better and Why Should I Care?

Rate this content
Bookmark

Gathering pieces of information for a task or a project is a wasteful act and could result in duplicated work done by different people.

Onboarding, your ability to maintain code or infrastructure and systems handover - Documentation plays a crucial part in all these processes.

So... how can we write technical docs in an easy way & why should we even do it?


In this talk, I’ll show you a structured way to write technical docs, without being a technical writer - So you will deliver highly valuable information to your audience, to your best ability.

I’ll explain why should you care about these docs, how do they serve your best interests (Yes, there’s more than one!) and what a wide impact it could make on employees and even on your entire organization.

This talk has been presented at React Advanced 2023, check out the latest edition of this React Conference.

Watch video on a separate page

FAQ

Technical documentation is crucial because it shares knowledge, helps solve incidents quickly, reduces work volume by answering repetitive questions, enables self-service, and prevents being a single point of failure. It also helps in clearly communicating and defending project decisions, ensuring continuity and clarity in projects.

Technical documentation can include system logical designs, on-call runbooks, code readmes, onboarding documents, project learning docs, and even structured slack pin messages. Each serves to explain, guide, and facilitate understanding and independence in technical contexts.

Creating technical documentation reduces workload by providing answers to frequently asked questions or solutions to common problems, which decreases the number of direct inquiries and support requests you receive, allowing for more focused work on other tasks.

The 'Docs as Code' approach treats documentation like source code. Documents are maintained in version control systems, undergo peer review, and can be updated with the same tools used for code. This integration simplifies updates and ensures documentation consistency and quality.

Technical documents should be structured with a clear table of contents, meaningful titles and subheadings, and relevant links. Use concise language and organize content from the most used information to the least, ensuring that documents are task-oriented and provide straightforward, actionable guidance.

Best practices for technical documentation include knowing your audience to tailor content appropriately, documenting immediately while information is fresh, using simple language, and incorporating feedback loops for continuous improvement. Also, integrate documentation into your development process to keep it up-to-date.

Feedback is essential because it helps identify areas where the documentation may not be clear or comprehensive enough. It allows the author to adjust the content to better meet the needs of its users, ensuring the documentation is both useful and usable.

Technical documentation enhances visibility of an engineer's contributions, demonstrates their ability to work as part of a team, and shows their commitment to knowledge sharing. These qualities are valuable for career advancement and establishing oneself as a reliable and skilled team member.

Hila Fish
Hila Fish
27 min
23 Oct, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
This talk emphasizes the importance of writing technical documentation and provides tips for improving it. Technical documents help explain intentions, reasoning, and choices, reducing work volume and aiding troubleshooting. Writing technical documents is important for visibility, career progression, and communication with managers. Integrating documentation into the development tool chain and treating it like tests ensures its quality and keeps it up to date. Structuring technical documentation effectively and providing concise and clear information are key for boosting its usefulness.

1. Introduction to Technical Documentation

Short description:

Hi everyone, this talk is about how to write better technical documentation and why it's important. I'm Hila Fish, a senior DevOps engineer at Wix with 15 years of experience. I believe in communities and I'm involved in the AWS Community Builders Program and the HashiCorp Ambassador title. Let's share knowledge through technical documentation. If you can't automate it, document it. Technical documents can include system design, runbooks, code readmes, and onboarding docs.

Hi everyone, thank you so much for joining my talk about technical documentation. And this talk will be about how can I write technical documentation better and why should I care? I of course also mean you. But first of all, hi, my name is Hila Fish, I'm a senior DevOps engineer and I work with Wix. I have 15 years of experience in tech industry. I'm a firm believer of communities and that's why I'm part of the AWS Community Builders Program and I also talk about Terraform quite a lot, so that's why I got the HashiCorp Ambassador title. I'm a co-organizer of conferences in Israel where I live, DevOps Days Tel Aviv is the biggest one of them. I'm a mentor in courses and communities, DevOps Culture Friend. I think this is what helps companies achieve great things. And on my spare time, I'm a lead singer in a cover band, as you can see in this picture, which is a lot of fun. So I think, and I really believe, that anyone can and should write technical documents, because in the... let's give you, of course, a lot of examples later on. But one example that pops to mind is the fact that in the middle of the night, if I have a critical incident that I need to take care of, and it's in uncharted territory, something that I'm not familiar with because it's something that, let's say, my team member was dealing with the most. I have this critical incident. I don't know what to do. I don't even know where to start. If I have a runbook that helps me fix the issue, or at least tells me you need to check this and this, I'm content. So I don't really care. And if I have this runbook, I don't even care that the English is fabulous or a broken English. I really don't care. As long as I have a runbook that helps me debug or fix the issue, this is all I care about. So the most important thing here is to share the knowledge, and this is why we should all write technical documentation. So I always like to say that if you can't automate it, document it. And a lot of things that we can do and share in our day-to-day can be considered as technical documents. So the first main thing which is straightforward is system logical design or a brief, but also on-call runbooks, as I just mentioned. Great technical documents that helps us solve incidents much more quickly. Code readmes. We need to explain spaghetti code or anything that relates to code, then a code readme is a good place to start. Onboarding docs. Why assign a buddy to to help your new team member if you can create onboarding docs and let the new team member onboard themselves and then they can do it themselves. They have this sense of independence, so that's great.

2. Project Learning Documentation

Short description:

We all have projects and need to explain things, document the status, and share knowledge. Slack pin messages can be considered technical documents. It's not enough for code to be self-documented. Understanding the code requires more than just reading it. Technical documents help explain intentions, reasoning, and choices. Writing technical documents reduces work volume and helps others understand and troubleshoot. Let me give you an example. As a DevOps engineer, I dealt with repetitive questions and collected them for reference.

Project learning doc. We all have projects in our day-to-day and we need to explain things and have intentions and reasoning and document the status of the project, right, so for that we have project learning doc as well. And even slack pin messages. This, for me, also considered a technical document. Why? Because if you have knowledge to share, if something is just a blurb but it's something that people will use daily, put it in a slack pin message. It will help everyone. And I'm not saying that you have to practice all of these scenarios, but at least if you share the knowledge in one or more of them, then I'm sure that you'll be in a much better place than if you haven't shared any knowledge in any of these platforms.

So this is the part where I really like to engage with the audience and ask this question. You are far away in your computer but I will ask you and you need to be honest with yourself. Have you heard or said this sentence before? My code is self-documented. A lot of people told me, and, you know, don't lie to me, you either heard or said this sentence before, I'm completely sure of it. People said just read the code and understand what it's about. Or the code tells the story. No, it's not the case. It never is the case. You need to understand things that are beyond to just code. For example, if the code is spaghetti code then good luck with understanding the code. But anything else like why did we choose this or that or any intentions, reasoning behind writing the code as is, we need documentation that will help us achieve that. So let's really understand why write technical documents.

First of all, to reduce your work volume. And when I say reduce your work volume, you can maybe ask me, wait reduce. But if I sit down, and spend two hours writing technical documents, it's not reducing. I'm overburdening my work volume, right. So let me give you an example to explain. So me as a DevOps engineer, I deal with a lot of people. I help a lot of people, developers, QE engineers, all sorts of people. And in my previous job, they came to me and asked repetitive questions. Not all of them knew how to use Kubernetes fluently. So they said, hey, how do I troubleshoot a bug in Kubernetes? Or what is this error? And stuff like that. So basically, I collected all repetitive questions.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Impact: Growing as an Engineer
React Summit 2022React Summit 2022
27 min
Impact: Growing as an Engineer
Top Content
This Talk explores the concepts of impact and growth in software engineering. It emphasizes the importance of finding ways to make the impossible possible and the role of mastery in expanding one's sphere of impact. The Talk also highlights the significance of understanding business problems and fostering a culture of collaboration and innovation. Effective communication, accountability, and decision-making are essential skills for engineers, and setting goals and finding sponsors can help drive career growth. Feedback, goal setting, and stepping outside of comfort zones are crucial for personal development and growth. Taking responsibility for one's own growth and finding opportunities for impact are key themes discussed in the Talk.
Full Stack Documentation
JSNation 2022JSNation 2022
28 min
Full Stack Documentation
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.
On Becoming a Tech Lead
TechLead Conference 2023TechLead Conference 2023
25 min
On Becoming a Tech Lead
Top Content
The role of a Tech Lead involves shaping the roadmap, helping the team be more effective, and working on important projects. Lessons learned include encouraging idea sharing, avoiding taking on all the work, and focusing on delegation. Tech Leads focus on the outcome, involve the team in decision-making, and make plans based on how different pieces will interact. The role of a Tech Lead is to focus on engineering and guide the team in figuring out how the whole system should fit together. Architecting can become problematic when it loses touch with the coding part, resulting in implementation issues.
Effective Communication for Engineers
TechLead Conference 2023TechLead Conference 2023
36 min
Effective Communication for Engineers
Top Content
Today's Talk covers the four building blocks of communication: people, message, context, and effective listening. It emphasizes the importance of considering the perspective of others and tailoring messages to the recipient. The Talk discusses different types and channels of communication, and the need to align them with the intended message. It also highlights the significance of soft skills in communication and provides techniques for effective communication and assessing soft skills in tech interviews. Cross-cultural communication and the impact of bluntness are explored as well.
Imposter Syndrome-Driven Development
TechLead Conference 2023TechLead Conference 2023
31 min
Imposter Syndrome-Driven Development
Imposter syndrome is a common experience that can lead to self-doubt and feeling like a fraud. The speaker shares their personal journey with imposter syndrome in school and throughout their career in software development. They discuss the challenges and doubts they faced, as well as the strategies they used to overcome imposter syndrome. The importance of support from managers, celebrating achievements, and sharing experiences to help others are highlighted. The talk emphasizes the need to embrace imposter syndrome and use it as a motivator for personal growth.
Gateway to React: The React.dev Story
React Summit US 2023React Summit US 2023
32 min
Gateway to React: The React.dev Story
Watch video: Gateway to React: The React.dev Story
The Talk discusses the journey of improving React and React Native documentation, including the addition of interactive code sandboxes and visual content. The focus was on creating a more accessible and engaging learning experience for developers. The Talk also emphasizes the importance of building a human API through well-designed documentation. It provides tips for building effective documentation sites and highlights the benefits of contributing to open source projects. The potential impact of AI on React development is mentioned, with the recognition that human engineers are still essential.

Workshops on related topic

How To Design A Sustainable Freelance/Contracting Career
Node Congress 2022Node Congress 2022
39 min
How To Design A Sustainable Freelance/Contracting Career
WorkshopFree
Shane Ketterman
Alexander Weekes
2 authors
Ready to kickstart your freelance career or just getting started on your freelance journey? You’re in the right spot. Learn the tricks of the trade from the industry’s most experienced freelancers.
The independent talent movement is the future of work. If you’re considering leaving full-time employment for a career as a freelancer, now is the time to find your successful space in the independent talent workforce. More people are working freelance today than ever before, with the freelance marketplace now contributing $1.2 trillion to the US economy. Some of the most in-demand roles for freelancers right now are senior developers with professional experience in React, Python, Blockchain, QA, and Node.js.
This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing/contracting career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
Designing A Sustainable Freelance Career
React Advanced 2021React Advanced 2021
145 min
Designing A Sustainable Freelance Career
WorkshopFree
Alexander Weekes
Rodrigo Donini
2 authors
Would you like to pursue your passions and have more control over your career? Would you like schedule and location flexibility and project variety? Would you like the stability of working full-time and getting paid consistently? Thousands of companies have embraced remote work and realize that they have access to a global talent pool. This is advantageous for anyone who has considered or is currently considering freelance work.>> Submit your interest on becoming a freelance engineer with Toptal and get a call with Talent Acquisition specialist <<

Freelancing is no longer an unstable career choice.

This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
Table of contents

Module 1: Dispelling common myths about freelancing
Module 2: What does freelancing look like in 2021 and beyond
Module 3: Freelancing choices and what to look for (and what to avoid)
Module 4: Benefits of freelancing from a freelancer + case study
BREAK
Module 6: How to get started freelancing (experience, resume, preparation)
Module 7: Common paths to full-time freelancing
Module 8: Essentials: setting your rate and getting work
Module 9: Next steps: networking with peers, upskilling, changing the world
Module 10: Freelancer AMA