Ad-hoc documentation
Create an ad-hoc agile documentation that is searchable and useful.

SRE / DevOps exploring Kubernetes, Docker, Cloud, AWS. Working with software from (A)nalysis to (T)ermination.
Search for a command to run...
Create an ad-hoc agile documentation that is searchable and useful.

SRE / DevOps exploring Kubernetes, Docker, Cloud, AWS. Working with software from (A)nalysis to (T)ermination.
No comments yet. Be the first to comment.
Elasticsearch puts indexes in read-only mode when disk is full. How to prevent that with influx of log events?

Sky is the limit in technology expenses? It depends how mature IT in a company is.

You look at the clouds, but monoliths ahead!

What someone playing (one of) DevOps roles should know, be able to do and what attitude to show.

Originally I published this 3 years ago on Medium, but keeping a copy here too. When you're thinking of shell on any Linux system you probably think Bash (Bourne Again Shell). On Windows too actually, as Git Bash is quite popular (despite it has got...

The promise: With just little bit more effort you can create an ad-hoc documentation that is searchable and useful.
Writing documentation is tedious process, that's why in Agile we don't write documentation, right? Wrong! The truth is as software developers we're typing quite a lot of docs already, be it code comments, git messages, pull request comments, chats, mails, Jira comments, etc. By doing those in a more thoughtful way we can make it useful for our future selves and for our colleagues.
Essentially it comes down to switching to low-context (vs high-context) communication style. Practical tips below.
When you're in the middle of doing something the context is fresh in your mind, so it makes sense to use shortcuts like:
Restarted and it's working.
That's completely valid message. But what it is about, do you know? Will you know in 6 months from now? How about this example:
Deleted the agent pod, so it got restarted and it's responding to HTTP requests again.
Now that makes sense even to you, dear reader, because it includes some context:
Little effort, great effect.
Chats are usually in-the-moment, high-context conversations like:
Al: kubectl not working
Bob: is it in /usr/bin?
Al: yeah
Bob: what is the error?
Al: `permission denied: kubectl`
Bob: is it executable?
Al: dunno
Bob: try `chmod +x /usr/bin/kubectl`
Al: another error
Bob: use the `sudo` Luke!
Al: worked <3
This conversation has the information to fix the problem, but is will you be able to find it in 6 months? Even if you find it how much time you're going to spend on tring to read that all and get the gist? Maybe write a quick summary:
After downloading
kubectlput it in/usr/bindir and make it executable usingchmod +x /usr/bin/kubectl. Both require root privileges (usesudo). Otherwise you'd seepermission deniederror.
Some effort and you're becoming the owner of the solution.
In addition to summary you can also re-phrase some of the points. It servers two purposes:
This effort will show you as a good communicator.
Information is useful only if it can be found. This is what made Google a giant. Similar story with Slack, which is an acronym from Searchable Log of All Communication and Knowledge.
Slack has pretty good search capabilities and a lot of integrations with services. We've got Jira comment being syndicated to Slack automatically. The same can be done with other source of docs like: code review comments, git messages and other temporal texts.
I guess the notes, mails and documents can be copy&pasted to Slack as well. There might be good to have a reference for original document, but having a snapshot copy in Slack might be useful too.
GitHub has got pretty good search across many projects. GitLab can do search only within single project, unfortunately. BitBucket has limited cross-project search capabilities. Any of that can be syndicated to Slack.
Sourcegraph has semantic code search, because it actually understands the code being indexed. It has some powers of IDE for search. The limitation is it can't search code and git at the same time.
Quite obvious, but sometimes forgotten, is to put task number (i.e. Jira identifier) in the git commit, code comment, Slack message, etc. The same way regular tags would work, especially if we have some shared vocabulary of such tags, i.e. #versionBump indicating it's just a version increment.
With little additional effort you can start building institutional knowledge. Such documentation is contextual and temporal, so it made sense at that time and given circumstances. It wont replace permanent documentation (i.e, specifications, reference manuals), but is light and agile addition that is almost free.
Every time when you write a comment stop for a second and think about your future self while writing. You'll thank me later.