Docs for Developers: An Engineer's Field Guide to Technical Writing

Docs for Developers: An Engineer's Field Guide to Technical Writing

Paperback(1st ed.)

$39.99
Choose Expedited Shipping at checkout for delivery by Tuesday, November 2

Overview

Learn to integrate programming with good documentation. This book teaches you the craft of documentation for each step in the software development lifecycle, from understanding your users’ needs to publishing, measuring, and maintaining useful developer documentation.

Well-documented projects save time for both developers on the project and users of the software. Projects without adequate documentation suffer from poor developer productivity, project scalability, user adoption, and accessibility. In short: bad documentation kills projects.

Docs for Developers demystifies the process of creating great developer documentation, following a team of software developers as they work to launch a new product. At each step along the way, you learn through examples, templates, and principles how to create, measure, and maintain documentation—tools you can adapt to the needs of your own organization.


What You'll Learn



• Create friction logs and perform user research to understand your users’ frustrations
• Research, draft, and write different kinds of documentation, including READMEs, API documentation, tutorials, conceptual content, and release notes
• Publish and maintain documentation alongside regular code releases
• Measure the success of the content you create through analytics and user feedback
• Organize larger sets of documentation to help users find the right information at the right time


Who This Book Is For


Ideal for software developers who need to create documentation alongside code, or for technical writers, developer advocates, product managers, and other technical roles that create and contribute to documentation for their products and services.




Related collections and offers

Product Details

ISBN-13: 9781484272169
Publisher: Apress
Publication date: 10/01/2021
Edition description: 1st ed.
Pages: 225
Sales rank: 195,347
Product dimensions: 6.10(w) x 9.25(h) x (d)

About the Author

Jared Bhatti



Jared is a Staff Technical Writer at Alphabet, and the co-founder of Google’s Cloud documentation team. He’s worked for the past 14 years documenting an array of projects at Alphabet, including Kubernetes, App Engine, Adsense, Google’s data centers, and Google’s environmental sustainability efforts. He currently leads technical documentation at Waymo and mentors several junior writers in the industry.

Zachary Sarah Corleissen

Zach began this book as the Lead Technical Writer for the Linux Foundation and ended it as Stripe’s first Staff Technical Writer. Zach served as co-chair for Kubernetes documentation from 2017 until 2021, and has worked on developer docs previously at GitHub, Rackspace, and several startups. They enjoy speaking at conferences and love to mentor writers and speakers of all abilities and backgrounds.

Heidi Waterhouse

Heidi spent a couple decades at Microsoft, Dell Software, and many, many startups learning to communicate with and for developers. She currently works as a principal developer advocate at LaunchDarkly, but was reassured to find that technical communication is universal across all roles.

David Nunez

David heads up the technical writing organization at Stripe, where he founded the internal documentation team and wrote for Increment magazine. Before Stripe, he founded and led the technical writing organization at Uber and held a documentation leadership role at Salesforce. Having led teams that have written about cloud, homegrown infrastructure, self-driving trucks, and economic infrastructure, he’s studied the many ways that technical documentation can shape the user experience. David also acts as an advisor for several startups in the knowledge platform space.

Jen Lambourne

Jen leads the technical writing and knowledge management discipline at Monzo Bank. Before her foray into fintech, she led a community of documentarians across the UK government as Head of Technical Writing at the Government Digital Service (GDS). Having moved from government to finance, she recognizes she’s drawn to creating inclusive and user-centred content in traditionally unfriendly industries. She likes using developer tools to manage docs, demystifying the writing process for engineers, mentoring junior writers, and presenting her adventures in documentation at conferences.



Table of Contents

• Getting Started


• Researching documentation



• Understanding your users


• Cultivating empathy


• Understanding user desires, user needs, and company needs


• Recruiting users for research



• Research methods



• Reading code comments


• Trying it out

Friction logs


• Running diverse and inclusive focus groups and interviews


• User journey mapping



• Identifying and working with stakeholders



• Finding your experts


• Collaborative documentation development



• Learning from existing content



• The value of design documents


• Finding examples in industry



• Designing documentation



• Defining your initial set of content


• Deciding your minimum viable documentation


• Drafting test and acceptance criteria



• Understanding content types


• Concepts, tutorials and reference documentation


• Code comments


• API specifications

READMEs


• Guides


• Release notes


• Drafting documentation



• Setting yourself up for writing success


• Who is this for? Personas, requirements, content types


• Definition of done


• How to iterate


Tools and tips for writing rough drafts



• Understanding your needs


• Choosing your writing tools (handwriting, text-only, productivity/measurement writing tools)


• “Hacks” to get started drafting content



• Mechanics


• Headings


• Paragraphs


• Lists

Notes and warnings


• Conclusions/tests


• Using templates to form drafts



• Purpose of a template


• How to derive a template from existing docs

How to take templates into text



• Gathering initial feedback


• Feedback methods


• Integrating feedback


• Getting feedback from difficult contributors

Editing content for publication



• Determine destination


• Editing tools (Grammarly, linters, etc)


• Declaring good enough



• Recap, strategies, and reassurance

Structuring sets of documentation



• Where content types live


• Concepts, tutorials and reference documentation


• Code comments


• API specifications

READMEs


• Guides


• Release notes



• Designing your information architecture



• Content information architecture styles


• Designing for search


• Creating clear, well-lit paths through content



• User testing and maintenance


• Planning for document automation


• Integrating code samples and visual content



• Integrating code samples


• When and why to use code samples


• Creating concise, usable, maintainable samples


• Standardising your samples



• Using visual content: Screenshots, diagrams, and videos



• When your documentation may need visual content


• Making your visual content accessible


• Integrating screenshots, diagrams


• Videos



• Measuring documentation success


• How documentation succeeds


• Measuring different types of documentation quality



• Structural Quality


• Functional Quality


• Process Quality



• Measuring what you want to change

Drawing conclusions from document metrics


• Working with contributors


• Defining how decisions are made



• Deciding on a governance structure


• Writing an effective Code of Conduct



• Choosing a content licence



• Code licenses


• Content licences


Building and enforcing a style guide


• Editing submitted content and giving feedback


• Setting acceptability criteria


• Editing for accessibility and inclusion


• Editing for internationalization and translation


• Giving actionable feedback


• Planning and running a document sprint


• Maintaining documentation


• Creating a content review processes



• Assigning document owners


• Performing freshness checks on content


Responding to documentation issues



• Separating documentation issues from product issues


• Responding to users



• Automating document maintenance



• Automating API and reference content


• Using doc linters



• Deleting and archiving content


• Wrapping up

Customer Reviews