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?
This is partially inspired by Chris Albon's excellent data science technical notes: http://chrisalbon.com.
I find it very helpful to have this kind of information on a public website. It's easy to search myself, quick to edit[^1], and helpful for sharing with others when someone asks me a question.
For notes I don't want to make public, I use OneNote. It's available on every platform, has a documented file format, and the sync works well. Of course, I have some more detailed notes on why I prefer this to other options: https://maxmasnick.com/kb/note-apps/.
[^1]: My whole website is built with https://gohugo.io. I use the GitHub Actions beta to automatically update the public site every time I commit to master. This means I can edit on a computer with a standard text editor, and also on iOS using https://workingcopyapp.com.
1) The system isn’t just “the wiki” or “Notion”. The system is composed of both the tools you’re using AND the habits/expectations of the humans who use them. So, this is not just a matter of buying a tool. Its a matter of choosing tools AND designing a process made of humans habits.
2) The system will get messy and unused unless there is regular attention & time allocated to tidying it.
3) If you want people to do something, recognise and incentivize it. If there is a person who habitually sends out concise notes after meetings, make sure that their performance review recognizes that contribution.
4) A habit has three parts: {:situation, :action, :reward}
Example:
Situation: At the end of a retrospective meeting, we have learned of a need for a runbook on how to handle a type of automated alert.
Action: The team lead updates a runbook and tags a junior engineer to review it for missing context.
Reward: The team lead feels satisfaction that they’ve set their team up for future success. They add a bullet point to the notes to use during their next annual review.
For personal agenda I use Apple Notes with basically just a huge list of things to do and events that are about to happen and I curate that list more or less non stop during the day. If something comes up and I'm with people and don't want to be rude and spend too much time on the phone editing things to be in the right order and have all the relevant info captured with them, I just plop a line at the top of the note knowing I'll groom it later.
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.
The original question was about sharing knowledge amongst a TEAM, but almost all of the responses are about PERSONAL systems. I know most people watching this board are small-company startup types (in general), but I'm hoping that some of the old codgers, like me, working in creaky, legacy firms, have more to say. If we can't find something off-the-shelf here, I'm going to wind up writing some kludgy homegrown tool with Elasticsearch, and, frankly, this just doesn't interest me. I need answers people! The leader for large teams, according to what I see here, seems to be Confluence. Notion LOOKS cool, but putting this data in someone else's hosted service is an absolute non-starter for us.
- I can use my IDE in desktop to search / change them.
- On iOS, iA Writer can access to markdown files
- I get PRs to my public notebook because it’s on Github: https://github.com/azer/notebook
- The format and tooling are unlimited. Images, sound files, jupyter notebooks, everything fits
- It’s not binded to a product or protocol. I have freedom to personalize it and keep it the way I want.
- It scales beautifully. It’s been 3 years since I started it.
- The only problem was to have same IDE style for both code and markdown, I solved it later: https://kodfabrik.com/journal/ia-writer-mode-for-emacs/
I’d recommend it for those looking for alternative options.
Whatever you do, however, there is NO replacement for face-to-face discussion and interaction. There's no replacement for pedagogy that is as old as history itself: the Socratic method. The best way to learn something is for both the teacher and the student to ask and answer questions, to solve problems together.
Yes, it's true that it only scales like 1 -> N, where N is a small number. BUT, each of those people in that initial small "N" can also rollout knowledge if they've mastered it, if they have the right attitude about sharing knowledge, and if you trust them to do that.
Both may end up in the internal wiki, but that's a write-only operation unless you get people to read. And a wiki is nothing anyone reads front to back, wikis are entirely pull.
For the encyclopedic kind, I try to sprinkle some links where there is a chance that people (e.g. me, two months later) actually do an index search. This is not the wiki, this is email (or some successor thereof).
The opinion type knowledge will be even more lost in the wiki. Outside of extremely chain-of-command oriented organizations, the only way to spread that kind of knowledge is by actually convincing others. And a wall of text in an internal wiki will never do that. But the wiki page can be very useful as a collection of convincing examples etc to reference in a discussion that happens elsewhere.
Notes seems so simple on the surface, but every time I use it I am delighted to find power-user features throughout.
My #1 feature request would be code blocks with syntax highlighting. It supports monospaced blockes for now. Perhaps even better would be if it would detect, accept and render markdown formatting.
Until then, a simple trick I use is: copy the RTF text from Notes into a GIST. It auto-converts to MD.
Once your team is getting slightly annoyed about how often you repeat something (solid code review principles or the importance of testing come to mind), you know you are saying it often enough.
I'm not a religious man, but an observation in an article called "We only learn if we repeat" in the "the book of life" [1] stuck with me: It's no coincidence that daily repetition of principles is a core tenant of the big religions. There's a fundamental insight about human nature in that and we can apply it to modern technology teams the same way it has been used in monasteries for centuries.
[0] http://augmentingcognition.com/ltm.html
[1] https://www.theschooloflife.com/thebookoflife/we-only-learn-...
we've adopted something similar at work where we've necessitated that all support related questions be asked through https://www.discourse.org/ . This allows the most timely solutions to surface to the top and if a question hasn't been asked before it gets thrown into a slack channel where a subject matter expert can answer it. Making this one change has monumentally reduced the support burden of our teams.
At work we use Wikis for most things.
I keep sensitive files encrypted using GnuPG and my private key lives on a Nitrokey Pro (a GnuPG token).
I usually export to various formats with Org mode built-in exporters (mainly ascii, markdown, html and pdf) but I sometimes use Pandoc, especially to export to docx.
I have even started blogging with that system. I can edit an Org file on my phone using Orgzly or Emacs, and then use Termux to automatically 1. push the change to my Git repo 2. publish the files to html using Emacs in batch mode 3. send the html/css files to my website using a bash script and sftp.
I don't think I will ever look back :)
It is searchable, offers markdown and WYSIWYG editing, page templates, and is quite opinionated on how to layout things.
My reasoning for this is to layout basic templates and processes for sales, support, ops, and office management.
This is also used to lay a foundation for ISO 27001/27002 compliance and certification along with Eramba (https://eramba.org)
The last part is really niche, but coming from a Healthcare background taught me hard lessons in NOT HAVING YOUR DOCUMENTATION AND COMPLIANCE SHIT TOGETHER (TM) when you get vendor or compliance audits.
As others have mentioned, using one single central tool is crucial, even if it is only used for references to external tools (e.g. reference to pads). It should represent the first point of entrance in the search for knowledge in any team.
This also includes the possibility of migration, export, and self-hosting to have full access and backups at any time.
The setup we use is a monolithic MS OneNote notebook stored on MS Sharepoint.
I know this setup is dependent on your shop buying the "expensive MS stuff", but we already had it anyway...
This setup gives us the following "features":
- Everyone can edit at the same time
- Changes are tracked and identifiable by username (you can rewind the file history)
- Editing process is very easy and user friendly (you can drag in files, images etc into your notes, and it just integrates seamlessly. particularly with the rest of the MS Office suite)
- OneNote notebook layout is actually pretty good (horizontal tab based main sections, that can each hold multiple pages of content. these pages can be visually organized in a hierarchy)
- It has good search functionality
I use Notable[1] and MkDocs[2] for personal notes and technical documentation respectively.
All three are markdown powered of course. Raneto and MkDocs can use a Git repo with your preferred build pipeline and the HTML can be hosted internally or on Netlify, etc. Works well for teams.
With Notable I use Syncthing to keep notes synced, but that's a personal use case.
For teams you may also want to give Outline[3] a try. I haven't used it as yet but it does looks pretty good.
[0] https://github.com/gilbitron/Raneto
As you know, the solution is not just about an electronic system to expose the data.
The problem is that it is up to your colleagues to read and absorb your “knowledge” so they become “learnings.”
Now, the solution is also not to force them to do this. There simply isn’t enough time to absorb the notes of 49 other people every day and still do a full days work including churning out notes for the others.
This is a bandwidth issue. Does it really make sense for everyone to know what everyone is doing?
I think they actual solution will be tailor made for you company. Who does what? Who needs to know what? You have to start with the details.
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.
(1) Use the Windows file system to create a directory ("folder") tree that is often a taxonomic hierarchy. Have some good little command line tree walking commands.
(2) Do a lot with just text in simple text files. Generally prefer just simple text. Manage these files with a really good text editor. Have a lot of macros for the editor. E.g., start each entry in a file with a time, date, day of week stamp from a macro -- good to have to document the entry even if don't have much more.
(3) In each directory, have a text file that describes the other files or directories in that directory.
(4) Have a file, I call FACTS, just a text file, that has little facts: Each entry starts with a delimiter line, then a time-date line, then a line of keywords, and then the entry. The entries have user IDs, passwords, credit card info, e-mail addresses, USPS addresses, phone numbers, URLs of interesting Web locations, names of people and/or notes on them, etc. really just lots of short facts. Write a little editor macro to do search keywords.
E.g., since this thread likely has better ideas than I have, I put the URL of this thread in FACTS!
Big point: A single file of a few million characters searches essentially instantly and can hold lots of facts per day for years!
(5) For more, that is, for more serious information, knowledge, etc., write notes, even nice papers in D. Knuth's TeX and index them in FACTS, describe them in the documentation file of directory of the paper, etc.
For what to share with others, I'd suggest relatively well written notes or papers. For more, have a directory, make a ZIP file of the whole directory, and share that. For more, maybe use GITHUB or some such.
https://praxis.fortelabs.co/the-p-a-r-a-method-a-universal-s...
I haven't fully implemented it yet, but the general concept is:
Projects: a series of tasks linked to a goal, with a deadline
Areas: a sphere of activity with a standard to be maintained over time
Resources: a topic or theme of ongoing interest
Archives: inactive items from the other three categories
My former team used Confluence and Google Docs for knowledge sharing and found that it worked great for planning projects, but fell short for things that change quickly or are relevant for only a short period of time - code commands, debugging tips, meeting takeaways.
We relied on slack and personal notes for these tidbits which resulted in the information being difficult to find.
This experience inspired us to start Bytebase, the byte-size knowledge base for engineering teams.
Everything in Bytebase is a "byte" - a short chunk of information - not a document, and bytes can be composed of other bytes.
Bytebase makes it easy to capture and share bytes using a shortcut-heavy UX that feels familiar to engineers.
Would love any feedback or ideas. Email me (cara@bytebase.io) to get access to the closed beta with HN in the subject line.
* Longer-term items go into Org-Mode in Spacemacs.
* On-the-go to-do items go into Org-Mode as well, via the excellent Android app "Orgzly". These are shared via Dropbox with the Spacemacs instance.
* Habits are also in Org-Mode, with the org-agenda habits view showing me how I'm doing on that. A habit being a repeated task, something you want to do semi-regularly like "remember to take preventative inhaler" or "do yoga at lunchtime when working from home". This is a good overview of org-agenda + habits view: https://blog.aaronbieber.com/2016/09/24/an-agenda-for-life-w...
* I used to also save technical discoveries as a long list on my personal DokuWiki page in our work instance. It would get written as "Short Headline", then description, then code examples. Things like Title: "YUM wildcards", Description: "Use “yum list”", Example: "[root@wiki01 ~]# yum list "php*fpm"". I intend to get back to that by using the note taking org-mode capability in Spacemacs and scripting a dump of those into a personal wiki "somewhere".
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.
There are some great "organizational" options in this thread though!
Here is a quick interactive demo: https://workflowy.com/list-maker/
But I'm not sure how well that works with 50 people. You should probably mention what kind of knowledge you want to share and what features you might need.
Two key features for me:
1. Tagging notes works better for me than a directory structure
2. "Feed" style of notes allows me to go search more notes.
For sharing with public I use GitBook https://www.aizatto.com thought here are some short comings https://www.aizatto.com/why-gitbook . I personally like how it can output to Markdown, so that means I can have a copy of it anywhere
I don't know how to organize wiki-like things for teams, but here are my two cents for the topic of personal knowledge bases.
First of all, regardless of software, I prefer less structured and less constrained approaches so that it doesn’t take too much time and effort to add things to my knowledge base. I try to minimize the total number of entities (lists, files, notes) and to avoid folders at all. Usually I achieve this by using tags.
Secondly, I am still in a search of a perfect approach, but here is one thing where I succeeded to some extent, namely collections of homogeneous items. I use AirTable for that, but one can use Notion. For example, here is a list of software, I started it several months ago: https://airtable.com/shr8Wd96FurJmiTLs/tbl0n17xFuXrs0kMS?blo... I have a similar list for scientific papers that I read. And I started two more lists for other things. It is important that 1) the number of lists is low (I have 4 now) 2) the lists have simple structure 3) I can always download them as csv and do whatever I want.
As for the rest, I use markdown notes (I edit them with https://typora.io) stored in a dropbox-like cloud for ideas-like stuff. I use Google Keep for super-simple lists and I also have there a temporary note that serves as a buffer for sudden thoughts and ideas, from where I move them later to more appropriate place. I use https://todoist.com for my tasks, they are not organized very well (because no tags in the free plan), but the app is really nice and the number of tasks is not that great, so for now this works fine :)
The only thing that has remained constant for me are text files. I use two forms: if it's related to a component I'm developing, I tend to place it in the repository itself, in README.md, or docs/.md. Other stuff I keep in text (.md) files in a Dropbox.
Only those things that don't fit well into the above two formats go into Confluence.
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.
I am experimenting with a custom markup that exists in code comments before, within, and following a code block that is the subject of discussion. I reuse markup attribute values to standardize categories.
Then, an app scans source for annotations and indexes them. I can then fuzzy search against the index using a range of words and get references.
If anyone likes this idea and would like to collaborate with it, and have the chops for doing so, contact me..
Fewer descriptive words, more structure.
A company ontology has three top level categories: Parties(internal, external), Metrics(Platform, SaaS), and CompanyStructure which has links to things like cap table, incorporation artifacts, org chart, accounts, etc.
The metrics piece is useful because it provides north star metrics for a SaaS business, and then performance ones for the Platform itself. All features roll up into these, and then their git codebases are linked from there.
If your features don't drive your metrics, you're just in the custom dev business.
I use it personally, but it's a bit dominating to have an umbrella framework that encapsulates what people think is their special contribution.
At work:
* Confluence (http://confluence.atlassian.com)
* Balsa (https://getbalsa.com) - this one is open source, can be deployed on premises and has several security features - think of it like Evernote replacement but you keep your company files with you.
For personal use:
* Sublime text (when I don't need any sharing among devices)
* Notes (if I need to exchange data between my iphone and my laptop)
[edit: I work at Notion. I’ve added some more color about that to the top here. This isn’t marketing spam I’m commenting from bed on my phone - sorry that it came off slimy]
Notion is a malleable collaborative wiki that also has relational databases.
We build Notion, so it figures that Notion is our single source of truth. I think the way we use Notion internally works pretty well - with better results than the smattering of tools I’ve used at other companies - but we’re a smaller team...
Notion makes a good wiki because adding, editing, and organizing information has such low activation energy. Each part of the org (Eng, Community, Marketing, People, ...) has a tree of pages with process, information, etc.
We have a few big centralized databases that everyone uses:
- Tasks. Lets us see what anyone is doing, assign tickets, track progress.
- Documents. This one has a weird name. All teams put meeting notes, research, proposed designs, RFCs, specs in this database. The common thread here is that documents are artifacts of their time: they’re authored, reviewed and commented on by the team, iterated on, then ratified or archived. We rarely change them afterwards because they store historical context on decisions. If an RFC changes a process, or a design gets implemented, the affected team(s) might update their wikis.
- Goals. Stores objectives, product use-cases, and large projects. We relate Tasks and Documents with the Goals they support.
Centralizing these databases fosters cross-team visibility and assists with collaboration, eg seeing Eng and Marketing tasks related to an upcoming launch, plus the designs and research.
Shortcomings:
- Search. At the ~50 person size it isn’t a desperate problem but it does hurt.
- Integration with email and calendar. There’s no way to sync Notion to Gcal or react to incoming emails.
- Integration with Github: none.
- Mobile performance could be better.
[Disclaimer: I work at Notion.]
At work it's a mixture of mostly Confluence and Markdown README files.
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 :)
Fortunately most of my client work involves the use of Trello. Either I come onboard and institute a board/process that they can jive with or they have an existing board/process. That has been great. Trello is only as good as the person managing it, that’s important and methinks why a lot of people dislike it. I do a good job of managing Trello to fit the general framework of working and thinking that exists for each project or client.
For client projects Trello is the boss hog. Everything is stored there. Things will get broken out into sub-boards when necessary.
For personal stuff, it’s a combo. I use Trello to track things that have graduated from the research/idea phase into the action phase.
The research and idea phase I speak of occurs in Notion or more accurately on paper documents (no. 2, 2B Soft pencil!) scattered around my physical desk that eventually work their way into Notion. There, I enrich things with outlines and maybe full blown documents. For instance I used Notion to do a big documentation project for a client, exported as markdown, cleaned it up, and then forklifted it into their Github project wiki.
I also use Notion for all sorts of personal stuff. My homelab for instance is tracked there, with tables describing IPs/hostnames or hardware in the rack etc. The hierarchical nature makes it great to start low fidelity and go high fidelity.
I’ve got random article ideas there, some in outline and others in more detail.
Will come back and update this post with more detail shortly. Doing this via mobile and gotta jet.
I will echo afarrell though and posit that the tools are less important than the process. Determine the process and the outcomes before you choose your tool!
Sometimes someone will email me the day before and suggest an agenda.
Other times, when there are newcomers, I'll set an agenda for a few meetings. Usually I discuss design patterns that we use, libraries that we use, ect.
- A shared Outlook.com calendar where we (well, mostly my wife) puts social events and commitments - Hugo/git as a general KB for work related stuff - Microsoft Teams as a day-to-day journal and tracking of personal projects. - Standard Notes / VS Code as a text-only scratchpad.
My coach Malcolm Ocean has been speaking highly of https://roamresearch.com, which looks like a promising way to keep track of research-style notes.
Blogs, wikis and QA sites (also microblogging, shared conversations) witch a search center for all are classic instruments for implementing solutions that start by the organization (with agreement) of the "way of doing" by the teams and management. UPDATE: Like others say no replacement but a complement of teams and people face to face interactions, that can be perfectly established with some sort of SCRUM scalation.
On dev and DevOps environments, I prefer "doc as code" solutions (Github based); with one type of Github project as Hub for a collection of subprojects, using the main repo as documentation for guide, FAQ, status and blog post host (markdown or variants) as well as the Project Management and Issues management features as coordination tools.
Please elaborate on the kind of work and teams, the real need for integration with existent information management systems and the community will come with better suggestions. There is a lot of tools available, including more general approaches like a CMS portal with Sharepoint or O365 or Wordpress with plugins, some more direct to the KNB question only like QA for teams (StackOverflow), others tasks focused like Trello, etc.
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
I am debating writing my own little utility or setting one up on one of my Raspberry Pis at home. So I can have some sort of small wiki for internal use at home.
There was mention in the thread below about no tool being able to replace personal interaction. While I agree with that, Guru is the next best thing I've found so far, especially when teams grow to the point that the "Expert" is getting shoulder-tapped too often to focus on their actual job. Tons of other good ideas below that I don't have time to consume.
Check out getguru.com if curious!
Then as you build consensus it makes sense to start putting things in writing to reference in future discussions.
When putting things in writing, put as much of this in your code as possible, and don't be afraid to repeat yourself in many places.
Be deliberate about how you name things. You should choose names that align with names used across disciplines/teams in verbal communication.
Cross reference things by these identifiers, even if you're not using any formal documentation generator.
Rely on new employees to write high level documentation, with seniors around to answer their questions. A new hire will have the ideal perspective, and will become an expert in the process. Pay them accordingly ;)
Don't worry about docs getting out of date. Again, rely on new hires to find issues with docs.
Be relentless about reducing "API surface area" of your subsystems.
It took about a week to get used to the way organization works, but the ability to nest things under things and have them more or less self-index is handy. If I move two things under the same item, the item will show a list of the two things in a new Page type item. You can turn that new page into a wiki, style it, add notes, etc.
If you've ever used Scrivener, Notion is similar to the way it lets you organize things in a freeform way. My only gripe is that export dumps everything into files in one folder. They need to copy the way Dropbox Paper (or Scrivener) exports that retains the structure in folders. At least they support Markdown exports. That's more useful than the full HTML pages most note apps export.
Cacher was built for the express purpose of team knowledge sharing via code snippets and Markdown docs. It has also been successfully scaled out to teams of dozens, with a few customers rolling out to hundreds of members.
We believe successful knowledge sharing comes down to several parts:
1) Organization via categorization. While retrieving knowledge, labels/tags are an important heuristic shortcut. We often have trouble remembering but details but can usually recall the purpose of the piece of knowledge.
2) Integration with existing tools. People hate changing their workflows. We've found that engineers who are used to coding in VSCode or IntelliJ would rather not leave their editor to retrieve snippets. The context switching is just too expensive. Cacher is integrated with major editors/IDEs for this reason.
3) The ability to keep other team members updated on progress and changes. A proper knowledge system uses notifications judiciously to keep everyone on the same page. Cacher does this via customizable desktop/email/Slack notifications.
4) A professional understanding of the knowledge workflow. It is important, regardless of which tool you adopt, to come to a consensus on how the knowledge will be used. Marketing and e-commerce teams use us to store HTML/CSS with the intent of creating a large library of components and patterns. Technical support teams create snippets for remembering how to update a user's billing account. Before settling on a tool, consider what kind of knowledge is important day-to-day and agree as a group on how you'd like to retrieve it.
I hope that helps! If you're team is looking to try it out and would like thoughts on how to set up an adoptable workflow, feel free to ping me: rui[at]cacher.io
We have since switched to Nuclino (https://www.nuclino.com/) and are pretty happy so far. Refreshingly simple, lightweight, and focused on getting the essential features right. We are now moving away from Google Docs as well and trying to consolidate all knowledge in Nuclino. It's almost perfect for our needs, only a few nice-to-have integrations are missing (and will hopefully be added soon).
Finding the right tool is only half the battle though, getting people to actually use it and keep the content up-to-date is usually the real challenge. Switching to a more user-friendly tool certainly helps, but it isn't enough to create a culture of documentation.
To organize and share our knowledge at work, we use the project management tool we developed: https://en.beesbusy.com
We create projects and tasks for specific topics and use comments for updates. And for more complete information, we can add a link to shared documents or an attachment. For instance, we created processes templates that can be updated and duplicated.
I find it very useful because knowledge is then organized in a workflow perspective: for instance, our product roadmap information is updated by everyone on a daily basis.
Since Beesbusy can be used for any type of project and has a mobile app, I also use it to organize my personal life. I share projects with my wife (shopping list, travel plans and so on) and I have everything in one place.
I would also recommend using a wiki for in-depth information. We use the Gitlab wiki for its simplicity, and we add links to its pages from our Beesbusy tasks.
These days most of what I write is online, too, although I have bunches of OneNote shared notebooks and other accoutrements that come with working at a large corporation (Microsoft in this case).
In previous jobs we used Wikis (Trac, PhpWiki, GitLab, etc.), mailing-lists, the works.
I would suggest picking something with proper versioning and access control regardless - OneNote has the additional benefit of having decent (if slowish) mobile clients that let you take some of the info with you offline on trips, but that’s likely not a priority given the scenario you outline.
Primary reasons: Pages are easily created, can easily create templates for pages (reduce friction, increase consistency), easily shared among many people, and their "databases" feature which makes structuring all those pages much easier.
e.g. Have team meetings? Create a meetings database and change the default "new page" template to one with all the required areas to cover. Add some fields in the database for the date, who is in the meeting, where it took place, or whatever else is relevant.
If you keep projects in Notion you can link between databases and to other pages within the same database to provide links to relevant projects. Looking up all meetings referring to a project is as easy as filtering for all meetings with that page.
For the actual organization of knowledge we use Slack (#team room for work related stuff, #coffee room for everything else) and then for the serious information and processes we use a Wiki (Google Sites) and Asana.
We've also written an extensive Company Handbook [PDF] which can be downloaded here for free: https://mobilejazz.com/company-handbook-pdf
I still have A LOT of work to do on it, but the goal is to make it really valuable for team and peer communication. I think if you use a bookmark extension to navigate your organization's structure, it should stay more up to date than a wiki (at least thats my hope).
I'd encourage "all" of the above in some flavour or another, as people learn and teach differently.
Beyond that we have MediaWiki which is a tar pit of ancient and current information that has horrendous search/filtering.
No one is maintaining it from an archival standpoint and there is a mixture of old commentary on obsolete alpha/beta engineering releases from decades ago, along with all sorts of old material that may or may not be relevant.
It is excruciating. I've created new content, that I can't find through the search box, so thankfully I bookmark it in the browser or look to see what items I've edited.
Personal: My family uses Google's drive, so we have a large document which has our current schedule, projects on the to do list, shopping lists, etc etc. We spin off separate docs for big projects such as our home renovation or list of contractors we've worked with. Combined with scanned invoices, this makes everything searchable from one place which is nice.
I initially wanted to try something like Trello but the google doc has worked best for us!
What makes the above work is a simple protocol: if someone teaches you how to do something, you're responsible for writing that something down. It's a simple honor system, but people tend to stick to it, and the result is an ever growing, live body of knowledge.
Life: Bullet Journal is pure magic, when I manage to stick to it :/
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.
[1] https://tiomsu.com [2] https://www.youtube.com/watch?v=mx7Ai-PhvAM
I just started my own Gitbook wiki https://wiki.emadkhan.net/ and whenever I synthesize all this raw data with some insights I want to share, I'll blog about it at http://www.emadkhan.net/
Basically, the AI determines everyone’s expertise and ranks content and people. We also have plans for AI Q&A.
In most companies you use things such as Confluence, Github/Gitlab wikis, Slab, Jive and tons of other page systems. The problem is still searching them effectively. Also most knowledge is actually in people’s heads. So you still have to search for the authors.
Nelson on Twitter - https://twitter.com/nelsonjoyce
Tettra - https://tettra.co
Edit: I'm not affiliated to him or Tettra in any way. I just follow his Twitter for his transparency and useful insights in building a company. Hence I would happily recommend his product to anyone facing the exact problem
But still, a good enough tool is a must.
We build knowledge base software Kipwise and have been helping various companies build their knowledge sharing flow.
Our focus is to help customers establish a culture. We start with the managers and seniors, and facilitate them to spread the culture among their own teams step by step.
It takes time.
1. Caret (https://caret.io/) for taking notes. It's a simple Markdown note taker with some really nice features. It outputs plain .md files and works with folder.
2. All my Markdown file are in a folder synced on Dropbox.
3. I use a custom Alfred workflow which uses riggrep to search very quickly through the notes.
One thing to mention is that I want my stack to be private, so this doesn't publish anything to the web but it does sync.
- Sublime for very quick temp text files.
- Apple Notes for quick notes or for non-health related notes.
- TiddlyWiki for health tracking and identity tracking (e.g. what I value in life). Note: it's a bit unconventional to do questionnaires in TiddlyWiki, but it can be done quite well. Especially now that I know how their plugin ecosystem works and can extend the system with JavaScript. I'm happy to share my template.
- BoostNotes for coding snippet.
Each day, a GitHub Actions bot chooses one of the open post PRs and merges it.
The content is open source here: https://github.com/cybertec-postgresql/today-i-learned-conte...
Edit: Agree with afarrell though a good tool should guide processes and be actively used also in operations for information And knowledge not to be dated.
@kvdmolen
At launch, we'll be focusing on features that help employees to provide feedback to their organization leaders.
We're also exploring requirements for building out internal knowledge bases for organizations that have more sharing and communicative elements. Link in my bio if any are interested.
This is for my own personal use, maybe/probably not as suitable for a team.
In our company we use both github wiki and google drive to share knowledge.
It essentially is markdown files in the fixed directory structure, searchable and simple.
Professionally : physical notebooks and Onenote books. Every time I join a new team I start a new notebook and when I leave I pass it to someone else if they want it. My Onenote files are publicly accessible to anyone.
I recently replaced org-mode with Joplin. My more visual notes are in OneNote, which supports the Apple Pencil for drawing and writing.
But I ended up back at Google docs. Everyone has it, simplifies sharing and planning vacations massively.
How you organize/classify/process information is more important than the tool imo.
For note-taking, I use https://wreeto.com.
Proper ownership and decoupling teams and services.
Pair programming.
In general: All products have a few pieces of information that must be clearly provided in a bug report (or support escalation.) For my product, (desktop file sync,) this includes build version, unedited log files, filenames, and clear steps to reproduce.
Industry-wide, a clear ticket title that is more than "XXX doesn't work," that uses known product terminology, is also important. [Edit] Also critical is that information that defines what the ticket is, such as clarifications, and updating the steps to reproduce, shouldn't be buried in comments. Edit the ticket description.
Poorly-written tickets, either because they are missing agreed-upon information, like log files, or because they just don't explain what the problem is, are sent back. I tell all my engineers to regularly look through their tickets and send anything back that's confusing; so once they are able to work on the ticket, everything they need is there.
Another critical thing: It's important that tester follow good practice for your specific product. I've had testers attach videos, but ignore log files. Videos might be very useful in a product that the tester worked on in an old job, but they very rarely are helpful when trying to diagnose why a file isn't uploading. (That's why we have logs.)
The final critical thing: Managers must respect what engineers need in tickets. This means that the testers' manager should be instructing testers in the specific items of information that they need to collect for your product. If a manger doesn't respect the fact that you need logs (or whatever else you need) present in every bug report, your problem isn't communication. It's that you have a manager who doesn't respect the needs of your business.
[Edit] Why is it important to be a stickler, and make sure that tickets are well written? When you have to look at a LOT of tickets, you don't have the time to read through 100 comments in each ticket, and then spend an hour trying to reproduce the ticket just to understand what the problem is. If you have a lot of tickets that don't make sense within the first 60 seconds that you look at the ticket, then you need to figure out how to improve ticket quality.
Another thing: Don't combine bugs into the same ticket. This happens when testers start doing things like failing verification because they found a new bug. (Does the ticket refer to the new bug or the old bug. How come, when I follow the steps to reproduce, I can't reproduce the bug?) This also happens when testers think that the same bug has multiple steps to reproduce. It's always easier to close a bug as a duplicate, than the fix one bug in a ticket and keep the ticket open for the other bug.