Author Archives: Sarah Maddox
If you can insert the words “by zombies” into a sentence, then that sentence very likely uses the passive voice. A colleague recently reminded me of this tip. It made me laugh, and so I thought it’s worth blogging about. If only to share the chuckle.
Here are some examples of zombie-infested sentences, and their equivalents using active voice.
Geographic requests are indicated by zombies through use of the
coordinatesparameter, indicating the specific locations passed by zombies as latitude/longitude values.
Converting passive voice to active:
You can use the
coordinatesparameter to indicate geographic requests, passing the specific locations as latitude/longitude values.
For an even more concise effect, use the imperative:
coordinatesparameter to indicate geographic requests, passing the specific locations as latitude/longitude values.
Latitude and longitude coordinate strings are defined by zombies as numerals within a comma-separated text string. For example, “40.714,-73.998” is a valid value.
Converting passive to active imperative:
Define latitude and longitude coordinates as numerals within a comma-separated text string. For example, “40.714,-73.998” is a valid value.
Why eliminate the zombie vulnerability?
Active voice is more concise than passive voice. It’s usually easier to understand.
To me, the most important point is that active voice makes it clear who’s responsible for what. Putting zombies aside, if you use the passive voice your readers may think that the nebulous “system” may do the thing you’re talking about.
Who does what, in this example?
The API can return results restricted to a specific type. The restriction is specified using the
Answer: The developer has to specify the types in the
types filter. I don’t think that’s clear, though, when reading the text. Often the context makes it clear, but not always. Zombies lurk in the shadows, ready to grab the unsuspecting reader.
The distinction between active voice and imperative mood
In the above examples I’ve pointed out the difference between active voice and imperative mood. In technical writing, both are good. The imperative mood is particularly concise and clear, but in some cases it can come across as too abrupt.
Should we ever invite zombies in?
I think there are times when passive voice is OK, or even a good thing. Sometimes a sentence sounds artificial if you attempt to inject a subject. Sometimes the passive wording is a well known phrase that readers will accept and understand more easily than the equivalent active phrasing. For example, what do you think of this wording?
These community-supported client libraries are open-sourced under the Apache 2.0 License and are available for download and contributions on GitHub. The libraries are not covered by the standard support agreement.
I’m thinking “documentation” is a misnomer for Stack Overflow’s new feature. “Samples” would better convey the feature’s purpose and form. A topic is basically a code sample (or a few code samples) with metadata (title, tag) and comments.
Calling it “documentation” led me to expect more of it. I looked for such things as navigation aides, a way to order topics in logical sequence rather than by date/popularity, and more control over the hierarchy of concepts.
I love the idea of sample-driven documentation, but I don’t think the Stack Overflow platform offers it yet.
For background, see my earlier posts: What does Stack Overflow’s new documentation feature mean for tech writing? and Information architecture of Stack Overflow’s documentation feature.
A couple of days ago I pondered on the effect Stack Overflow’s new documentation feature may have on technical writing. Now I’ve taken a closer look at what goes into a topic and how topics are organised.
At first I found Stack Overflow’s documentation feature a little confusing, both as a reader of the docs and as a potential contributor. I thought the organisation wasn’t “intuitive”, by some definition of intuitive. A deep dive has helped me understand the structure offered by Stack Overflow as a documentation platform. It’s less complex than I’d expected. That’s probably why I couldn’t grok it at first!
TL;DR: Topics are grouped under a tag, such as “CSS” or “Java Language”. A tag represents something that needs documenting. The subject of the tag can be as big or as small as you like – or rather, as big or as small as the community likes. Topics are linked together by the tag and by hyperlinks.
What does a topic look like?
When you create a topic, Stack Overflow offers you an outline to fill in. A topic has the following parts:
- Topic title
- Examples – that is, code samples
- Syntax – a place to call out the most important bits of the code, particularly signatures
- Parameters – that is, method parameters
- Remarks – anything that doesn’t fit into the above sections
Here’s a screenshot showing the first few parts of a new topic, titled “Find directions”, in edit mode. There’s some useful contextual help for the topic author.
I like the fact that code comes first, given that the products being documented are developer products such as APIs and SDKs. On Stack Overflow, the audience consists of developers. A good code sample gives developers context and is often all the developer needs to be able to use the product.
On the other hand, it’s interesting that the “remarks” section is right at the end of the topic, and that it’s called “remarks” rather than something a little more weighty or alluring. Even the ubiquitous “more information” would convey… well, more information about what this section is intended to contain.
Code samples are great, but developers often do need other types of information: conceptual content such as an introduction, typical use cases, overviews, best practices, and more.
How do people tie topics together?
How do readers get a complete view of the entirety of a particular subject on the Stack Overflow documentation platform? Actually, taking a step back, I find myself wondering what that “entirety” might be. It’s up to the community to define the size of the things that are documented, and how those things fit in with other things, big or small.
Documentation is attached to tags on Stack Overflow. These are the same tags as are used for the original Q&A part of Stack Overflow. The tag is the primary mechanism for organising topics. For example, the classic Stack Overflow has a “CSS” tag with tagged questions, and now with tagged documentation topics too.
For each tag, you can see the set of available topics on the “all topics” tab, like this list of topics for the CSS tag:
As a reader, you can order the topics by popularity or by date last modified.
There’s an overview topic for each tag, which in this case is titled “Adding CSS to a Document“:
Each tag also has a dashboard, which shows requests from the community and changes that need reviewing. If you’re a contributor, you can use the dashboard to manage your own activity. Here’s the dashboard for the CSS tag:
As you can see on the dashboard, people can suggest new topics and contribute to existing topics. There are currently 41 topics tagged “CSS”, and 4 requests for new topics. People can also mark a topic as needing improvement.
Getting around the documentation
So, in summary, topics are linked by tags. You can also cross-link within topics, using hyperlinks as is standard in web-based documentation.
The only table of contents is the list of topics on the “all topics” tab for each tag. There’s no other type of navigation, such as a curated left-hand navigation or top-level menu.
As David Vogel remarked, this could lead to interesting new information architecture models. I think there’s room here for Stack Overflow to adapt the new platform in response to the way people are using it. Larry Kunz commented that technical writers can keep an eye on this development to learn more about SEO and findability.
What the community thinks of the documentation feature
There’s plenty of discussion, much of it heart-felt, about exactly what documentation should be, and hence what Stack Overflow as a doc platform should look like. Here are a couple of examples:
- Sumurai8 discussed the structure of the documentation model: Documentation is not a library, tags are not books
- Nicol Bolas suggests A better Documentation model: Task, not Topic
If Stack Overflow has the resources to put into it, they’ll be able to adjust the new documentation platform to suit the needs of the community. As technical writers, we’ll be able to watch and learn. Exciting times.
Stack Overflow has recently announced the public beta release of its new documentation feature. That is, Stack Overflow now provides a platform for crowd-sourced documentation relating to any number of products, for the people, by the people.
For those of us managing the docs for widely-used products in particular, this means our customers may soon have access to an alternative, crowd-sourced documentation set.
What an awesome experiment for us as technical writers to follow! We’ll be able to see at first hand what our customers know they need, in terms of information about our products. Because this is Stack Overflow, the documented products are likely to be APIs, SDKs, and other developer-focused tools and technologies.
What if the documentation on Stack Overflow turns out to be voluminous and extremely useful – where would that leave us as technical writers working on proprietary doc sets? I think it will give us the opportunity to streamline our content, focusing even more than we do now on ensuring our information is up to date, and that our information architecture is the best we can make it.
In other words, we can ensure our target audiences can find what they need, even when they don’t know yet what that is.
Technical writing is hard. Information architecture is hard. The Q&A side of Stack Overflow works extremely well, because it focuses on short snippets of content that answer a particular question. It’s going to be very interesting indeed to see how well the new documentation feature works, with the more narrative demands of technical documentation.
An issue I foresee is that people will be tempted to kick off a topic, and then tire half way through and end up providing a link to the official documentation. Is that a bad thing? Tech writing know-how says our readers find it disconcerting to have to click around to find their information. It’s OK in a Q&A format, but not so good in a tutorial or step-by-step guide.
I really like Stack Overflow’s focus on sample-driven documentation!
I’d love to hear your thoughts on this development. Where do you think it’ll go within the next few months, and how about within the next two years? Will it fizzle into nothingness, or explode into something huge and beautiful? Will the original Q&A form of Stack Overflow merge into the new documentation form, becoming something new?
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.