Ask HN: How do you share/organize knowledge at work and life?

781 points by gavribirnbaum ↗ HN
I find it hard right now to share knowledge with everyone on the team and to turn knowledge into actual learnings.

I don't know how you guys do it, but I would love to know. We are now 50 people in the company and I don't know anymore how to make this scale. What is your process? Do you use any tool for it? How good is it? What needs improving?

303 comments

[ 24.0 ms ] story [ 7562 ms ] thread
To bring some structure I think the tool is less important than having procedures to provide a framework for everything.

I would look at Standard Operating Procedures. They will greatly decrease stress and give structure to every process that’s important to your business, and make it easier to scale, onboard people and allow people to fill in for others.

Also, you iterate on these procedures. As you find improvements you roll them into the process and that way becomes the new way to do something.

If you just keep documenting and improving the improvements will be noticeable quickly.

Sharing knowledge is tough; I don't think there's a silver bullet and everyone wishes they could do it better. Some strategies we use: - Mailing Lists - a collection of mailing lists people can subscribe to if they're interested in a topic. Bonus points if you dedupe messages, as it's kind of annoying to get the same message more than once. We BCC to avoid Reply-to-All discussions/arguments. - Discussion board - discourse... - Q&A - stack exchange like Q&A - Cross-team focus groups - these come in many flavours from "group level" (several teams sharing a common manager) to company wide. Some organise meetups/presentations that are really popular.

I'd encourage "all" of the above in some flavour or another, as people learn and teach differently.

Mailing lists is a trap. As your company grows it implements a data retention policy and poof, there goes all your knowledge when your old emails are auto-deleted.

Only use mailing lists for notification with links to the actual knowledge in a real document.

I think it's best to 1) store the original messages outside your email system and 2) keep discussions to discourse or similar. That way, you have tools designed for the job and independent storage of discussions.
At work, I use Confluence to log and share knowledge and I also ask others to do the same. Over a period of time, this has worked wonders.
Wikis built with org-mode is my magic bullet with everything under version control. The major problem was that everyone needed to know both git and Emacs to contribute but this is not the case since I made a proper web client https://github.com/mickael-kerjean/filestash
Is there an org-mode editor besides Emacs that has a lower learning curve?
what makes you think Emacs has a high learning curve?
> what makes you think Emacs has a high learning curve?

The fact that I need to constantly look up how to do stuff and the modifications that I want to make work as I want them to only some of the time.

The fact that on more than one occasion, I've downloaded Emacs, started using it and gave up after less than an hour because of how unclear things are.

You can't use Emacs as notepad.exe, and comparing it with vim shows how low you're setting the bar. Out of the box it doesn't even have standard ctl-zxcv shortcuts. The keybindings it does have are terrible and give RSI, and crucially because there's a whole ecosystem of addons that try not to collide, they can never be changed, which is why CUA mode isn't default.

Some of us just don't want to 'invest' in tools that are profoundly flawed and will never be fixed, to the extent of causing physical injury.

> The keybindings it does have are terrible and give RSI, and crucially because there's a whole ecosystem of addons that try not to collide, they can never be changed, which is why CUA mode isn't default.

Everything you are claiming is wrong. I came to Emacs from the Apple HIG shortcut world (which btw, Apple copied from PARC), and I think the keyboard shortcuts Emacs comes with are better thought out and more ergonomic to use. That is why they are the default (Emacs users prefer them), instead of cua-mode, which comes with Emacs and is easily activated.

Emacs key bindings are also far easier to change that in any other application, because Emacs keymaps are first-class objects with inheritance and are separate from commands. That is why Emacs can easily support not just completely different keyboard shortcuts, but completely different input methods such as modal editing.

1. OP never mentioned VIM, so I do not see how it's relevant to compare EMACS to that - editor wars are long over ;) 2. OP asked for an alternative to EMACS for ORG-mode editing, as he obviously does not wants to use EMACS at the current time being.

Just saying that it's all so easy and making peoples issue with a complex editor like EMACS seem irrelevant or non-existing won't help anybody.

So, some alternatives to EMACS seem to be:

* for VS Code: https://github.com/vscode-org-mode/vscode-org-mode

* for vim: https://github.com/jceb/vim-orgmode

* for atom: https://atom.io/packages/organized

