细数微软 Teams 的 14 宗“罪”!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://csdnnews.blog.csdn.net/article/details/100047975

 

640?wx_fmt=gif

2017年3月,微软推出了企业团队协作服务Teams,正面与Slack竞争。最近,微软宣布他们的日活跃用户超过了1300多万,周活跃用户超过了900万,成功“超越”了后者!但本文的作者表示,他在过去的15个月里使用Teams的经历可以用“非常讨厌,难以容忍”来形容——事实究竟如何?一起看下去。

640?wx_fmt=jpeg

作者 | Joshua Kite

译者 | 苏本如,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:

 

我写这篇文章的大部分时间都是在完成一段必须使用Microsoft Teams(下面简称Teams)的工作。对于那些没有享受到这种“乐趣”的人来说,这是微软针对Slack这款深受科技界喜爱的即时通讯客户端软件的反击。

微软于2017年3月首次发布Teams,最近微软宣布他们的日活跃用户超过了1300多万,周活跃用户超过了900万,这个数字已经“超越”了Slack。2019年3月,微软报告有50万个组织正在使用Teams。我曾经在一个使用Slack的组织工作过,现在又在一个同样使用Slack的组织工作。我不太喜欢Slack,但是它相当好用。我工作的组织都是中等规模,我的职位是工程师,这些组织里都有多种即时通信/聊天工具软件。我在这些即时通信/聊天系统中的身份是普通用户,而不是管理员。而我在过去的15个月里使用Teams的经历可以用“非常讨厌,难以容忍”来形容。下面我来详细给出原因。

 

640?wx_fmt=png

简短比较

 

我想做的最简单的比较是针对另外两个大家可能更熟悉的消息通信客户端软件——WhatsApp和Outlook。

我们知道WhatsApp还没有一个合适的桌面客户端,但这一点在这里并不重要。WhatsApp的特点是它的使用非常简单和显而易见,而Outlook的情形和WhatsApp则截然不同,它已经存在很久,这点我们都知道。但是它总是让事情变得尽可能地复杂,它的几十个菜单中有数百个选项,其中许多选项很多人从未使用过,或者几乎从未使用过。比如说,配置自动签名和电子邮件规则这样简单的事都有可能花费半天时间。

 

 

编者注:很多地方的评论者抓住了上面那句话,暗示我无法胜任使用Outlook。他们忽略了下面的段落和我在Medium上的其他文章。这里澄清一下这些难以理解的地方:当为Outlook设置自动签名时,很容易弄混HTML/纯文本的区别,导致丢了换行,或者多出了一个换行。另外,对原始电子邮件和对它的答复和转发邮件,忘记应用相同的(或不同的!)自动签名。弄清楚这些可能需要半天的时间,因为所有这些琐碎的小选项都很容易被遗忘。这些设置我当然会,并且已经做到了,而且不需要依靠运行手册来做到这一点。如果你的组织有一个模板化的自动签名供你自己使用,你就加两分吧。

我之所以做了上述比较,是因为它反映了一个用户从Slack转到Teams的真实感受。我应该在这里指出,我一直在使用Outlook,自从它被叫做“Exchange客户端”(当时它和MS Exchange 版本5捆绑在一起)时就开始了。它曾经落后于时代,今天仍然是。在那以后,我在各种平台上使用了Outlook的各种版本。我还培训员工在公司环境中把Outlook的使用提升到初级/中级水平。

 

640?wx_fmt=png

那么Teams的问题到底是什么呢?

 

自动订阅

 

 

编者注:我注意到这个功能是一个针对组织的设置。我不清楚这个设置是否是默认的,但在我使用Teams的时候,它确实如此。

