It replaces the possibility of asking your friend who sits on the next chair a quick question.
It can be abused, of course, but I think it creates a healthy hierarchy of information:
If you need the answer today write an email.
If you need the answer in 10 minutes write on irc/jabber/skype/discord/slack.
If you need the answer now - go in person or use a voice call.
We actually had our manager tell us this in my first job and set expectations for how fast you should reply on each channel (of course you can answer faster, up to you). This allows to communication without worrying about destroying other's flow.
And of course you should check documentation and google before you ask, but that's tool-agnostic.
Also for remote teams it shows who is currently available, which is useful in its own way and solves some trust problems employers have with remote workers.
Even if a slack response expectation is only within your team, requiring people to check for notifications more than every hour seems really disruptive, unless you have designated “slack meeting” times.
Specifically, you're expected to answer in IM timeframe unless you set an afk message. This way people know that they should wait for an answer that might not come until hours later.
In an office this is self evident since if you walk to your colleague's desk you see if they aren't there, but requires a bit of explicit communication via IM.
I simply set my status to "AFK deep code" or simply "afk" and turn off notifications to get 2 hours without interruptions when I need it
Also it was expected that only urgent stuff will be handled that way.
It serves a similar purpose of being both a social gathering spot, and also a place where you can quickly ask an impromptu question.
I find it super useful for building a social environment in a fully remote environment.
such communication becomes the friction itself.
>And of course you should check documentation and google before you ask, but that's tool-agnostic.
the tool which significantly decreases the cost of asking naturally encourages the asking and discourages the documentation and google check by virtue of making the check a waste of time when the answer can be quickly obtained by the asking.
One big change that I got with my team to do successfully in a company was to change the attitude regarding communication and documentation on Slack.
It involved one single, simple rule: whenever you want to ask anything you need to do your work on Slack, phrase it a way that relates to the Wiki/Knowledge Base.
In our case it was Confluence. So, instead of getting questions on channels such as "How do I do X?", we would ask "Can someone point me to the Confluence page that explains how to do X?". Instead of asking someone to send a file or spreadsheet with data that I needed, I would ask them to revise and update the Confluence page, and so on. That would apply even for meetings that were held. If someone missed a meeting and wanted a re-cap, it was easy to point to the page with the minutes of the meeting, and so on.
In the beginning we did have to prod and nag some of the colleagues so they would drop old habits, but after a couple of weeks when the majority understood that Wikis are meant to be editable freely it was working really well. There were no longer huge threads on Slack and there was no more stress about missing anything that happened on Slack. It did help (a lot) that we had the support from upper management in implementing this, as they were the ones worried the most about losing communication scattered in a million threads and channels.
People actively dislike confluence. (And it's something that's stuck in my craw - how do we build documentation that's easy to organize? That's my quarantine project. :)
The solution we had was to give one Space for each team/department in the company: one space for Customer Support, one for Engineering, Data Scientists, Business Analysts and Operations/Management. Each team lead was responsible in ensuring that other teams from the company could find the information needed, but aside from that we let each team organize itself.
The only hard rule was the one I stated above, everything else came somewhat organically. Managers and Business Analysts, for instance, still preferred to work in Word/Excel, so their pages was mostly just placeholders for Office Docs and attachments. This was fine by me, as long as they could always respond quickly with the right file/link if someone else in the team asked for something.
This is the single biggest tip I would give any company who uses Confluence. For some reason, most companies I work for that use Confluence insist on using minimal separation of Spaces. I.e. IT in general has a Space, and my team has a folder nested 6 folders deep in some path that I can never remember and have to bookmark.
It makes search effectively useless. If I search for "X api documentation" I get 10,000 results ranging from meeting minutes that some unrelated team put up that just happen to use those terms, to pages from other teams documenting how they use the API.
A Space should be treated the same as a Jira project. If I had my way, I would create a Space every time we created a Jira project.
And my biggest request for the Confluence team would be better markdown support (I should be able to indicate that I want to type Markdown without having to click through a giant list), and a way to set up a space to sync from Markdown files stored in Git. Some of us don't want to use the WYSIWYG editor, and I would love to be able to use an MR review process for documentation changes before they go live.
So one day Jeff Bezos issued a mandate. He's doing
that all the time, of course, and people scramble like
ants being pounded with a rubber mallet whenever it
happens. But on one occasion -- back around 2002 I
think, plus or minus a year -- he issued a mandate that
was so out there, so huge and eye-bulgingly ponderous,
that it made all of his other mandates look like
unsolicited peer bonuses.
His Big Mandate went something along these lines:
All teams will henceforth expose their data and
functionality through service interfaces.
Teams must communicate with each other through these
interfaces.
There will be no other form of interprocess
communication allowed: no direct linking, no direct
reads of another team's data store, no shared-memory
model, no back-doors whatsoever. The only communication
allowed is via service interface calls over the
network.
It doesn't matter what technology they use. HTTP,
Corba, Pubsub, custom protocols -- doesn't matter.
Bezos doesn't care.
All service interfaces, without exception, must be
designed from the ground up to be externalizable.
That is to say, the team must plan and design to be
able to expose the interface to developers in the
outside world. No exceptions.
Anyone who doesn't do this will be fired.
Thank you; have a nice day!
I think about that a lot when designing any system, machine- or human-centered, that needs to communicate with a disparate group of entities. Encapsulate the implementation details to those who are closest to the actual information and have enough power to take action, and make the contact interfaces very explicit. This alone will get you 85% of a functional system. The rest is just selecting actors in your system that know how to cooperate and understands these boundaries.I'm trying to do that work now. It's not even that I don't think it can be done in confluence or wikis in general, but rather we don't have a great methodology in organizing it.
I'm keeping a list of what I find at https://www.ebiester.com/annotated-links/documentation/2020/... but I'm not seeing what I really want just yet.
Too much structure, and people will wait until they have all of the details needed to start contributing, or they will not contribute unless it's "their job". Too much flexibility and they don't know where to start.
I found that it was always better to let documentation and knowledge sharing follow the same principles as code: let it come bottom-up, see what patterns emerge and only worry about structure when the current practices hit a bottleneck. But then again I never worked on any project that I had hundreds of people directly depending on the documentation, so it might not work as a strategy for larger-scale organizations.
Your knowledge system keeping in sync with your version control is also a major plus, this is the primary reason why I don't like tools like Confluence, because it's easy for them to get out of sync with the actual system, and this can require too much coordination.
I don't follow. How much do you have of your non-techies updating your knowledge base and how do they get to know if what they are updating is "in sync" with the system if the changes are making are orthogonal with the functionality?
It seems your case is mostly about documentation of the technical product, specs, requirements. Yeah, this can go to your version control, and I would bet that you could find a Confluence plugin that would generate the documentation from version control and sync with the rest of your Confluence pages if you wanted.
But I really, really doubt your method can scale beyond the IT side of any middle-to-large organization. The moment you ask Business/Customer Support people to actually go look at anything like Gitlab/Github's interface is the moment you lose 90% percent of buy-in from both non-techies and management at any company that is not absolutely dominated by Software Engineers.
Requiring integration with version control is a convenience for engineers, but it is so far from the tooling from those that live on Excel sheets that you might as well ask them to never touch the documentation side.
The interface is not so much what I object to it. It is the fact that you mentioned "being in sync with the system", which I assume you mean "being in sync with the codebase/released code".
There are plenty of things that happen on any company that have no relation to the code, and you are telling me that you have people on the non-tech side which are expected to understand on what branch of the repo their contributation with documentation is supposed to go? Are their milestones and projects always dependent on the codebase? This is the part that makes no sense to me.
> So we do strongly believe this is scalable, at least for our use case.
I am not telling you that what you are doing is wrong, but scalable it is not. Beware the usage of the Royal We when you say "our use case": are you speaking on behalf on the whole company or just the tech team? This is key difference that you will learn as the organization grows.
Some more details about our approach that addresses your concerns: (1) for content changes unrelated to code, anyone (tech or non-tech) is able to open a new MR, and after approval it automatically gets merged into our reference branch and deployed (2) for content changes related to new (unreleased) code, the input from non-tech people (e.g. customer support) is usually requested via an already existing merge request (via a mention), they can then add their input/content via gitlab's interface straight into the markdown files (and see a live preview), this way we ensure this sort of content goes live along with the code and requires no extra coordination
> I am not telling you that what you are doing is wrong, but scalable it is not.
I hope with my clarification above it makes more sense.
> when you say "our use case": are you speaking on behalf on the whole company or just the tech team?
On behalf of the whole company: we have a single product/platform that is continuously increasing in complexity, and it really helps to have a single process in order to maintain a knowledge base that covers as many aspects as possible (tech and non-tech). We believe this approach will also minimize replication of content across departments (facilitates cross-linking), and we're intending to also create an aggregated search (next to the individual search) across all categories of our knowledge base (product/engineering/support/sales/..), in order to more easily retrieve relevant content.
> Beware the usage of the Royal We when you say "our use case"
I am not implying this is set in stone, we (as a whole team) thought long about this flow, and for now it seems to work great, and I hope (responsible for maintaining this technically) that it scales up to some point far enough in the future. I'd say we were mostly inspired by Gitlab, they seem to adopt a similar approach, and that seems to be scaling quite okay over there :). We've noticed ourselves that the general "documentation mindset" has definitely grown among the team because of this specific process and the ease of adding content, updating content and retrieving content.
As for Gitlab, their work processes are interesting, but I assume that most of the non-technical work there goes to issue tracker and the wiki? I am failing to see where there a strong connection to the code repository is required there.
Futureperfect: can those convos be mediated via a wiki?
While using Confluence, I tried to keep track of activities. Like when another team updates an API I'm using. Manually. IIRC, I could watch pages. But I couldn't follow individuals, topics, teams, etc.
In the wiki page proper? Theoretically, yes, but it would involve a lot of discipline from everyone in your team.
One thing that worked for our team (i.e, our Confluence Space) was to keep all pages with a "comments" page at the end. Any comment that came up on that page was basically meant an "issue" to be resolved in the documentation: clarify a point, update another, link to a related page with more details, etc. Once the person that created the comment was satisfied, we treated the issued as resolved and deleted the comment without prejudice.
I now recall that C2 wiki has convention of comments. They're immortal. It sucks.
FWIW, I've been advocating everything (everything) gets a TTL. Like renewable leases. Culling is such a huge problem, burden. As others have commented (in the org-mode thread), upkeep becomes onerous. It may be cheaper just to rediscover stuff that's gone stale.
--
There are different types of convos, interactions, transactions with their own use cases that all need to be implemented specifically.
All of the purpose built focused tools I've seen, per that cliche, eventually add an email feature.
And I can't think of a hybrid solution. Maybe bug trackers.
I hope someone someday cracks this problem.
I've used everything from IRC and ICQ through XMPP and HipChat to Slack, Discord, and Teams and let me share why I think Teams is so much more than all of its predecessors.
As someone who manages a large Active Directory domain and Office365 setup, Teams comes free. All I had to do was install the Teams client on users desktops and everything just worked instantly. Users logged in, installed it on their mobile devices, all secured by O365 2FA. I created an AD group for managers and all of them got the ability to send out Teams meeting requests via a local dial-in number for $4/month. When they schedule a meeting, the attendees can use Teams desktop app, mobile app, web app, or just dial-in via phone. Without this $4/month, users get everything except the dial-in phone number.
I created a few "Ask [Department]" channels in Teams and my users are using them in the appropriate way without over posting. Users message others in groups of 2-5 and create their own channels without asking IT. My users have conducted Teams webcasts for 40+ attendees, frequently video chat with groups of 8+, and have drastically reduced texting via their personal cellphone or using the old internal IM client. All of this without any training from IT.
So Teams is different because except for email, it has replaced text IM, SMS/MMS, forums, audio conferencing, video conferencing, and screen-sharing. It can also replace file-sharing and co-authoring but for business reasons I disabled that as much as I could. Also it automatically integrates with Outlook Calendar so users are alerted the same as before, just with a Join URL now. We were paying over $2k/mo for audio conferencing and now it's barely a few hundred dollars for a better, more stable product. Other than audio dial-in, Teams is effectively free for us because we have been on the O365 Enterprise plan for years now.
I last used Slack about 6 months ago and back then it had poor audio conferencing and no built-in video conferencing or screen-sharing. I was hoping after they bought Screenhero, at least screen-sharing would be native quickly but that was not my experience. Overall I like Slack, just that for enterprises already on O365, Teams is a no-cost no-brainer. Not even going to try setting up Slack.
Until MS figures out notifications, I won’t be switching. It is hard to understate how annoying it is to not be able to trust accurate notifications and notification settings.
Most messages don’t have an expectation of a timely response. But of those that do, I need to be able to rely on notifications.
I just gave up eventually.
Have you spoken with Slack directly about this? I've brought up several issues to their "Feedback" area and usually have very quick responses for a company that services as many people as Slack does.
Of course Discord has the image problem of being marketed to gamers (and that's fine, because it lets them focus their efforts), but as a tool it is pretty well crafted.
I've only really evaluated Teams for one use case and there were limitations that made it impractical. I was hoping to set up Power Automate rules that would let me forward an email to a group and have it auto-create a Planner task, auto-create a Team Channel with a link to the task and a copy of the original email posted, and reply to the email with a link to the channel. Then all conversation about the task happens in the Team Channel and someone can own the task to make sure it doesn't get forgotten. When the task is closed, the channel gets archived. However, there's a limit of 200 channels per team, so it's not good for short lived channels. Planner also has some crazy low limitations, but I don't recall what they are.
I know that sounds a lot like an issue tracker, but the hope was to trend towards the other scenario you describe where email, IM, SMS, etc. are all replaced by a single tool. Just email + SMS are enough to de-thread a conversation and cause confusion / miscommunication.
How are you finding the Teams limitation of only 9 people on screen at once in a videoconference? That is the one major flaw that Teams lags the competition in, e.g. Zoom.
Nine people on the screen is a nice ratio, and if the 10th person says something, they take the place of the person that hasn't said anything the longest on the grid.
There are other reasons I dislike Teams, but this isn't one of them.
This is just a recipe for excluding people who don't speak up. In a larger meeting I particularly want to prompt juniors to speak up, for example. I also want juniors to see each other so they feel more a part of it.
If you are only interested in the last person to speak that's fine but you might as well just use a voice call for that.
I turn my video off during video conference calls, but others may not feel they have the autonomy to do so.
https://www.bbc.com/worklife/article/20200421-why-zoom-video...
My vision of video conference is that one person is sharing their screen or something, why would I want to watch other peoples avatars or rooms in all kinds of video quality
I'm in the process of "refactoring" my training approach to a videoconference approach (using Zoom).
I'm actually really surprised at how intimidating the process has been. I've been doing training and speaking in person for a long time, but not via Zoom.
It will work out, but the biggest issue that I'm encountering, is not having access to "immediate feedback."
A very good article on the topic was written by a well-known (and extremely effective) trainer, Erica Sadun, here: https://ericasadun.com/2020/03/11/so-youre-going-to-teach-re...
Once i taught a guest lecture in zoom. I ended up using directpoll.com to approach the polling features I'd normally use. Lots of yes/no questions, easily asked and answered (always same url, can watch answers coming in), some exercises.
Extremely positive response. Simple, oft-used interaction truly is a game changer - even if limited to yes/no.
Because it more closely mimics the experience of being in a room. For example maybe I want to listen to, or be, the person speaking while gauging reactions from facial expressions. I have a 30" 4k monitor, I can easily have 20-30 faces on screen at once in software that supports it.
If you read the MS forums there are plenty of complaints about this, a typical use case is a teacher or lecturer who wants to see their entire class.
I am totally OK with the number of faces on screen at once being a user-configurable parameter in the client - but 9 is a hard limit baked into Teams.
Say, "this is how I want the grid to be arranged", and maintain that arrangement over many meetings, with absent people blank and not repacked?
Also, if you are a host/co-host, the order of the "Participants" list keeps shifting. I end up accidentally muting/unmuting people, because their position changed between my moving the cursor over their name, and clicking.
For a service that's probably being marketed a lot at schools, that sounds like a perfect feature for the classroom and you could use it, as well :)
FWIW We are still dealing with the four persons on screen limitation and even then there is a good chance of no one having video. Management wisely decided against forcing the issue. Plus throw in that many times we end up with someone sharing their screen.
It's what makes FOSS "support" (i.e., having someone to talk to about a technical problem in a meaningful way, so that you get closer to resolving it) so much more effective than costly support contracts with big and faceless corporations that make you jump through all manners of hoops - only to end up with some expert level blame-shifting, and no real solution in the end.
Your conversations with the guy next to you, or the guy at the watercooler is unstructured. When you communicate about a specific issue you might communicate in an email or issue management system, but that doesn't mean there is a need for unstructured communication too.
> people seeking out help should RTFM > Maybe Slack, etc. are popular because the informal nature lets people skip the part of the process where they're expected to make an effort.
All informal/unstructured communication isn't just "people asking for help". It's navigating an organization and just communicating (who is it that manages thing X in our company? I can't use email today, is it just me? Who wants to go out for lunch?). It would be absolutely horrible to fit all this impromptu and unstructured chat into a forum or issue management system.
But like you said: that's about it. It is slow, the text input box is horrible and most of the time you loose track of conversations.
What I lately notice is that teams start to use WhatsApp groups as Slack replacement. To me that shows that Slack is just a messenger.
After using Slack and Teams I have concluded that good, old forums would probably be a better solution. You can discuss a topic in focused way instead of big discussion threads that never end and have tons of things mixed with each other.
Problem is that you can't propose such a thing in a company because something old can't be good.
One of the reasons I use StackOverflow, is that I can get a question -often a “showstopper”- answered fast.
I’m quite capable of solving every question I ask, given time.
It’s that “time” coefficient that I need to reduce.
If I can resolve an issue by quickly formulating a question to get a useful response in fifteen minutes (versus spending a couple of hours trying different approaches), then it’s worth it -even if it is delivered with a side dish of condescension.
That said, I’m not really a fan of Slack, or its ilk. I don’t like letting others have unfetterd access to my contiguous time.
A forum like SO is better suited to that, where I’m not bothering others. In fact, they compete with each other to quickly answer my question (and maybe take dig at me).
I like it very much, it is like email, but faster, less formal (and no, it doesn't replace email, both have different uses for me).
It is similar to instant messaging, but you can ask a question to more than one person at once.
I also don't get why some devs of successful open source projects hang out in Slack. Do they feel like they need to or do they want to? The specific thing I don't get is that a lot of projects have both an issue tracker and a forum so they can filter low level questions into the forum, but then you can get direct access to the devs by visiting the Slack channel. I mean it's cool, but WTF?
I guess maybe my thinking is old-fashioned at this point, but I think people seeking out help should RTFM and be held to a certain standard when it comes to the effort they make. I self solve more than 50% of my problems while I'm trying to build a test case or write a good quality forum / SO question.
Maybe Slack, etc. are popular because the informal nature lets people skip the part of the process where they're expected to make an effort.