Minimising manual work using living documentation

By Jonathan Mezach

Elevator Pitch

Living documentation is great, but what if we could get even more value out of it by extracting the relationship between the individual features we write from code? That way we can get a better understanding of our system from a functional point of view, without us having to do any additional work!

Description

As teams adopt specification by example they build up their living documentation. This is nice because now they no longer have to worry about the documentation being consistent with the actual implementation. But even a simple system might contain multiple features and we can’t see how those features relate to each other yet. Features might use one another, either intentionally or accidentally, and it would be helpful to be able to see these relationships. They are of course expressed in code, but this isn’t very discoverable and isn’t necessarily easy either.

With the open source living documentation system Augurk we set out to fix this problem. By performing a static code analysis using Roslyn we attempt to find these relationships automatically and then visualise them in various ways. In this talk we’ll show you what Augurk does, how we discover dependencies with Roslyn and how you can get started using this in your own projects.

Notes

I will be co-presenting this session with my colleague Mark Taling with whom I work together on the open source project Augurk.