everyone wants someone else to do it
play

Everyone wants (someone else) to do it Writing documentation for - PowerPoint PPT Presentation

Everyone wants (someone else) to do it Writing documentation for open source software Welcome Mike Pumphrey Projects Community Advocate OpenGeo Suite mike@boundlessgeo.com OpenGeo Training github.com/bmmpxf GeoServer Open Source


  1. Everyone wants (someone else) to do it Writing documentation for open source software

  2. Welcome Mike Pumphrey Projects Community Advocate OpenGeo Suite mike@boundlessgeo.com OpenGeo Training github.com/bmmpxf GeoServer Open Source Geospatial Foundation GeoServer Committer Boundless Boundless provides geospatial tools and services for managing data and building applications. 2

  3. Welcome Jody Garnett Open Source Projects Community Lead GeoTools jgarnett@boundlessgeo.com GeoServer @jodygarnett uDig Eclipse Foundation LocationTech Project Steering Committee LocationTech Technology Project Open Source Geospatial Foundation OSGeo Incubation Chair Boundless GeoTools Project O ffi cer Boundless provides geospatial tools and services for managing data and building applications. 3

  4. Getting Started 4

  5. What we are up against here • If you spent $30,000 on a software package – you might spend a week figuring out how it works • If you spend $0 on an open source project how much time are you going to spend? – 5 mins? – 10 mins? – 15 mins? 5

  6. Documentation Priorities • Installation – Ensure potential users can install your software • Quick start – And see their own data 6

  7. Installation • Get the software installed • Show each step – this is used as a sanity check to tell if everything is going okay • Do not get distracted by explaining options – don't waste time – your software is being evaluated 7

  8. Installation Video? • Great! – very friendly – shows the software working ... providing hope! • Caution: – It can be hard to find a video that matches the version of the software you are using – Scrubbing a video back and forth to catch a key installation step is frustrating • Recommend – video for promotion showing individual features – documentation for installation 8

  9. Quickstart! • Show, do not tell – Focus on the key "value add" for your software • Think "internet" attention spans here – Don't distract with background stories – Get something on screen 
 and then explain why it is amazing 9

  10. Stack Exchange? • Stack exchange is a Q&A site that is popular with geoserver and geotools users • It is more an alternative to the user email list than the documentation – Questions that get asked repeatedly... 
 may point out a hole in the documentation? – Stack Exchange is good at staying current 
 ... but you may be using an old version? 10

  11. Writing Tips and Tricks 11

  12. EASY • Please do not use the word EASY – The only that can happen here is to make people FEEL FRUSTRATED when they have trouble • They probably are having trouble because – you wrote this sentence three years ago before windows 8 confused the start menu? – Or last month before the start menu came back? 12

  13. SIMPLE or SIMPLY • Please do not use the word "simple" – The only thing that can happen is to make people FEEL STUPID when they do not understand what you are talking about • A piece of software on its own is complex – When combined with other software ... more complex – When on a future operating system ... more complex 13

  14. Easy - sanity check? 14

  15. Simple - sanity check 15

  16. Setting Expectations • Focus on getting any content – Do not let PERFECT be the enemy of GOOD – do not let GOOD be the benefit of NOTHING • Do not worry about things like grammer 16

  17. Curation 17

  18. Example: GeoExt Styler 18

  19. Example: GeoFence GUI 19

  20. Example: Complex Features 20

  21. How did this happen? • Easy to forget about: – documentation – quality assurance • Project has been going a long time – Developers can 'hope' to get back to something – Without a champion features get dropped • Features produced under contract – Great social pressure to include features in next release (so team can get paid) – But risk team moving on to other work 
 (and assuming a "volunteer" will get to it) 21

  22. What did not work • Let the community deal with it - wiki! • GeoTools: – Gave up on wiki, – found that jody had written 90% of the wiki – Code examples especially were out of date causing more confusion then help • GeoServer: • OpenGeo migrated to a fresh set of docs as part of OpenGeo Suite product initiative 22

  23. What has Worked • Boundless policy – a feature is "not DONE until it is documented" ! • Mike – Ask developer to write the low-level, 
 and the Mike translates for the world – Interview the developer and translate the result • Jody – Included the cost upfront in GeoTools proposal 
 ( i.e. process “tasks” section ) – write the docs for features that would 
 otherwise not be merged in 23

  24. Policy Change • Supported "Extensions" now require – documentation and QA test coverage • Change control requests now require: – Documentation and QA to be included up front! • Success? – Our docs now do a much better job of documenting new features – Consultants now know what is required up front! 
 (and communicate to customers?) – This is a barrier to "casual" drive by GitHub commits 24

  25. GeoServer Documentation Story • Documentation was originally html! • Moved from HTML to wiki – Outreach attempt to community! – Gradually became out of date • Moved from wiki to codebase • Mike volunteer as “editor” – Set expectations 25

  26. GeoTools Documentation Story • Started in "docbook" – XML format of doom! • Moved to CodeHaus "wiki" – Wiki's needed an editor to be successful – After 10 years editor had written 90% of the docs – vandalism because we cannot have nice things • Moved to codebase – Harder for community volunteers than wiki – But now versioned alongside releases! – Initial port in "pandoc", then six months to clean up the mess 26

  27. RST and Sphinx Migrating from WIKI to CodeBase 27

  28. Sphinx • Install Python • easy_instal sphinx • make html make html mkdir -p build/html build/doctrees sphinx-build -b html -d build/doctrees source build/html Running Sphinx v1.2.2 loading pickled environment... not yet created building [html]: targets for 438 source files that are out of date updating environment: 438 added, 0 changed, 0 removed reading sources... [100%] webadmin/tilecache/layers ... Build finished. The HTML pages are in build/html. 28

  29. RST • Use "Rich Structured Text" wiki syntax Background ========== Welcome! From all of the GeoServer users and developers, we are happy to see that you have an interest in contributing to the GeoServer documentation. Whether it's the fix of a typo or a whole new collection of pages, all contributions are appreciated. With your help we can make GeoServer documentation helpful and robust, and thus make GeoServer a better product. Writing Documentation --------------------- GeoServer documentation written in `reStructuredText <http:// docutils.sourceforge.net/rst.html>`_ , a lightweight markup syntax, and built into HTML and PDF content using `Sphinx <http://sphinx.pocoo.org>`_ , a documentation framework written by the developers of Python. In this way, the documentation could be merged with the source code of GeoServer ... 29

  30. In-line Code Examples • This is the "killer feature" for GeoTools Quickstart Application ---------------------- Now that your environment is setup we can put together a simple Quickstart. This example will display a shapefile on screen. #. Create the package org.geotools.tutorial.quickstart using your IDE. #. Create the org.geotools.tutorial.quickstart.Quickstart class using your IDE. .. image:: images/class.jpg :scale: 60 #. Fill in the following code: .. literalinclude:: /../src/main/java/org/geotools/tutorial/quickstart/ Quickstart.java :language: java 30

  31. Quickfix Edit directly in GitHub 31

  32. Step 1 • Browse the documentation source code directly on the GitHub website: – https://github.com/geoserver/geoserver/tree/master/ doc/en – https://github.com/geoserver/geoserver/tree/master/ doc/es – https://github.com/geoserver/geoserver/tree/master/ doc/fr 32

  33. Step 2 • Navigate to the file you wish to change and click the edit icon 33

  34. Step 3 • Use the editor to modify the file 34

  35. Step 4 • Scroll to the bottom of the page, provide a commit comment and submit. • GitHub will: – Create a fork and submit a pull request on your behalf; or – Immediately make the change for those with commit access 35

  36. Style Guide GeoServer Style Guide 36

  37. Why a Style Guide? • Help community present a "consistent voice" when writing documentation • Additional benefits: – Can help an editor be fair and consistent – Provide a link to page of good/bad examples when reviewing a pull request 37

  38. Be concise • Documentation should be concise 
 (and not just a brain dump.) • Reference material – Short pages and be easy to refer to – No scrolling through large volumes of text) • Tutorials can be longer, depending on scope • Want to share your thoughts and insights? – Write a blog post (or twitter for small thoughts) • Documentation is a manual, not a wiki. 38

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend