The Artima Developer Community
Sponsored Link

Ruby Buzz Forum
Documentation Anti-Patterns

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Assaph Mehr

Posts: 76
Nickname: assaph
Registered: Apr, 2005

Assaph is a Sr Tech Designer, which just means that he draws diagrams by day and programs by night
Documentation Anti-Patterns Posted: May 26, 2005 10:03 PM
Reply to this message Reply

This post originated from an RSS feed registered with Ruby Buzz by Assaph Mehr.
Original Post: Documentation Anti-Patterns
Feed Title: Open Mouth, Insert Foot (Echo Internationally)
Feed URL: http://www.bloglines.com/blog/AssaphMehr/rss
Feed Description: General geekness venting, mostly about Ruby and why Software Engineering != Computer Science, dammit!
Latest Ruby Buzz Posts
Latest Ruby Buzz Posts by Assaph Mehr
Latest Posts From Open Mouth, Insert Foot (Echo Internationally)

Advertisement
What, you think only code has anti-patterns?

Two, unfortunately common, anti-patterns in documentation of systems and standards. I am pretty sure anyone who open a manual for a software system came across the first of these. The second is a bit more subtle, thus a bit more of a headache.

The Copy-Paste AntiPattern

This doesn't refer to documentation writers using copy & paste. This refers to documentation writers documenting the trivial (e.g. copy and paste functionality) while neglecting to document the meaning behind the system. How many time have you decided to bite the bullet and RTFM, only to discover the the F is really descriptive of the M? How many time have you been presented with a dialog containing several fields, and the help page for that dialog contains the most inane documentation on how to click 'OK' to approve your choice, but click 'Cancel' to close the dialog with no changes... but no clue as to what choices you can make and their effect of the system?

Party this is our (developers) fault, for not really providing the tech writers insights into the bigger problem domain and our solution. Partly this is the tech writers fault, as they try to justify their salary.

The obvious answer is to teach the tech writers what the system tries to achieve and why (and not just provide screenshots), and make them understand that our users (barring blond moment) know how to operate a computer.

The less obvious answer is to build applications that do not need to be documented. This doesn't mean just not documenting it. It means that people using it - with perhaps the help of a short screencast - will be able to "get it". Use Conventions - the human brain is wired to recognise patterns; Balance your User Interfaces - clean, simple and fully functional.

The Abstract Example AntiPattern

This one is a bit more tricky to explain. Imagine you read a standard. Imagine this standard contains a complex generalised mechanism to handle a particular problem. Imagine the standard authors were aware that this is a complex generalised mechanism and wanted to provide you with an example to better illustrate what they mean. Now think back of such time and remember how many examples were of the type:

<parameter-def name="raw-X" type="length">

 <raw-data-def user-text="X" mode="automatic" unit="X-unit"/>

</parameter-def>

<parameter-def name="change-of-X" type="X-Unit/Time">

 <change-def>

  <interval>

   <numerical-constant unit="Time" value="1"/>

  </interval>

  <parameter-ref name="raw-X"/>

 </change-def>

</parameter-def>


Now, would it have been too difficult to write the same example as:


<parameter-def name="distance" type="length">

  <raw-data-def user-text="some_distance_in_meters" mode="automatic" unit="m"/>

</parameter-def>

<parameter-def name="length-to-speed" type="meters-per-second">

 <change-def>

  <interval>

   <numerical-constant unit="s" value="1"/>

  </interval>

  <parameter-ref name="distance" />

 </change-def>

</parameter-def>


Huh. So they were talking simply about transforming a distance to speed. Oh! so they whole thing is about transformation of parameters. Well, why didn't you just say so?

So when you do need to provide an example, try to give a concrete real life example of how you use the standard. Do not provide an abstract example to an abstract concept, it doesn't help much only further obscures your aim.

Read: Documentation Anti-Patterns

Topic: My 360&deg; Previous Topic   Next Topic Topic: That's what I'm talking about

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use