Upgrade to Pro — share decks privately, control downloads, hide ads and more …

THHG to Painless Docs

THHG to Painless Docs

topics: arc42, AsciiDoc, AsciiDoctor, docToolchain and Docs-as-Code

Avatar for Ralf D. Müller

Ralf D. Müller

June 27, 2017
Tweet

More Decks by Ralf D. Müller

Other Decks in Technology

Transcript

  1. Ralf D. Müller By Day Solution Architect @Deutschen Bank Digital

    Factory In my spare time Geek: ▪ Web-Technologies ▪ Quality (Security, Testautomation) ▪ Produktivity (Gradle, Groovy, Grails…) Arc42 committer and docToolchain maintainer
  2. What you can expect ▪ pragmatic Architectur Documentation ▪ Tips‘n‘Tricks

    for arc42 und docs-like-code ▪ Experimental Features :-) ▪ Best Practice NSB (No Silver Bullet)
  3. VENOM as Example Projekt ▪ VEry NOrMal System ▪ Documentation

    grown over time ▪ different Stakeholders ▪ due to various updated, always changing ▪ high maintenance overhead
  4. May I introduce you? Geoff – Solution Architect ▪Solution Architect

    for VENOM ▪solid technical background Tasks (amongst other): ▪ Manage the Evolution of the System ▪ Documentation + Communication of the Architecture
  5. Documentation format •MS Word: established standard •arc42 available in many

    formats: • docx • asciidoc • markdown • latex • html • textile • confluence
  6. arc42 Formats ▪ AsciiDoc is the most flexible (IMHO) ▪

    can be transformed to all other formats with (nearly) no loss of quality -> allways a fallback plan (but you will not need it!)
  7. build.gradle demo.adoc console output = A first Headline And a

    first paragraph. It continuous on the next headline Second paragraph. == Second-Level Headline A link to http://asciidoctor.org/docs[Asciidoctor.org] Demo – first use of AsciiDoc
  8. build.gradle demo.adoc console output PS C:\Users\Demo\jax2017\demo1> gradle asciidoc :asciidoctor io/console

    not supported; tty will not be manipulated BUILD SUCCESSFUL Total time: 4.554 secs PS C:\Users\Demo\jax2017\demo1> Demo – first use of AsciiDoc
  9. build.gradle demo.adoc console output Demo – first use of AsciiDoc

    http://asciidoctor.org/docs/render-documents/
  10. AsciiDoc Rendering Tools ▪ easiest to use: Gradle und asciidoctorj

    ▪Maven more complex to use but with good support ▪Gradle is more flexible in regards to further build steps
  11. Out-of-the-Box: docs-as-code • „distraction free“ write Docs like code or

    an email • modular • reference Images – don‘t embedd them • integration of Source-Code • Reviews, Pull-Requests, Versionierung with Git • convert to HTML5, DocBook etc.
  12. .adoc .adoc …but the journey is only about to begin…

    ▪ Geoff is already quite satified with the results ▪ but he has to transform his old docs... .docx .adoc .html
  13. treat Docs-as-Code ▪ Geoff recognizes that the transformation to AsciiDoc

    was only the first step ▪ next he will use the Docs-as-Code approach to further reduce the maintenance overhead
  14. Diagrams ▪ Geoff is annoyed by the maintenance overhead for

    his diagrams • Doesn‘t AsciiDoc support PlantUML?
  15. Diagrams: PlantUML .Benutzer und Benutzergruppen von VENOM [plantuml] ---- !pragma

    graphviz_dot jdot :Private User: as private :User Groups: as groups :Corporate Users: as corporate :Government Users: as gov :Regulation &\nStandard Bodies: as bodies :Operations: as ops :internal Users: as internal (VENOM\ni.B.O.S.S) as venom private -right-> venom groups --> venom corporate --> venom gov -up-> venom bodies -up-> venom ops --> venom internal -left-> venom ----
  16. Diagrams als Plain-Text: PlantUML • http://plantuml.com/ • http://asciidoctor.org/docs/asciidoctor-diagram/ Not all

    types of diagrams are easy to handle with PlantUML. But sequenzdiagrams are a great fit!
  17. Diagrams ▪Don‘t know how to model you diagrams? => C4

    by Simon Brown is a good start! http://www.codingthearchitecture.com/2014/08 /24/c4_model_poster.html
  18. Diagrams: don‘t draw – modell! ▪ Geoff uses a UML-modelling

    tool ▪ hard to keep images up to date ▪ notes taken within UML-Modell are lost
  19. treat Docs-as-Code IV: automate Betreiber und Administratoren von VENOM Flexibilität

    hinsichtlich Betriebsumgebung, Betriebssystem. Möglichst wenig Aufwand bei technischer Administration und Inbetriebnahmen. Technisches Monitoring.
  20. treat Docs-as-Code IV: automate {adoc:stakeholder} | Operations | Betreiber und

    Administratoren von VENOM | Flexibilität hinsichtlich Betriebsumgebung, Betriebssystem. Möglichst wenig Aufwand bei technischer Administration und Inbetriebnahmen. Technisches Monitoring.
  21. === Stakeholder ==== Benutzer und Benutzergruppen [[figure-users]] image::ea/1.5_Stakeholder.png[title="Benutzer und Benutzergruppen

    von VENOM"] [cols="2,3,3,2" options="header"] .Benutzer und Benutzergruppen |=== | Rolle | Beschreibung | Ziel | Bemerkungen include::../../ea/stakeholder.ad[] |=== treat Docs-as-Code IV: automate
  22. Stakeholders ▪Geoff notices soon that not everybody likes the docs

    as HTML ▪He needs to create different formats and document structures for different stakeholders
  23. Confluence ▪ …but all other docs are in Confluence! ▪

    Confluence stores pages as xhtml… ▪ …and provides a REST-API! ▪ et voilá…
  24. Broken Links ▪ ...often a problem with referenced files and

    hyperlinks ▪ Solution: automated Tests!
  25. Automated Testing of created Docs ▪ Broken Cross References (aka

    Broken Internal Links) ▪ Missing Images Files ▪ Multiple Definitions of Bookmarks or ID’s ▪ Missing Local Resources ▪ Missing Alt-tags in Images https://github.com/aim42/htmlSanityCheck
  26. Bonus: Export PPT ▪ Speaker Notes contain AsciiDoc ▪ Slides

    and AsciiDoc are exported through a script
  27. Thanx for your attention! Ralf D. Müller @RalfDMüller https://rdmueller.github.io @docToolchain

    Gernot Starke @GernotStarke http://arc42.org/ @arc42Tipps Clipart: presentermedia.com, licenced to [email protected]