* sublime: https://github.com/danielmagnussons/orgmode

Also, some more information about integration can be found at: https://en.wikipedia.org/wiki/Org-mode#Integration

Why are you comparing Emacs to primarily modal editors? This discussion is not about those.
The default configuration of both ViM and Emacs are both pretty unerognomic. And both can be configured to work in pretty much the same way. Both have plugins.
I've been using the org-mode plugin for VS Code for 6 months or so and really like it.
Yes, my favorite is the one I built myself which look like this: https://demo.filestash.app/view/emacs.org?share=hn

It can create entire wikis by rendering documents in many formats: For example:

- HTML: https://demo.filestash.app/api/export/hn/text/html/emacs.org

- PDF: https://demo.filestash.app/api/export/hn/application/pdf/ema...

- markdown: https://demo.filestash.app/api/export/hn/text/markdown/emacs...

- txt: https://demo.filestash.app/api/export/hn/text/plain/emacs.or...

...

Also, the document shown here is coming from this github repo: https://github.com/mickael-kerjean/nuage_org_demo and the app itself is free software: https://github.com/mickael-kerjean/filestash

This looks really nice and quite useful, you should do a Show HN! (By the way, that first link doesn't work)
oh, WOW this looks great. Serious, enthusiastic-yet-polite applause!
Yes, there's Spacemacs which is a Vim-a-like configuration for Emacs which works well as an org-mode editor too. It uses composable commands, like "space f s" for save all files. I've found it works very well across my work Mac, home PC, remote workspace, and Windows 10 WSL v1 and v2.

If you'd like to know more, either reply here or get in touch via my profile, I'd love to help you out (although it may be a bit delayed because I'm suffering from back issues right now). There's also reddit.com/r/emacs which helps a lot with org-mode stuff, much more than the org-mode subreddit. Plus you get to learn a bit of Lisp, which is pretty cool ;)

Privately it's org-mode all the way.

At work it's a mixture of mostly Confluence and Markdown README files.

We're the same.

Confluence's inline and bottom-of-the-page comments are excellent. You can have proper chained discussions.

Blog posts have been amazing for us to share small "experiences" like how somebody setup their environment (as opposed to more standard env setup documentation). These tend to be more informal.

Markdown files in repositories have been alright, definitely good for readmes. However, they suffer because our tooling (Gitlab) does not support comments on the files.

I use Confluence at work, and it's quite good - biggest issue for me is the lack of markdown support. I'd really like to be able to author Confluence pages using markdown.
They've added markdown support in the new editor. Auto-converts as you type.
At our organization we use One Notes that serve as sort of Wiki's
I would suggest a single source of truth.

In my marriage, it’s my wife’s google calendar.

My personal projects are in a single google doc with tags I search for. I document my personal projects because sometimes I do stupid stuff and wipe out my work on accident.

For work, We use confluence as the source. We have daily stand ups that go on there. For any screenshare 1v1s I create a quick doc to cover what we discussed. We have a global team and even documenting everything will not suffice and you will need to meet on a screenshare. Record it for later reference.

I’ve been leading trainng sessions and they basically are a little technical stuff but mainly processes and where to go when you run into a problem. The best way to force people to use your wiki is to take time off or become unavailable for whatever reason.

Your audience should post the content about the screenshare session. The point of the screenshare is to share information. Your audience confirms receipt of that information by posting about the session.
> We use confluence as the source. We have daily stand ups that go on there.

You record your stand-ups on Confluence? I think retrospectives should probably be recorded (on something - Confluence I guess if you're using it) but stand-ups? Genuinely curious if you think you get any value from this? How often are they referred back to?

I imagine each team member writes down their status in a daily page.
I’m not sure if our stand ups are similar to other companies but each person tracks what they are working on in sales force cases or in JIRA.

Our stand ups are for trending issues, global/timezone concerns, and really important things. They last around 15 mins. The notes we put in confluence are @mentions and the next steps.

Anything else is tracked in jira/salesforce.

> The best way to force people to use your wiki is to take time off or become unavailable for whatever reason.

THIS 100%!

Yes, very much this sort of thing. Every organization needs a single authoritative source of truth, whether that organization is a single person, a couple, a team, or a large corporation.
For our support team of 5 we just started using a custom text expansion tool I built in Electron. The snippets (canned messages) are stored in a WordPress site (we already have the main website / docs in wp so it was a good fit) and we all contribute to them.

https://github.com/sareiodata/kbexpander https://github.com/sareiodata/kbexpander-snippets

The tool is mapped to a keyboard shortcut (the OS manages this) and searches the snippet title and content. So you can easily filter down stuff.

The WP plugin also has reports, like most used snippets (every-time you paste a snippet, we track that) per user / date / category. This way we'll try to see in the future if we can improve a particular part of our product, improve inline docs so we stop getting those questions. I'm not sure if this will amount to anything, but it's something we're experimenting with.

Other tools exist, but I didn't find anything with good enough search + a way to have a common repo for snippets + usage reports, thus the Electron monstrosity and WP companion plugin.

This is how it looks: https://pbs.twimg.com/media/EG_Ejy9X0AAnnMV?format=jpg

It's a great tool. All the information is stored inside a web page, which in turn means I can view it on any device that has a browser.

But what makes it more powerful is scripting support. One can not only customize its look and feel using CSS but also modify its behavior with scripts. Its scripting system is very powerful, for example, one user has a build a version control system for the TW notes using the TW scripting language.

This is the best answer. Dont fall for these startups shilling their products here!
Seconding TiddlyWiki.

I use it as a personal wiki at work.

It even supports LaTeX (via KaTeX)!

Here are the customizations I found useful:

* Table of Contents:

By default, there is not Table of Contents in the wiki. So a TableOfContents tiddler was added.

The tag $:/tags/SideBar adds it to the nav bar, and the field list-before controls the position.

New entries are added to the table of contents by adding the TableOfContents tag.

Note: the same code can be used in tiddlers to list tiddlers with a given tag.

* Journal:

New Journal date format was changed to YYYY/0MM/0DD (DDD, MMM DDth). This makes lexicographic ordering of Journal tiddlers to be chronological.

That is, Journal tiddlers will be sorted by date when sorted by name.

Visual theme:

The layout was changed to fluid-fixed Settings - Appearance - Theme Tweaks - Options - Sidebar Layout: Fluid story, fixed sidebar

Sidebar width: 350px

This looks particularly well when occupying one half of a wide screen.

Appearance - Code Foreground was changed to #0a5701 (green, used to be red). This affects the color of text enclosed by single tick marks.

New Journal, Attachment, Configutation, Manager buttons were added

* Plugins:

The following plug-ins were added:

KaTeX for LaTeX support;

Highlight.js for code syntax highlighting

TiddlyWiki has been my go to for my personal Zettelkasten. I've found it has covered all of my needs in a single file without having to even install or sign up for a single thing. I adore TiddlyWiki.
Can you edit and save the notes in markdown? I’ve got a bunch of notes in this format and ideally would like to keep them that way if I move them to a new platform like Tiddlywiki
Yes. You'll need to install the optional plugin for it. Then you can create and edit tiddlers in markdown syntax.
Yep, I've been forcing myself to use Notion more. It's such a great tool for taking notes and such.

It's also really versatile. You can use it as a wiki, as a document hosting platform (like google docs), etc.

I add Google Calendar to it for time-based organization and Google Contacts for people knowledge. (I really wish this existed: A tool to aggregate my conversations across multiple mediums such as emails, tweets, DMs on various services etc and tie them to my contacts in Google Contacts.)

can recommend, it makes it so easy to start knowledge sharing. you'll have to implement some rules after a while, otherwise it becomes victim of its ease of creating new content
Putting all your company's data in a random startups hosted service is something not everyone can and should do though. Even if it looks really nice.
As much as I love Notion, things that you've mention really holding from moving sensitive data into Notion. Wish they had more solid approach to security.

Not sure if this is still relevant, but at some moment they acknowledged their stuff access to client's data. This is huge no-no for any privacy conscious person.

Other that that it's a great tool for organising personal information for me.

Don't most companies that have access to your data have the ability to screen it (at least theoretically, if not practically.) E.g., Google for Gmail, Microsoft for Outlook etc.
I honestly can't see any reason to use it over Confluence. Apart from better emoji support
I keep hearing how much people love Notion, but I really didn't enjoy it. I found the desktop app (Electron, no doubt) rather slow/unresponsive. And I hated the login system where they just email you a new temporary password each time you want access. I use a password manager, so this is absolutely awful for me. And I don't know how many times I wanted to reference a note on mobile without signal and was asked to log in again, which was of course impossible without my email! I just could not get into this product.
I also couldn't get into it but I can't really explain why. FWIW, the tool I use to cover the type of stuff Notion does is Zenkit. I really like Zenkit. I'm not sure if it has a ton of fancy features, but I don't need fancy. It's easy enough to use and it's exactly what I want. I've used Asana as well and I enjoyed that. But for whatever reason I like Zenkit.
I use an outliner called Dynalist.

It’s an alternative to Workflowy. Workflowy development stalled a while ago so I switched but it seems to be active again so I might switch back.

An infinitely zoomable hierarchy works really well for my OCD :)

Another alternative is TreeSheets (http://strlen.com/treesheets/) which is desktop only but very fast and nice implementation of structured note taking tool. It's very well suited as replacement for mind maps, categorization of items and mapping hierarchical structures. I prefer it to any online solution because of speed and data ownership.
(comment deleted)
I second the needing a single, searchable source of truth. One of the main needs is for it to be maintained and updated. Having it all in one place helps with that and reduces the cognitive load of making the decision of where to update.

We use fossil; a bit minimalistic, but you get a wiki + code repository + tech notes + issue tracking all in one place and auto-updated with the code, and you can run it as a server with a web interface for those who don't need permissions to clone the repo.

At work I just made a huge organization overhaul. Previously, the entire state of a project was scattered throughout some markdown files in an absurdly complex git repository, a gitlab wiki and a stash of hand-written notes.

It's now all nice and tidy in a Confluence space. Let's see how it goes and how this holds up when more people start working on this project again. I for myself are diciplined enough to care about good documentation, but my last colleagues left a huge pile of chaos which took a few months to sort out after they left.

Have you thought about having markdowns rendered to a Confluence page? And maybe Confluence edits could get rendered back to git.

For the first use case, there are libraries available that sync your .md to Confluence which you could add to your CI system.

With a bit of tweaking, Pandoc does a good job of rendering HTML that Confluence likes. I wrote some scripts a couple of years ago to do this, using the Confluence API to add and update pages. It’s also possible to do a round-trip because someone will invariably edit the Confluence page.
I put everything in trello. It’s terrible as trello’s search sucks. But I still do it.
I was searching for such tools and founded a useful one Restya. Restya is a productivity and management tool specifically built around a Kanban-style workflow. Great for personal use (FREE) and scales easily to business and team use. We use it daily for managing our project workflow. I work closely with the developers, so feedback is always great. Restya is an excellent free Trello alternative https://restya.com/board/comparison
Create a knowledge-team whose sole job is to take information from all the other teams, digest it, and make it available to the rest of the firm. Call it "corporate communications" or "internal marketing" or whatever floats your boat. If you can't get a proper department, at a minimum you can get a on-staff librarian who is a good technical writer who you can pass around the firm (as long as they have the ear of the CEO/COO).
In a programmer environment, this is impossible. A programmer will always need to document his own things for a simple reason: (s)he is the only one who really knows. Putting people in the middle of that who can barely understand all the details, seems like a lot of overhead for a worse deliverable.
A programmer who writes their own documentation is like a barber cutting their own hair: Economical perhaps, but worse for anyone who has to look at the result.

And yes, if your audience is programmers, then ideally you can hire technical writers who can program, and who can speak to programmers, but failing that, technical writers who can get proofread by a programmer can also work.

Having a single consistent voice is what matters, and that comes from giving a person the responsibility to be that voice.

A programmer writing documentation is far from economical, since most of the time their time is worth more than technical writers.

It depends on the type of documentation of course, but if you work in a 50 person team and you want to document internal architecture or code structure, you better let the programmer that knows about the stuff write it.

First getting that technical writer up to speed about how everything is structured, the little implications etc, is pretty insane. It's like that phone game where you tell one person something, and then that one tells the next.

> A programmer writing documentation is far from economical...

And then you go on to explain a way that it is more economical; Time is also an important economic consideration.

> First getting that technical writer up to speed about how everything is structured, the little implications etc, is pretty insane. It's like that phone game where you tell one person something, and then that one tells the next.

No. That's what happens when you have a non-technical writer do technical writing. I wouldn't have felt like I have to say this but just because someone has "technical writer" in their job title doesn't mean they can do that job.

Yes, but they didn't do that job.

If my colleague programmer works a week on refactoring some code, I honestly have no clue what was changed. There is only 1 person who actually knows what and why.

I don't believe you can have 50 people producing knowledge and checking in code that nobody ever looks at or reviews, writing documentation that all 50 are expected to know, and have even a good portion of that 50 people understand it well.

I also think that if you have developers working for a week without anyone who knows what they're doing you have a management problem.

We might be talking past each other, and I might not understand exactly what you're saying.

I try to use Jira whenever I can. It sucks. But the thing is everything else also suck so for me Jira sucks a little bit less.
Apart from being pretty slow, I don't think Jira really sucks once a) it is configured to your needs b) you know how to use it (which should be fairly easy with a in place). Which goes for pretty much any tool more complicated than notepad, so to speak: it's not like the other similar tools out there are much better, just different, imo. Though I have the impression a lot of people who think Jira sucks might be using it where they actually don't need it because much simpler tools could suffice in their particular situation.
All tools suck in a way that actual reality of doing work is complicated and tools are obviously way simpler so you end up trying to reduce the reality to fit the model of a particular tool.

That explains why email is still the most used tool. It also sucks but you can do any type of project with email and everyone knows how to use it.

By the way, does anyone has tried Stackorvelflow for teams? Is it good?
We tried. It's pretty much like the normal stack overflow (Question and Answer based).

But we found that in the end - a normal wiki was actually more useful. I think this was mainly because of how our organization works. We're all physically on the same campus, at most a colleague is 2 minutes walking away. Hence we tend to often have in-person communication, or first via Slack, after which a colleague walks over to explain it anyway..

Using a wiki, the person knowledgeable about the domain can just create a document to refer people to which is quite natural. What is not natural for this person is to create a question and then answer it himself. (I know you could use SO as a wiki but than you're losing some of the utility anyway).

I'm not saying that it can't work, but a lot depends on company culture / structure, at least I think so. So if you're in a situation where people often post questions on slack and people respond through slack, maybe SO is a good alternative.

(Oh also, on another note, during our test people would post question on SO and no one would answer because no one is looking, or people think "someone else will answer" and don't bother to check up later. Via slack, at least it's more visible and scoped to the correct channel with the correct people for the domain).

YMMV ofc :)

I use Notion (https://notion.so) for pretty much everything (budgeting, tracking my PhD progress, high-level work-related projects, financial planning, etc). It's so flexible and has all the features you might reasonably want for managing information etc. It's essentially Evernote and Trello in one beautiful tool.

At work we use Wikis for most things.

I use http://diigo.com to quickly bookmark/tag/annotate links I find. It is about the most advanced bookmark manager out there with capabilities to store copy of page/pdf with annotations, search content etc.
Mediawiki works quite well. Most people use Wikipedia, so are able to quickly learn & use Mediawiki. Wikimedia Foundation has a number of initiatives to increase the diversity of Wikipedia contributors, so that translates into features non-technical people in your org will appreciate.

Microsoft was using Mediawiki for external-facing developer docs (at least on the HoloLens site), but after the GitHub acquisition has switched to a workflow that uses VS Code as a Markdown editor & publishes to GitHub pages. That kind of workflow can be okay if all the people in your company are highly technical.

As your company grows you may get value out of internal conferences or mini TED style talks.

Video & screen recording can really help too.

For personal notes, I’ve fallen back to plain text files with Markdown formatting. They’re relatively easy to search & avoid vendor lock-in so I can retain access to my writing. I try to include a common word in the title of related text files to aid finding them. But usually I can just type a phrase into Mac or Windows operating system search and find the note I’m looking for. I’m still deciding if it’s worth organizing my notes into folders.

Previously, I wrote papers and notes in a variety of word processors and page layout tools (Claris Works, Word, Apple Works, Pages, InDesign). Over time I’d miss an upgrade cycle, switch OS, or couldn’t justify the cost of an upgrade and lost access to many of those files. So far text files have proven to be quite portable across editor apps & I’ve also found writing in plain text helps me focus my thinking.