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

How to make a better FM

How to make a better FM

Continuous documentation - using mkdocs, PlantUML, NPlant, salt & msbuild

Awesome Incremented

October 09, 2015
Tweet

More Decks by Awesome Incremented

Other Decks in Technology

Transcript

  1. Agenda •Traditional documentation •Alternative approaches •Demo: docs as part of

    the build • Architectural documentation • UI sketches •Conclusions & Perspectives
  2. Traditional documentation Docs feedback ultra-slow, if any •Written as very

    last step • if it fails, no time for a 2nd shot •“Documentation Drift” • code changes lot faster • docs maintained out of band
  3. Alternative approaches “Build-Measure-Learn” again • introduce a feedback loop (make

    it short) → put docs close to code (git) → make docs part of build process → How?
  4. Introducing MkDocs Why Markdown? •simple plain-text → easy to integrate

    (git, build, …) •decouples styling → easy to write & view •lots of tooling around...
  5. Avoiding Drift UML is ... • usually one-way • suspect

    to BDUF and technical drift Solution: introduce feedback loop. Again. → “Yes, this is a pattern!”
  6. Avoiding Drift: NPlant NPlant: code-based fluent DSL for diagrams •

    generates UML notation • wraps PlantUML to generate images → “Notice the irony?” build integration: compile & test
  7. UI Prototyping with Salt Salt: PlantUML subproject @startuml salt {

    Just plain text [This is my button] () Unchecked radio (X) Checked radio [] Unchecked box [X] Checked box "Enter text here " ^This is a droplist^ } @enduml
  8. Demo Time Generating docs & diagrams as part of your

    build • git clone https://github.com/mkoertgen/hello.NPlant.git • build.bat /t:Docs /v:m
  9. Summary •Traditional documentation evolves too slow •Documentation needs to be

    part of the daily build process •Code generates documentation (and not vice versa) •Markdown, PlantUML & Co. do the work for you
  10. Some references • D.Matthews - MkDocs: Documenting projects with Markdown

    (ep2015) • Architekturdokumentation mit Entwicklerwerkzeugen (jaxenter) • write-the-docs.org, EU 2014 Presentations • GitHub Pages • sphinx-doc.org