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.

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
Becoming a web engineer is not easy, but there are tons of resources out there to help you on your journey. But where do you go from there? What do you do to keep growing, and to keep expanding the value you bring to your company? In this talk we’ll look at the different kinds of impact you can have as a web engineer. We’ll walk through what it means to take on bigger, more complex projects, and how to scale yourself, and grow the community around you. By driving our own development we can all grow our impact, and in this talk, we’ll discuss how to go about this.
Full Stack Documentation
JSNation 2022JSNation 2022
28 min
Full Stack Documentation
Top Content
Interactive web-based tutorials have become a staple of front end frameworks, and it's easy to see why — developers love being able to try out new tools without the hassle of installing packages or cloning repos.But in the age of full stack meta-frameworks like Next, Remix and SvelteKit, these tutorials only go so far. In this talk, we'll look at how we on the Svelte team are using cutting edge web technology to rethink how we teach each other the tools of our trade.
On Becoming a Tech Lead
TechLead Conference 2023TechLead Conference 2023
25 min
On Becoming a Tech Lead
Top Content
Tech lead sounds like a lot of work. And not the fun coding kind either. Why would you ever want that? What does it feel like when you get it?In this talk Swizec explains why he took the step towards technical leadership, how his priorities changed, and why it means he’s doing more engineering than ever. A whole new world where writing code is the easy part.
Effective Communication for Engineers
TechLead Conference 2023TechLead Conference 2023
36 min
Effective Communication for Engineers
Top Content
Your communication skills affect your career prospects, the value you bring to your company, and the likelihood of your promotion. This session helps you communicate better in a variety of professional situations, including meetings, email messages, pitches, and presentations.
Imposter Syndrome-Driven Development
TechLead Conference 2023TechLead Conference 2023
31 min
Imposter Syndrome-Driven Development
“Maybe I’m fooling everyone… I’m not good enough for this, and at this point, it is a question of time until everyone figures it out” these might be the words that cross your mind as your coworker compliments you for doing another fantastic job at delivering a new feature. As you grow in your career, so does your uncertainty. You put in the extra hours, learn all the new technologies, and join all the initiatives you can, but at the end of the day, it never feels enough. At this point, that feeling is leading your actions and decisions. It is the thing that is driving your career. Only one question persists: Are you really an imposter?
Gateway to React: The React.dev Story
React Summit US 2023React Summit US 2023
32 min
Gateway to React: The React.dev Story
A behind the scenes look at the design and development of the all-new React docs at react.dev. The new react.dev launched this year introducing new methodologies like challenges and interactive sandboxes and subtle inclusivity features, like "international tone" and culturally agnostic examples. Not only have the new docs changed how people learn React, they've inspired how we think about developer education as a community. In this talk, you will learn how the React team and some ambitious community members made the "React docs rock" for a generation of front end developers and how these new patterns and established techniques can be applied in your favorite projects.

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 Conference 2021React Advanced Conference 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