Author Archives: Sarah Maddox
If you’re a tech writer on a fairly typical large documentation suite, your docs probably contain some inaccuracies caused by error, misunderstanding, missing information, or pages going out of date. If you’re lucky, like me, you may have an eager group of developers, engineers, support team members, product managers, and more, who’d love to help fix those bugs. Enter the doc bug fixit, or doc fixit for short.
Over recent months I’ve run a number of doc fixits. It’s been a lot of fun, we’ve fixed some good bugs, and we’ve learned a lot. These tips may be useful to people considering running a fixit themselves.
A doc fixit is an event where technical writers work with engineers and other team members to update the documentation. It’s a type of doc sprint, but one where the aim is to apply small to medium-sized updates rather than add new features. The updates may fix errors in the docs or add missing bits.
Friendly Purple Ant, by Schade,
Why run a doc fixit?
These are some of the good things that tech writers experience from running a doc fixit:
- Fix bugs and improve the docs.
- Foster feelings of ownership of, pride in and responsibility for the docs amongst the engineers and other team members.
- Share your tech writing and information architecture knowledge with others, and see how appreciative they are of your skills.
- Educate people about the process of updating the docs, so they can do it themselves when they discover a small error in future. The process includes sending the doc to the tech writers for review and approval.
- Meet people in the engineering and product teams.
- Help the engineers see first hand how their code comments end up in the public-facing documentation (that is, the code comments that are formatted for Javadoc or some other doc generation tool, and thus appear in the generated reference docs).
How long should the fixit be?
A fixit can last anything from a few hours to a few days. I’ve found two days to be a good time period. It’s rare for each participant to be able to spend more than half a day on the sprint, and people are often called away unexpectedly to do their “day job”. A period of two days gives everyone a chance to help out, and ensures you get a good number of fixes done.
In particular if you’re working with teams in different time zones, the sprint should extend over at least two days so that people in far-flung offices get the best opportunity to work together on updates.
Things to consider before running a doc fixit
Some strategy never goes amiss:
- Consider whether your doc set will benefit from a fixit. Ideally, it should have a reasonably large number of bugs, and a fair number of engineers and other team members who can participate.
- Contact the tech leads and managers to explain the purpose of the fixit. Make sure they’re happy for members of their team to participate, and ask them to promote the fixit within their team.
- Select the participants based on their product knowledge. If people have already shown an interest in the docs, they’re an excellent choice. Send them personal invitations.
How can you encourage people to take part in the doc fixit?
Motivate the participants:
- Set a goal, such as the number of bugs to close.
- Suggest that people examine the docs and raise bugs beforehand, so they can fix them in the fixit. That’s a good way for them to get to know the docs, and a good way to put themselves in line for a prize.
- If possible, be present yourself at the location where most of the participants will be. It’s amazing and rewarding to see how engineers appreciate having a tech writer on tap.🙂
- Make it competitive. For example, “that other team’s fixit closed 42 bugs – let’s beat that!”
- Provide food: pizzas, muffins, whatever your budget allows.
- Award prizes. It’s great to have a number of categories, such as the first bug fixed, the most bugs fixed, the most complex bug fixed, and so on. The prizes can be small – it’s the thought that counts. And the fun.
- Make sure people feel that the fixit is a well-organised event that will give them good material to add to their resumés.
Create one or more hot lists
Create “hot lists” of bugs that you want fixed. A hot list is a selection of items, in this case bug reports, with a characteristic in common.
For example, you could create the following hot lists:
- Quick, easy fixes.
- Complex bugs.
- Bugs that require specific technical knowledge.
- And so on.
Make sure the bugs in the hot lists are suitable for a fixit. For example:
- Ideally, the fix should be immediately relevant, and not dependent on a software release. That means people can submit the change and experience the immediate satisfaction of seeing it published during the sprint.
- The fix should not require too much tech writer input. So, structural doc changes, for example, are not suitable for a fixit.
- Take advantage of the fact that your subject matter experts are suddenly uniquely interested in the documentation. Choose tasks that require intimate knowledge of the product – where you’d have to consult your subject matter experts before you could make the update: corner cases, unexpected behaviour, and so on. In a fixit, it’s often your subject matter experts taking part!
- Prioritise small bugs that you’re not finding the time to tackle. An accumulation of small bugs can be as bad as a single huge one, for negatively affecting customer experience.
Supply a fixit guide
Keep it short and simple. Just one page is enough. Include:
- The goal of the fixit.
- Date and time.
- Location of the kickoff meeting.
- Links to the hot lists.
- A guide on how to update the docs.
- How to send the updates for review and approval.
- Your contact details.
Hold a fixit kickoff meeting
Put it on everyone’s calendars. Entice people with food.
Say just a few words, telling people about:
- The goal of the fixit.
- How to participate.
- A link to your fixit guide.
- How to find you and other tech writers during the sprint.
Run the sprint
Keep ’em at it:
- Issue daily progress reports: tell people the total number of bugs closed so far, the top runners for each prize, any other news items.
- Keep the food coming.
- Review the incoming doc updates promptly.
Wrap it up nicely
Remember, you’ll probably want to run another fixit. Wrap this one up well, so that you can refer to it in future.
Write a report and share it with everyone involved. Describe:
- Results (number of bugs closed).
- Participants and prize winners.
- Interesting factoids, such as something unexpected that happened, or the first product manager to fix a doc bug ever, …
Thank everyone involved, and don’t forget to hand out the prizes.
This week I attended Write the Docs NA 2016, which wrapped up a couple of hours ago. This post is a summary of impressions, with links to my notes on some of the sessions I attended.
One thing that strikes me about Write the Docs is that I’ve spent much of my time talking to people. This is partly because half of each day is devoted to unconference sessions as well as formal presentations. In the unconference sessions there’s a facilitator rather than a speaker, so everyone can contribute to the discussion. Another reason I’ve done so much talking to people is that there are so many interesting, friendly, enthusiastic people to talk to.
There were approximately 400 attendees. They’re people who love documentation – that is, people who know its value. Based on a show of hands at the introductory session, approximately 60% of the attendees are technical writers and about 15% are software developers. Others are UX specialists, support engineers, librarians, knowledge management specialists and more.
Another thing that strikes me is that the pre-conference activity was a half-day hike through the forested hills around Portland. Now, that’s my kind of activity.
These are the notes I took from some of the sessions I attended:
- Interactive document environments
- A readable README file
- API documentation tools
- Values of effective tech writing teams
- Internal docs for startups
- From tech writing to information experience team
For recordings of most of the talks, take a look at the Write the Docs 2016 YouTube channel. Here’s State of the Docs by Eric Holscher:
Doc sprints and API doc meetup
On the first day of Write the Docs, we gathered at Centrl Office to write docs and talk about API documentation. It was great chatting to so many enthusiastic, knowledgable writers. People got together and contributed to open source documentation with Mozilla, Google, and more. We filled three rooms to the brim. This photo shows the scene early in the day, before most people had arrived.
Days two and three were at the Crystal Ballroom. What a lovely venue! Here’s the view from the stage looking out across the conference attendees.
A closer view of the murals:
More about Portland
My travelling bookmark, Mark Wordsworm, has some pictures and words about the city: Lost in Portland, Oregon.
A huge thank you to the organisers of Write the Docs NA 2016. This is my first experience of a Write the Docs conference. I’ve wanted to attend for a couple of years, but it’s a long way from Sydney, Australia, to any of the conference venues. This year, everything came together and here I am. It was a great experience, and well worth the trip. Thanks!
This week I’m attending Write the Docs NA 2016. The final talk of the conference was by Daniel Stevens, titled “Atlassian: My Information Experience Adventure”. These are my notes from the session. All credit goes to Daniel, and any mistakes are mine.
Summarising the theme of Daniel‘s session:
The process of creating and growing a writing culture which is technically accurate, writes with a human voice, and connects to every other part of the information experience.
Moving from QA to design
Dan talked about the Atlassian tech writing team’s transition from the QA team to the design team, and how this changed everything they knew about technical writing. Shortly after Daniel joined Atlassian, the team started a conversation about tech writing – what it meant to them, what makes it work.
They built a culture where information is considered an essential part of the experience. Daniel emphasises that they’ve only just started, and there’s still a lot to do. The team has expanded to include researchers, developers and designers, sharing skills and learning from each other.
There have been some frustrations. Change is hard. Adopting new ways of thinking is difficult. It can be hard to stay focused on writing great docs, especially now that the tech writers are part of the design team. And it’s become more complex to define the “team”.
The goal is that everyone tells the same story and thus delivers an amazing information experience. The information should come at the right time, in the right place.
Overcoming resistance to change
Dan gave some ideas about how to manage change. The key is to stage the changes, so that people can adjust. Constantly remind people of the value of what you’re doing. Enhance the strengths of every team member, so that they don’t feel that they can’t do what’s being asked of them. Encourage everyone to participate.
And give them all cake!
Making Confluence behave
Design helped the team rethink the way they were doing things. They re-designed the layout of Confluence wiki pages used for documentation, with more white space, better structure. The team uses the Scroll Viewport plugin to implement the design changes. They work with plugin developers, finding and adapting tools to make Confluence do what they need. And the team works with the developers to add new features to the wiki.
What IX (information experience) means to Dan
It’s about a new way of thinking about the information experience. Gather information so you know ahead of time what you need in the docs. Use analytics to gather data and understand what the users are using and how they’re getting from one part of the docs to another.
Work with a content strategist to define the brief – the elements that make great documentation. Use this brief to set direction. Dan also emphasised that we’re all content strategists.
Measure the results of any change – make everything measurable.
Work like designers: card sorting, sparring. Dan described how they hold a live meeting with teams across the world, using Confluence. Then they spar: everyone mentioning one thing they like, one they don’t like, and sparring with each other.
Connect stories: linking from tutorials to blog posts, and back, so that when customers see any information about any product of Atlassian’s, they feel at home. To achieve this, you need to work with every other team: marketing teams, various IX teams, product teams, design teams, engineering teams.
The Atlassian IX team wants to influence “all the things”.
They’ve created an IX toolkit which everyone can use. It includes design guides, content guides, voice and tone, all shared with the entire company. The IX team has contributed to the ADG (the Atlassian Design Guidelines). This year, IX was part of Atlassian’s internal design confluence, and gave one third of the presentations.
Dan’s enthusiasm shone through in this talk. Thanks Dan!
This week I’m attending Write the Docs NA 2016. I’ve just attended a fast-paced, exciting session: “Code the Docs: Interactive Document Environments”, by Tim Nugent & Paris Buttfield-Addison. These are my notes from the session. All kudos goes to Tim and Paris, and any mistakes are mine.
Tim and Paris warned us up front that they speak Australian. Suddenly I feel right at home.🙂 They also write books, are academics, train people in coding, and do other stuff. They’ve noticed that we need better linking between the documentation and the code. Otherwise things break too quickly.
What is an interactive document environment?
Interactive document environments put live code and documentation side by side. You can write content and embed code that runs within the doc.
In the Apple environment, before Tim and Paris started using Swift Playgrounds, they noticed that people got lost. People were switching between docs, code, notes, and couldn’t keep up. So Paris and Tim investigated the tools and made up the term, interactive document environment.
The code, the person’s own notes, and the official documentation all in one place.
- Live code
- Pretty formatting
- You can add notes
- You can add media such as gifs, videos, etc
- It’s real code that you can play with
Swift is Apple’s new language. Paris and Tim think Swift is the bee’s knees. Swift Playgrounds is a core part of Swift. It’s an interactive coding environment, designed for prototyping, learning and experimenting.
To use Playgrounds, download Xcode from the Apple Store.
Playgrounds currently supports basic HTML and Markdown for content development.
Tim and Paris gave a demo of Swift Playgrounds. It was impressive to see how you can embed code and see it execute right on the page.
Swift supports emoji, so of course the demo included emoji.🙂 You can also add pagination, with a “Next” link at the end of the page. The code is running all the time, and you see the output on a panel next to the page.
We also saw Apple’s example, called Newton’s Cradle and UIKit Dynamics, which runs in Xcode. (Apple’s announcement blog post has a screenshot and a link to the downloadable demo as a zip file.) The code is live, so you can change it and play with it.
IPython Notebooks, now Project Jupyter
Project Jupyter is an interactive Python coding environment.
It’s used by O’Reilly Media for project Oriole, a learning environment that blends executable code, data, text, and video.
Tim and Paris showed us Regex Golf with Peter Norvig. (Sign in, scroll down the page, and run the code. Change the code and run it again. It’s worth it.)
To try creating content in this environment yourself, download Jupyter Notebook. (The process is a little tricky.)
Strengths and weaknesses
- The code and the docs are together, and the code is live. It’s easy to keep them in sync.
- You can mix in your own notes. Paris and Tim say it was a real surprise to see how useful people found it, to be able to add their own notes on the docs.
- People don’t have to context switch.
- These environments are new and thus prone to crashing.
- They support only Markdown and HTML for content development.
- Limited support for languages and frameworks.
- No hooks into existing doc tools.
- Only really relevant for narrative docs.
Paris and Tim predict that these environments will become more stable and will support more languages and projects. These environments will replace books and articles. There’ll be better support for non-narrative docs. It’s a natural evolution of API guidelines where you give the developers a cURL command to try the API, and even those more advanced docs that supply a button to run the code live.
This week I’m attending Write the Docs NA 2016. I’m at a session titled “Move Fast And Document Things: Hard-Won Lessons in Building Documentation Culture in Startups”, by Ruthie Bendor.
Ruthie Bendor‘s session was about strategies for writing internal docs at fast-moving organisations. Ruthie is one of the brave engineers who attended a conference full of tech writers!
Internal tech docs are things like README files and wiki pages, containing instructions for setting up engineering environments, and so on. They’re what we write for our colleagues to enable us to build upon our work. Even our future selves will find this documentation useful.
When you work at a technical startup, saying “that’s not my job” doesn’t work.
Ruthie told us a few stories of how she’d experienced internal docs as a software engineer. A telling example was when Ruthie worked at an agency. In that organisation, most of the programs Ruthie wrote weren’t meant for production – they were demos for customers, to be thrown away after they’d met their purpose. In this case, there was no need to write much documentation. This is in contrast to working on production code and procedures, where docs help the company progress.
Another story was about Ruthie’s first few days at a startup, where there was no internal documentation to help her get started with all the tools and processes. She stumbled through the first tasks of getting code committed, repeatedly having to bother other people when she messed up the code base.
Based on her experiences, Ruthie suggests four steps to writing internal documentation for a fast-moving organisation.
- Figure out what’s broken. Don’t guess. Find out what the rest of the organisation thinks is broken, rather than going on your own assumptions. You’re probably wrong! Find out whether the team values tech documentation, and if not, why not. Possible reasons why engineers may not value docs are the belief that internal docs get outdated too quickly, or that all engineers have the same technical background.
- Figure out why your organisation cares about fixing its internal technical docs. You may think the docs will make the software last as long as possible, or will help onboard new staff. But these points don’t apply to fast-moving startups. Startups are focused on making the product. Ruthie learned that the people in her organisation value learning from each other. This is why they care about internal docs. What you document and how you document is an expression of your company culture.
- Couch your solutions in the organisation’s values. Ruthie says this is hacking in the best sense: how to get the results you want with the tools you have, and not necessarily in the traditional way. Think about videos, weekly show and tells, etc.
- Iterate. At every inflection point of the organisation, reevaluate the values, rinse, repeat.
Incidental learning from this session: The “bus factor” is the number of people who can be unexpectedly lost by a project before the project collapses. It’s the number of people who can be hit by a bus without the organisation going out of business.
Thanks Ruthie! This was a fun and informative session.