很明显,微软将Teams与Active Directory/Exchange捆绑在一起。这样就可以根据AD组和Exchange邮件列表来自动创建频道和订阅用户,就成了一个明显的卖点。听起来不错,不是吗?但是当你意识到你订阅了数以百计的频道,并且其中大多数你都没有兴趣,你还会这样想吗?当然,这些频道还是嵌套的,并且嵌套了好几层深。如果你够幸运的话,这些频道没有人理会,他们只是僵尸频道,潜伏在那里,没有人注意到它们。有点像Outlook中一些比较模糊的菜单项。

可发现性

当然,没有人对那些与他们无关的即时通讯频道感兴趣,他们只对那些与他们相关的即时通讯频道感兴趣。这种说法显而易见是对的,但沟通媒介是关乎沟通的,能够根据主题搜索频道很有用。如果你非用Teams不可,那么在默认策略时这点没有意义。你的搜索范围从来都不清楚,缓存速度太慢,很多东西都无法搜索(后面我会再谈到这点)。估计他们真的喜欢那些默认频道。

消息线程

频道中的消息采用多线程的方式是荒谬的,再加上缓存问题,这几乎是不可能做到。我的团队几乎立刻放弃了,转而进行简单的、单线程的团队聊天。这种方式也有它自己的问题,但我们至少清楚发生了什么。但是组织频道继续使用线程化的消息系统,所以我们不得不在那里使用它,但它从来没有变得容易过,我们也从来没有选择切换回去。

消息提醒

任何在规模庞大的组织中工作的人都有被不合适的“噪音”事件提醒和频道消息提醒干扰的经历。通常你可以选择静音或取消订阅这些频道,但是在Teams中你做不到!首先,你不能将订阅的频道设为静音。这意味着,如果有人使用@${channel_name}向频道发送消息,你就会收到消息提醒,因为微软现在还没有实现静音功能。其次,对于所有这些自动性的频道或管理性的频道,你自己取消不了消息订阅(或者至少不能取消它的默认订阅策略)。太棒了,不是吗?不可避免的消息提醒,任何频道上的白痴都会让人恼火。

 

 

编者注:由于许多评论者不愿意承认上述内容的“准确性”,那么我给出下面这个链接供大家核实。这是关于微软Teams的UseVoice功能的一个投票帖,截止到2019年8月13日,987人已经投票了这项“静音”功能,而微软在2018年8月6日报告他们“正在努力”实现这个功能。

随着“优先级通知”的出现,情况也将变得更糟。让我们来看看网上其他人怎么说:

 

 

 

什么是“优先级通知”?这个功能允许用户将Teams中的聊天信息标记为“紧急”。与常规的“重要”消息不同,紧急消息(也称为“优先级通知”)会在20分钟内反复向接收用户发送消息提醒,直到这个消息被接收和读取,这样就最大程度地提高了及时接收和处理消息的可能性。

如何启用它呢?IT管理员可以将此功能作为Teams消息策略的一部分进行管理。默认情况下,所有用户都启用此功能。

我觉得这样一个集中控制的功能的想法是难以置信的。这就像有些人认为:他们可以拥有一个技术上的等效物,当他们的用户坐在办公桌旁时,他们可以在用户周围走动,用手戳他们的眼睛,而他们还认为这样做实际上会给用户一个满意的结果。真的是这样吗?有这种想法太神奇了!

集中控制

我想,当你看看今年夏天Teams将要发生什么时,上述对集中控制和取消用户权利的强调不应该让你感到惊讶。这些即将到来的改变听起来很可怕,我没有必要非得忍受它们。不过,我确实需要承受一些相关的影响。

至少在默认情况下,我的组织中的任何人都可以在任何主题上创建一个频道。你认为这是一件好事,但是等到你发现自己自动订阅了这些频道并收到消息通知的时候,你就可能不会这样想了。就像我为人们训练他们的狗上厕所的“小狗”频道所做的那样。我们花了很长时间才发现默认设置是为了得到频道趋势的研究以及人们是否想要关闭它的信息当然,当然这些信息都是基于个人用户的。

策略失效

上述问题中的一些得到了缓解,而有些被这些策略(可能是默认的)弄得更加复杂,在许多情况下,这些策略在我们看是不是愚不可及,就是瞎胡闹。

频道命名

前面我已经提到,对集中管理的是频道没有办法静音或取消订阅,用户能做的是对一个频道重命名。因为@here不支持提醒该频道上的所有人(需要这样做的话,你需要用@{channel_name}),这实际上是一种有效的方法,可以将技术不太熟练的人非常喜欢的所有自动“部署”的消息提醒“静音”掉。

至少真的可以这样实现,人们可以手动为他们想要的重要信息设置提醒,而不是要求他们不得不接受所有提醒。当然,至于那些想积极“跟踪”所有消息提醒频道的人,他们仍然可以做到这点。

群聊参与者管理功能

它可能是随着频道管理员的出现而出现的,但同时,如果有人邀请其他人参加群聊,你不能删除他们,他们也不能删除你。你只能友好地请他们离开,但这得视他们是否愿意。

频道管理

与上面类似,如果你设置了一个频道,这时候有人(我不知道会不会)把它挂到一个RSS源上,这样它就变成了垃圾邮件,那么你就陷入困境了。你没有办法把这个RSS移除,你也没有办法阻止这个RSS提供内容更新,你只能友好地请他们断开这个连接,但这得视他们是否愿意。如果你连是谁做的都不知道,那你就一点辙都没有了。

设备管理

就像MS Exchange在2019年仍然期望管理员在默认情况下有查看整个设备上的电子邮件的特权那样,Teams默认情况下也有相同的需求。除了只有一个不太友好的Web界面外(所以你必须使用“桌面视图”),你几乎可以访问所有东西,毕竟桌面客户端是个Electron应用程序。

那么你为什么又需要那个管理员权限呢?大约一年后,我的组织放宽了对默认的设备管理员的要求。详见下文。

无法添加外部人员

至少在我的组织里,我们不能把外部人员加入到我们的频道或者与他们共享频道。我们必须以某种方式邀请他们加入我们自己的组织,并提供Active Directory标识(集中请求)。当然,这是假定那些运行Teams客户端的人使用该身份登录,而不是使用其他身份登录。如果你属于没有联合信任的两个不同的组织中,我不确定这是如何工作的。而这个对Slack来说不是一个问题,因为你可以让你的客户端同时登录到多个组织。

客户端性能

客户端的性能很糟糕,我所有的同事都注意到了。在MacBook Pro上参加一个视频会议会立即导致多个内核的使用率维持在100%,并且导致风扇工作最大化。在笔记本电脑上使用Teams会导致电池寿命明显缩短。我知道这是一个在Mac电脑上运行的Electron应用程序,但拜托……Teams有一个安卓版原生应用程序,我只是尝试了很短时间,但它几乎把我的OnePlus 6t手机的电池寿命减少了一半,从原先的30小时降到了15小时。一周后我就把它卸载了。而如此同时,安卓版的 Slack客户端对手机电池寿命没有明显影响。

缓存/搜索

这个功能在任何平台上表现都很糟糕。不清楚搜索的范围是什么,它只在本地缓存了非常短的历史记录。其他的东西都必须远程获取,所以在搜索结果上滚动是痛苦的,根本动不了。如果你休假回来需要查看你前几天的消息,或者你想检查你的多个聊天话题,你会发现非常痛苦。

没有Linux客户端

尽管有成千上万的人提出请求,但微软还没有开发出Linux客户端。你可以用包装器欺骗Web客户机,并拥有近乎本地的体验,甚至包括视频会议,但是你不能与它共享桌面。这有点像Slack充满希望的黑暗模式(Teams确实有这种模式,安卓版的Slack也有这种模式)。开发Linux客户端显然不难,他们只是不想这么做。就在上周,有传言说这件事终于要发生了。是不是真是这样,让我们拭目以待!

 

640?wx_fmt=png

结束语

 

微软Teams是一个解决不存在的问题的解决方案。它很容易卖给那些对微软上瘾的组织,所以我不希望它消失。就像那些为其数据中心购买了SharePoint和Exchange许可证的老的组织一样,现在他们正迁移到Azure平台以购买更多的SharePoint和Exchange许可证(但是在云端),所以开始使用Teams的都是一些自以为是的组织或者有一个自以为是的客户代表的组织。因为当你没有使用过任何不同的东西时,通常都害怕新生事物,并且不具备真正理解IM客户的“专业知识”(或开发它的愿望),那么Teams就很容易卖给你了。

另一方面,如果你在一个技术组织,或者你的组织有任何其它选择,那么我建议你离Teams越远越好。你可以使用Slack,也可以使用Rocketchat,或者使用任何其他类似的工具。Teams做的大多数事情都令人难以忍受,而它做得好的事情都是基于集中控制,即从用户手中夺走控制权,你必须忍受不可配置的提醒,不断地打断你的工作!

就我个人而言,我最常问的一个面试问题是——“你的桌面工作软件是什么”。如果你的答案是Teams或可能是Teams,那么这个面试对我来说就差不多结束了。

 

 

 

编者注:对以上述观点的许多反驳似乎都是“这是一个管理设置”这样的形式。对我来说,这是一个很大的问题。微软企业群件平台上的99%的默认设置值在大型组织中永远不会更改,尤其是在它们用于自上次策略审查以来出现的新功能时。大型组织中存在巨大的惰性,几乎没有人被允许参与决策过程,加之把关人(IT)也要把关。

当然,你可以责怪用户,也可以责怪管理员,但从根本上说,这些问题并不应该存在,比如说在Slack中就不存在。对通知行为之类的事情进行集中控制确实是一个真正的问题。

原文:https://medium.com/@joshuamkite/the-horror-of-microsoft-teams-c18360712361

本文为CSDN翻译,转载请注明来源出处。

【END】

这些项目,击败90%的AI工程师!

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

640?wx_fmt=jpeg

 热 文 推 荐 

☞重磅!全球首个可视化联邦学习产品与联邦pipeline生产服务上线

☞ 华为暂没有推出鸿蒙手机计划;苹果否认 iPhone 辐射超标;Kotlin 1.3.50 发布 | 极客头条

☞ 如何搞懂容器的核心技术点?

☞ 程序员破解推荐系统瓶颈,带来超百亿收入增量!

☞ 我是如何通过开源项目月入 10 万的?

语音识别技术简史

意大利黑手党四大家族做了条"犯罪链", 把家族的权利被分的明明白白的……

Istio 庖丁解牛六:多集群网格应用场景

如何写出让同事无法维护的代码?

 

 

 

 

 


 

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

 

 

 

 

 

 

640?wx_fmt=png

你点的每个“在看”,我都认真当成了喜欢

展开阅读全文

软件测试7

09-27

同研发相比, 软件测试有一些比较独特的地方, 这里,给大家介绍软件测试的7个内在的敌人,需要我们一起去克服:rnrnrn [b]1. 没有历史传承:[/b] 软件测试的知识缺乏系统的历史传承和统一的共享。每个人都是经验之谈,每个人入行后都不知所措,无从下手。 没有一本明确的书籍能告诉我们先学习什么, 再学习什么。几乎每一个所谓的“软件测试专家” 都在 re-invent the wheel。rnrn [b]2. 重复,重复再重复:[/b] 一个版本接着一个版本,一个迭代接着一个迭代。软件测试充满了重复的劳动。 当重复的劳动一遍一遍的下达下来,仿佛没有尽头的时候, 测试工程师的问题就出来了:“我们的前途在哪里?”rnrn [b]3. 健忘症:[/b]从一个项目匆忙奔到下一个项目。很少对上一个测试项目的得失进行有效的总结。 上一个项目发现的最大的 Bug 是什么, 为什么会发现。 当前面临的问题往往在过去已经有了很好的解决方法,而不去总结就永远得不到最好的解决方法。rnrn [b]4. 厌烦:[/b] 测试有的时候是很枯燥的, 不但开发人员,设计人员会这么想,每一个测试人员都应该正确面对测试的本质。 无休止的测试用例执行, 发 Bug,验证 Bug,脚本开发会慢慢的让一个工程师感到厌烦。rnrn [b]5. 缺乏主人翁意识:[/b] 没有站在用户的角度思考测试问题是很多测试工程师的毛病。 就像你买了一个房子,不管之前房屋验收人员是如何验收,如何的细致,等你住进去了之后, 总能发现一些不尽人意的地方。 而测试,就是要把自己放在房子所有者,而不是房子验收者的位置来进行测试。rnrn [b]6. 黑盒:[/b] 能想象一下被蒙着眼睛来打电脑游戏的难度有多大么?软件测试的 90% 就是这样的黑盒测试,我们不知道软件里面有什么,软件也是看不见摸不着的东西。一个好的测试人员,应该跳出黑盒的圈子,明白在一个版本中,开发人员的单元测试做了多少,软件代码的改动量到底有多少,改动在哪里等,而来调整自己的测试策略。 rnrn [b]7. 软弱:[/b]面对开发的强势,和没有经过必要的内部测试就交付给测试团队的版本,不能据理力争。面对有重大缺陷的版本,在发布会议上不能坚持原则,易于妥协,让测试团队在研发过程中处于被动驱使和弱势。这样,一个测试团队就不能够做到真正的质量保证者的角色。rnrn转自:[url=http://www.sigma-rt.com.cn/support/magazine/homepage.php]www.sigma-rt.com.cn[/url]rn 论坛

Symbian C++ 三

04-17

1. 两段构造rnrn依赖于CBase的两段构造,完全可以用如下代码取代:rnrn#define NEWLD(ClassExp) new(true, false) ClassExp; CleanupStack::Pop(1);rnrninline TAny * operator new(TUint aSize, bool, bool)rnrn ASSERT(aSize != 0);rnrn TAny * pTmp = User::AllocLC(aSize);rnrn return pTmp;rnrnrninline TAny * operator new[](TUint aSize, bool, bool)rnrn ASSERT(aSize != 0);rnrn TAny * pTmp = User::AllocLC(aSize);rnrn return pTmp;rnrnrn只要每个类的头文件包含以上的代码,就可以不依赖继承CBase类的两段构造。rnrn2. 异常退出rnrn以下代码使用了Symbian的异常退出语句,来模拟标准的C++异常处理,rnrn#define TRY(exp) \rn \rn bool _ep_Handle = false; \rn TRAPD(_ep_Exception, exp); rnrn#define CATCH_BEGIN \rn switch(_ep_Exception) \rn \rn case KErrNone: \rn _ep_Handle = true; \rn break;rnrn#define CASE(err) \rn case err: \rn _ep_Handle = true; \rnrn#define DEFAULT \rn default: \rn _ep_Handle = true;rnrn#define CATCH_END \rn \rn if (!_ep_Handle) \rn \rn User::Leave(_ep_Exception); \rn \rn rnrn#define THROW(err) \rn User::Leave(err)rnrn#define THROW_DEFAULT \rn User::Leave(_ep_Exception)rnrn难道编写简单、容易移植的代码就那么难么?rnrn3. CActive 继承于 CBasernrn难道就不能增加一个同时继承于 CBase 和 CActive 的 CBaseActive 类么?rn非得让CActive继承于 CBase类么?rn干净的接口难道就不应该存在么 ?rn非要限制CActiveScheduler能够处理活动对象类型为CBase么?rnrn刚开始看Symbian C++,感觉非常的不爽,真心希望Symbian在下一版的平台代码上能够稍微改进一下。 论坛

没有更多推荐了,返回首页