Documentation Working Group Notes
Documentation Working Group
Hydra Connect 2
Friday, 10/3/2014
The Unconference
10:45-12:15
Introductions
Joseph Rhoads (Brown):
Digital Repository Manager: part manager, part developer
At Brown, they primarily program in Python/Django
Thinks it hasn’t always been easy to figure out where to go to find information about using Hydra, more information would lower the barrier to entry
Patrick Etienne (Georgia Tech) - Facilitator
Digital Library Developer
digging into Hydra can be a bit overwhelming
curious about what the strategy behind the documentation is, and if there is one
wants to know what are people thinking as far as solutions for documentation
Mark Sellan (Washington University in St. Louis)
Manager, Systems Administration and Networking
thinks there are some really good Hydra docs out there, but you get stuck when you can’t find something
once upon a time he was a technical writer; is happy to help improve the documentation but not sure where to dig in - wants to find out who is the core group for documentation in Hydra
Steven Ng (Temple University)
Digital Library Applications Developer
while digging into Hydra, discovered that the documentation was sometimes out of sync with where the development was
would like to help contribute, but wants to know what the process is and how the documentation can stay up to date
Shannon Davis (Washington University in St. Louis)
Digital Projects Librarian
wants to discuss how can librarians help create documentation, which is one of their strong skills and could be a great way for those not on the development side to make important contributions to Hydra
Andrew Rouner (Washington University in St. Louis)
Digital Library Director
a question involved in knowing where to start in Hydra is knowing where to find feature lists, solution bundles, and core Hydra projects - should the locations of those items live in the documentation somewhere? maybe there should be a spectrum of documentation - from code documentation to other kinds of information that might be suited for for people who are considering Hydra - both types of documentation are needed
Wendy Hagenmaier (Georgia Tech) - Note Taker
Digital Collections Archivist
Like Shannon, interested in finding out about how those who aren’t on the development side could contribute to the Hydra Project through documentation (archivists are obsessed with documentation)
also interested in how documentation can help non-developers dig into the development side more, so they can “dive into Hydra,” develop a common language with developers, and help support the community
Discussion
It can be good for non-developers to write documentation or test it to ensure that it is clear
Lack of documentation can be a barrier to entry
When documentation is out of sync with code, it can make things very difficult
We need documentation to know what the core projects are and where and what the features are
Sometimes the people who end up writing the most documentation are the people who are new to the project - documenting things is a learning aid, it helps you figure out what’s going on - this seems to be a trend in Hydra but also in other open source library projects - and then, once those beginners get up to speed, they end up working on something new or not working on documentation at all
Maybe people who are new to Hydra could be more directly involved in documentation, and there could be a clearer path for participating in documentation
It seems like it’s important to make sure people understand that the wiki is there to be edited - to not feel like it’s a read-only, intimidating interface (how can we communicate that virtually, through the documentation itself?)
It seems crucial to capture the pain points (areas/steps where things are confusing and there is no documentation or there isn’t enough documentation to help) involved in working with Hydra, so that even if you can’t fix them or troubleshoot them, they are documented - so others can help address the pain points or so you can troubleshoot them later - maybe we could add pain points to the Issues in GitHub and label them “documentation” - if it’s something that’s solved, you could write that it’s solved and provide the location of the answer/where the improved documentation lives
Question: What is the documentation? Where does it live?
Wiki
GitHub (various places)
Google Groups
Question: What is the relationship between the wiki and GitHub?
The wiki sort of lives separately from the code - is that what we want?
Documentation often happens after the fact (after code is written, after an event happens), and if the documentation is not co-developed, it’s not as useful - it’s best to develop documentation along with the code and to create documentation in a similar way to the the way code is developed - check in and check out system - documentation should be ticketed
In the Python world, they use readthedocs - readthedocs.org - links the code with the documentation - is there an equivalent tool for Ruby - maybe rubydoc.info ?
As a new person exploring Hydra, it can be difficult to get the lay of the land (for example, what is a “hydra head”?) - the high level information about Hydra could be clarified too - it seems like there is a need to find a way to reconcile the way the project is described with how the code is described (this comes back to the “solution bundle” vs. “repository development framework” question/ambivalence that seems to exist within Project Hydra and which was discussed during the opening panel session)
Documentation written in Markdown could live in the codebase - a Jekyll instance could be automated from the code repository, so documentation could start living next to code - could be searchable and editable via tools like prose.io - this could lower the barrier to entry
It’s good to have documentation live where you would expect to find it. For example, something like:
higher level, non-technical documentation could live on the wiki
technical documentation for each Hydra project could live with the code
and code should be written in a way that is self-documenting, as well
Could GitHub Issues for Hydra projects be flagged (flags in themselves are a form of documentation) to identify fairly straightforward problems that need to be solved? - these flags could offer good starting points for those who are new to Hydra and want to learn by fixing small things
Maybe we should canvass the community to find out what documentation is needed - perhaps via a survey - and organize the community feedback? Maybe non-developers could review the documentation?
Question: How is the Hydra wiki arranged? What is the method to the madness?
One thing that would be useful to have on the wiki is a page that lists the tools people use in working with Hydra (such as JIRA) and the workflows for using those tools
could include information about Markdown, editors
How divided should development and management documentation be? How distinct will the roles currently involved in most Hydra projects be in the future? What are future Hydra roles and how do they affect the way we should design documentation?
We’re sort of talking about documentation-driven development - sort of like use case-driven development - related to test or behavior-driven development
User stories seem to be key as shared documentation for both managers and developers
it seems important to document your strategy at a high level and then breaking that down into user stories using Gherkin and Cucumber - so that you have layers of documentation
Are user stories available to the community? Where is the user story work being done?
If they’re created in Cucumber, they will be found in GitHub; there is a product called Gitnesse (runs as a gem to publish Cucumber to a wiki)
But that’s only if you’re using Cucumber - why do or don’t people use Cucumber? People often use it when they’re working with end-users and stakeholders
If there were Cucumber/Gherkin documentation published for each of the Hydra gems, would that be useful?* - would provide a consistent source of documentation to feed to wiki or a centralized location
Need to document the features available in Hydra and how they fit into the different gems
Question: What are the documentation requirements for official Hydra gems, and are they sufficient for the needs of the Hydra community?
Implications for documentation in terms of the long term vision for Hydra:
gemification of different Hydra projects - as Hydra projects become more granular, you’re really going to have to define the features and functionalities
Hydra wants more people to get more involved, to just jump in - you don’t have to ask (this applies to both code and documentation)
Question: What is the licensing situation for documentation?
Fixing documentation should be easy - documentation can always be rolled back to a previous version if there were ever a licensing problem
There may be a place for documentation in a wiki but maybe more documentation should exist with the code?
but coders sometimes get so busy that documentation falls by the wayside, so that the only documentation is in the code (self-documenting code)
Maybe the wiki is the narrative that glues everything together?
If the documentation is being peer-reviewed, perhaps anyone could write it as long as the stakeholder is involved to confirm that the document reflects what they wanted to create
Question: Who is responsible for the documentation - the developers or the managers? How can managers be empowered to do the documentation?
Maybe the idea of readme-driven development would be useful: http://tom.preston-werner.com/2010/08/23/readme-driven-development.html
Need for better connection between low-level coding documentation and high-level purpose documentation and a definition of the mission of each documentation level (and their respective locations)
Notre Dame’s agile process uses Gherkin - could we ask them to offer their model as an example for improving documentation?
Perhaps another role in the development process is the documentation point person for a sprint? - so that the spec of Gherkin-level documentation is up to speed and the Hydra wiki is updated as necessary
having someone like that may be more feasible for multi-institution collaborations or regional communities, not for small teams
could pull in non-coders for this role? how do you empower non-developers to document code?
Possible next step: Maybe we could do a survey to identify pain points and points of confusion or gaps in the existing Hydra documentation?
we could add the identified pain points as Issues into GitHub with label “documentation”
Possible next step: write suggested best practices (for local documentation and community documentation)
Need for documentation for those who are new to the Hydra community, such as a list of tools you should have in place when you start
Maybe the questions we’re discussing about documentation come down to:
Where? (where is the documentation and where should it be?)
Who?
Writers (who writes the documentation and who should write it?)
Metadata guidelines (written by non-technical people)
Readers (who reads the documentation and who should read it?/Who is the audience for each of the documentation pieces?)
Developers should read metadata guidelines
Audiences for the documentation:
Library executives/administrators - high level
Those with non-technical or managerial responsibilities
Those with technical or development responsibilities
Stakeholders
Those who are new to Hydra
Those who are very dedicated and invested in Hydra (the long-term community members)
What?
What are the minimum things that you need to provide to describe your project? - minimal viable documentation
Way to gather and publicize Hydra news (RSS?, newsletter?)
Possible next step: Write a feature matrix for Hydra (which projects have which features)
Action Items
Survey
Do a survey to identify pain points and points of confusion or gaps in the existing Hydra documentation
we could add the identified pain points as Issues into GitHub with label “documentation”
It seems crucial to capture the pain points (areas/steps where things are confusing and there is no documentation or there isn’t enough documentation to help) involved in working with Hydra, so that even if you can’t fix them or troubleshoot them, they are documented - so others can help address the pain points or so you can troubleshoot them later - maybe we could add pain points to the Issues in GitHub and label them “documentation” - if it’s something that’s solved, you could write that it’s solved and provide the location of the answer/where the improved documentation lives
Documentation definitions
define the purpose and scope of the existing Hydra documentation venues and methods
Wiki
develop a feature and project matrix (which projects have which features)
maybe wiki should be for data that is fairly permanent or changes rarely and could link out to GitHub code and GitHub pages (the documentation that would change often)?
GitHub
Determine workflows and best practices for documentation on the code (GitHub) side of Hydra
Explore defining suggested best practices for documentation, possibly including rubydocs, Cucumber, Gherkin, GitHub and GitHub Pages , etc.
Google Groups
next steps?
Documentation reviewers
assemble a group of volunteer reviewers to analyze and edit documentation
call for volunteers soon and organize the team after that
Get this group on the wiki
Create a Documentation Working Group area on the wiki (document the documentation, yo)
Schedule an open phone meeting in a month
schedule through a Doodle poll, invite all Hydra community members (including Hydra-Tech and Hydra-Community)