팀즈 만든 놈들은 지옥에나 가라

마이크로소프트 팀즈는 형편없습니다. 동작이 문제가 아니라 채팅과 채널로 구분된 개념은 여러 다른 도구와 충돌하며 사람들이 자연스럽게 서로 말할 수 없게 만드는 나쁜 도구입니다.

팀즈 만든 놈들은 지옥에나 가라

슬랙이 나타나기 이전까지 프로젝트 단위의 제대로 된 인스턴트 메시징 솔루션이 없었습니다. 아주 아주 아주 오래 전에는 당시 마이크로소프트에서 개발한 MSN 메신저라는 제품을 사용했는데 이 제품은 개인 간의 메시징을 목표로 개발되었기 때문에 같은 말을 여러 사람에게 한번에 전달하거나 여러 사람이 한 곳에서 이야기할 수는 없었습니다. 그래서 여러 사람들에게 한 번에 전달해야 하는 말은 메일을 통하고 개인 간에 이야기해야 할 때는 메신저를 사용하는 식으로 정리됐습니다. 메일에 비해 메신저는 압도적으로 말하기 편했는데 가장 큰 이유는 제목, 내용을 구분해서 쓰거나 인사말을 쓰거나 받는 사람을 입력할 필요가 없었기 때문입니다. 또 한 번 보낸 다음 수정하는 접근 대신 한 번 보낸 다음 바로 이어서 다음 메시지를 보내면 됐는데 이는 메일에 첨부파일을 빠뜨리는 종류의 실수를 근본적으로 불가능하게 만듭니다. 첨부파일을 빠뜨렸다면 그냥 바로 다음 메시지에 파일을 전송하면 됐기 때문입니다.

회사 전체에 이 메신저가 워낙 널리 퍼져 사용되었기 때문에 사실상 업무용 메신저 역할을 하고 있었고 회사 역시 이 사실을 알고 있었습니다. 하지만 애초에 업무용으로 개발되지는 않아 보안에 극도로 취약했는데 당시에는 큰 문제가 되지 않았지만 모든 메시지는 암호화 되지 않은 채 그냥 인터넷을 통해 전송되었고 이 사실을 알고 있던 회사는 이 메시지에 관심을 가졌을 겁니다. 한편 어떤 회사에서는 회사 전체 수준의 구조조정을 수행한 적이 있는데 회사가 구조조정 직전에 맨 처음 한 행동은 그 동안 회사 전체에 걸쳐 비공식적으로 사용되어 온 메신저를 차단하는 것이었습니다. 어느 날 출근해 습관처럼 메신저에 로그인 하려 했지만 무슨 짓을 해도 메신저에 로그인 할 수가 없었고 회사 내부 네트워크를 사용한 로그인이 막혀 있다는 사실을 알게 됩니다. 이와 함께 회사가 구조조정을 수행한다는 사실을 함께 알게 됐지만 메신저가 차단된 상황에서 구성원들은 서로의 현재 상태를 기민하게 주고 받을 수가 없었고 회사는 자신의 행동을 수행하는데 큰 이점을 누립니다.

어떤 회사에서는 출근하니 자리에 컴퓨터와 함께 내선 전화를 줬는데 처음에는 이 전화를 정말 사용해야 하는 것인지 좀 의심스러웠습니다. 하지만 메일보다 전화를 편하게 생각하는 분들로부터 가끔 전화를 받곤 했는데 네 자리로 된 내선 번호로 전화를 거는 경험은 처음이어서 굉장히 어색했습니다. 또 나중에는 이 전화를 사용하는 행동이 여전히 어색해 이 전화에서 제공하는 기능인 내선 전화가 걸려오면 미리 지정된 개인 기계로 전화가 걸려오도록 설정해 익숙한 제 전화를 통해 내선 전화를 받곤 했습니다. 덕분에 한밤중에도 저와 이름이 같은 다른 부서 사람을 찾는 전화를 받을 때도 있었지만 대체로 나쁘지 않았습니다.

회사가 판교에 있는 아주 큰 건물로 옮기자 협업 해야 하는 다른 부서 사람들이 너무나 멀리 떨어진 곳에 앉아 있게 됐는데 이 분들과 이야기하기 위해 먼 길을 갔다가 자리를 비운 상태이면 허탕을 치고 돌아오며 시간을 많이 낭비해야 했기에 한동안 내선 전화는 자리에 있는지 확인하는 용도로 사용되거나 다른 누군가를 자리로 부르는데 사용되었습니다. 요즘은 메신저 사기를 시작하는 말로 “자리에 있어?”를 사용하는 것이 밈처럼 굳어졌지만 이 때는 정말로 자리로 걸려온 전화를 받자 아는 목소리가 “우진님 지금 자리에 있어요?”라고 묻는 것이 당연했습니다.

한 프로젝트에서는 보안을 위해 인터넷을 사용할 수 있는 외부망과 인터넷에 접근할 수 없지만 개발 자원에는 접근할 수 있는 내부망을 각각 사용해 개발했는데 외부망에는 회사 인트라넷과 메신저 따위를 제공했지만 개발망에는 그야말로 지라, 컨플루언스, 형상관리도구 이외에는 아무 것도 없었습니다. 하지만 주요 업무를 개발망에서 수행해야 했기에 그렇게 아무 것도 없는 환경에서 일하고 또 외부망에 도착한 메시지와 메일에 하루 종일 응답하지 않는데 모두가 익숙해졌지만 여전히 편안하게 업무 이야기를 여러 사람들과 하고 싶은 필요가 남아 있었습니다. 뭔가 방법이 없을까 고민하다가 외부망에서 IRC 서버와 클라이언트를 내부망에 반입해 채팅 서비스를 열어 꽤 활발한 반응을 이끌어냅니다. IRC 클라이언트를 처음 사용해 보는 분들은 좀 어색해 하기도 했지만 자유롭게 채널을 생성하고 여러 사람이 한 방에 모여 편하게 말을 주고 받을 수 있는 환경은 꽤 잘 동작했습니다. 하다못해 이전에는 미리 전화를 걸어 자리에 있는지 확인한 다음 찾아가야 간신히 만날 수 있었던 다른 부서 사람들이 한 방에 모여 있으니 그들과 점심 뭐 먹을지 고민하는 주제조차 편안하게 이야기할 수 있었습니다. 보안 부서가 갑자기 여러 사람들의 기계에 같은 이름의 처음 보는 프로세스가 실행되고 또 누군가의 기계가 서버 역할을 한다는 사실을 파악해 이를 차단하기 전까지는요.

이후 어느 프로젝트에서 슬랙을 사용하기 시작하면서 상황이 크게 달라졌는데 그 이전에도 이미 야머 같은 나름 업무용 메신저로 제작된 서비스를 사용해 본 적이 있었지만 슬랙이야말로 한 번에 여러 사람들이 한 채널에 상주하며 서로 동시에 여러 사람을 대상으로 이야기할 수 있는 환경을 제공합니다. 슬랙은 IRC와 닮았지만 처음부터 업무 목적 단위로 채널을 구분하거나 부서 단위로 채널을 구분하는 사용 가이드를 함께 제공해 IRC를 접해 본 적 없는 사람들도 이 단톡방에 어렵지 않게 적응할 수 있도록 했고 여러 외부 서비스와 연동해 여러 자동화된 메시지를 뿌릴 수 있도록 했습니다. 이 역시 IRC의 봇과 비슷했는데 빌드머신이 빌드를 마치면 빌드를 마쳤다는 메시지와 함께 패키징 된 빌드를 다운로드 할 수 있는 링크를 함께 제공하고 또 밖에 비가 내리기 시작하면 이를 알려주거나 누군가의 생일이면 이 사실을 알려주고 또 모두가 함께 하는 게임의 업데이트 여부, 스태미너 충전 시점을 알려주도록 하는 등 온갖 용도로 연동해 사용할 수 있었는데 이 점이야말로 슬랙을 강력하게 만들어주는 특징입니다. 슬랙에는 새로 작성된 회의록과 주소, 나에게 할당된 지라 이슈, 내가 읽어야 할 컨플루언스 문서가 조건에 맞게 채팅 모양으로 나타났고 어느 채널이나 기본적으로 채팅방 모양이었기에 딱 한번만 채팅에 익숙해지만 그 다음의 활용을 걱정할 필요가 없습니다.

슬랙은 기본적으로 공개 채널을 생성하고 필요에 따라 비공개 채널을 생성할 수 있었기에 어지간한 업무 채널은 공개로 만들어졌습니다. 가령 게임에 아주 큰 기능을 새로 개발하려는데 이 기능 개발에 관련된 사람들이 활발하게 대화할 공간이 필요하지만 이들의 대화가 다른 사람들의 업무를 방해하지 않기를 원한다면 공개 채널을 만들어 필요한 사람들을 초대한 다음 대화를 시작할 수 있었습니다. 하지만 채널은 공개되어 있기에 이 채널의 존재를 모든 사람들이 알 수 있고 이 채널에서 오가는 대화가 궁금하다면 누구나 자유롭게 채널에 입장해 대화를 보고 또 필요하다면 참여할 수 있었습니다. 여러 가지 주제에 관심을 가진 사람들은 다양한 채널에 상주하고 있었고 보다 자기 업무에 집중하고 싶은 사람들은 보다 적은 채널에만 상주하고 있었는데 이런 행동은 대체로 자유로웠고 이 업무에 직접적으로 관여하지 않는 사람들이 채널에 들어와 있어도 딱히 문제 삼지 않았습니다. 만약 정말 보안이 필요한 주제에 대해 대화한다면 처음부터 비공개 채널을 만들면 됐습니다.

또 다른 프로젝트에서는 회사에 차마 슬랙을 사 달라고 말하기 뭣한 상황이어서 내부 인력의 시급을 사용해 내부망에 매터모스트를 설치했는데 일단 대화까지는 슬랙과 비슷해 나쁘지 않았지만 슬랙에서 당연하게 사용하던 여러 자동화 기능을 붙이려고 하자 문제가 생기기 시작합니다. 빌드머신의 상태에 따라 메시지를 받고 특정 지라의 진행 상황을 파악하고 또 컨플루언스 페이지의 업데이트를 파악하고 싶었지만 당시 메터모스트는 그런 기능을 슬랙 만큼 편안하고 또 다양하게 제공하지는 않았습니다. 특히 당시에는 메시지를 읽고 명령어를 인식해 그 결과를 표시하는 단순한 결과를 제공하려고 해도 슬랙에서 API를 통해 메시지를 읽다가 명령어를 인식하는 단순한 로직 대신 명령어를 인식하기 위해 매 메시지에 정규표현식을 사용해야 해서 명령어와 인자를 구분하는 단순한 목표를 달성하는 과정을 상당히 피곤하게 만들었습니다. 하지만 일단 그럭저럭 구축된 대화 인프라는 한동안 잘 동작했는데 어느 날 새로 오신 보스가 자신이 이전 회사에서 사용하던 네이버웤스를 도입하면서 상황이 크게 달라집니다.

당시 네이버웤스는 라인메신저와 거의 똑같은 인터페이스에 회사 인프라에 쉽게 붙일 수 있도록 만들어진 것이 전부였는데 처음 도입되었을 때 사람들은 아무 내용 없는 네이버 블로그 글에서 쉽게 볼 수 있던 상대방을 약올리는 것 같은 라인 캐릭터 스티커를 사용하며 즐거워했지만 이내 뭔가 이상한 점들을 깨닫기 시작합니다. 일단 당시 네이버웤스는 라인 메신저와 마찬가지로 메시지에 포멧을 거의 설정할 수 없었는데 이전에 슬랙이나 메터모스트에서 메시지에 포멧을 설정해 채팅 도중 짧은 보고 메시지를 편하게 작성하고 또 할일 목록을 블릿포인트에 따라 나열하고 진행에 따라 메시지에 취소선을 표시하며 상황을 공유하는 식으로 사용하곤 했는데 네이버웤스는 이런 사용 자체가 불가능했습니다. 또 슬랙이나 메터모스트, 그리고 IRC가 줄 단위로 메시지를 주고 받는 방식으로 메시지를 좀 더 많이 입력할 수 있을 것처럼 보이는 인터페이스였던데 비해 네이버웤스는 메시지 하나하나를 말풍선 단위로 묶어 표시함으로써 한 사람이 문장 하나를 완정하기 위해 매 띄어쓰기마다 엔터를 눌러 여러 말풍선을 만들어낼 때 이를 묶어 표시하지 않았는데 덕분에 업무용 메신저임에도 개인 간의 메시징에 흔히 사용할 법한 아주 짧은 여러 메시지를 연달아 보내는 사람들이 늘어납니다. 별로 길지도 않은 문장 전체를 읽기 위해 말풍선 아홉 개로 구성된 모든 메시지가 차례로 도착하기를 기다리며 사람들은 지쳐 갔습니다.

네이버웤스의 가장 근본적인 이상한 점은 바로 채널을 생성할 때 공개 여부 옵션이 슬랙과 반대였다는 점입니다. 슬랙은 채널을 생성할 때 기본값이 공개, 선택에 따라 비공개로 바꿀 수 있었습니다. 그런데 네이버웤스는 모든 채널이 기본으로 비공개, 선택에 따라 공개로 바꿀 수 있었는데 이 점이 똑같이 업무용 메신저를 사용하면서도 사람들 사이에 정보 수준에 큰 차이를 만들어냅니다. 이전과 같이 업무 목적에 따라 여러 채널을 만들고 이에 해당하는 사람들을 채널에 초대해 대화를 하는데 까지는 이전과 똑같았지만 이제 개개인은 초대 받지 않는 한 다른 비공개 채널의 존재를 알 수 없었고 존재를 모르는 이상 입장을 시도할 수도 없었습니다. 비슷한 기능이 서로 다른 채널에서 동시에 서로 다른 사람들에 의해 논의되어 각자가 개발한 다음 같은 빌드에 두 가지 비슷한 서로 다른 기능이 동작하는 모습을 본 다음에야 서로 상대 채널의 존재와 이 채널에 의해 개발된 기능의 존재에 대해 파악할 수 있었습니다. 또 이전과 같이 여러 가지 주제에 호기심을 가지는 사람들이 설 자리가 없어졌습니다. 만약 이들은 채널의 존재만이라도 할 수 있었다면 활발하게 자신을 초대해 달라고 말했을 겁니다. 하지만 채널의 존재를 모르는 이상 아무 것도 할 수가 없었습니다. 네이버웤스는 잘 동작했지만 사람들 사이에 정보 격차를 만들어냈고 이는 모르는 사람에게는 아무 일도 일어나지 않은 것과 같았지만 아는 사람들에게는 이 정보 격차를 권한으로 작용해 썩 좋지는 않은 결과를 만들어냅니다.

마이크로소프트 팀즈를 사용하기 시작했는데 팀즈에 대해서는 이전부터 인식이 좋지 않았습니다. 일단 윈도우 11에 번들로 탑재되어 사용하지도 않는 메신저가 화면 중앙에 떡하니 박혀 있어 절대 눌러서는 안되지만 가장 누르기 좋은 곳에 있는 ‘NATE’나 ‘MagicN’ 같은 버튼처럼 인식됩니다. 또 윈도우 11 광고에는 분명 친구나 가족과 연결될 수 있는 도구라고 소개했지만 팀즈를 사용하는 친구나 가족은 존재하지 않았습니다. 아마도 그 마이크로소프트 광고에만 존재하는 친구와 가족이 아니었을까 싶습니다. 그런 팀즈는 슬랙, 메터모스트, 네이버웤스 같은 다른 업무용 메신저를 사용하며 그 존재를 알고는 있었지만 - 설치하지 않아도 그냥 설치되고 그냥 실행되니까 - 직접적으로 사용할 일이 없었는데 드디어 사용할 일이 생겼습니다. 업무용 메신저 답게 회사의 액티브디렉토리에 연동되어 윈도우 로그인과 함께 로그인 되자 모든 직원들의 정보가 나타나고 이들과 쉽게 대화를 시작할 수 있었습니다. 네이버웤스와 달리 말을 말풍선 모양으로 처리하지 않아 사람들이 개인용 메신저와 달리 말을 좀 더 길게 입력하도록 유도한다는 점에서 나쁘지 않았고 애저 연동을 통해 메터모스트보다는 좀 더 편한 연동 및 자동화를 제공하는 점도 괜찮아 보였습니다.

그런데 팀즈는 네이버웤스에서 본 가장 나쁜 특징인 비공개 채널을 기본으로 생성해 사람들 사이에 정보수준 차이를 적극적으로 만들어내는 지독한 단점은 우습게 만들어버리는 더 심각한 구조적인 문제가 있었습니다. 팀즈는 다른 업무용 메신저와 달리 채널과 채팅을 구분합니다. 지금까지 언급한 여러 업무용 메신저의 ‘채널’이란 사람들이 입장해 있고 메시지를 입력하는 곳에 뭔가 타이핑한 다음 엔터 키를 누르면 그 메시지가 여러 사람에게 전달되는 구조를 말하는 것이었습니다. 그리고 채팅 만으로 이야기하기에는 좀 긴 내용을 말하려면 포멧을 조정해 좀 더 긴 메시지를 작성한 다음 보낼 수도 있었습니다. 그리고 그보다 더 긴 내용을 말하고 싶으면 처음부터 내용을 컨플루언스에 작성한 다음 그 주소를 공유하는 식으로 일했습니다. 그런데 팀즈의 채널은 우리가 익숙하게 생각하던 그 메시지를 주고 받는 채널이 아니라 ‘게시물'을 올리는 기능을 합니다. 게시판과는 약간 다르게 제목과 내용으로 구성된 게시물이 시간 순서에 따라 새 게시물이 아래쪽에 나타나는 식으로 구성되는데 이는 근본적으로 채팅과는 다릅니다.

팀즈에서 ‘채널’이 채팅이 아니듯 ‘채팅’은 별도로 생성할 수 있는데 이 채팅이 우리들이 다른 업무용 메신저에서 이전에 ‘채널’이라고 부르던 것과 같은 기능을 합니다. 여기서는 이전과 똑같이 하고 싶은 말을 타이핑 하고 엔터 키를 누르면 모든 사람들에게 메시지 그대로 전달되고 편안하게 다른 사람들과 이야기할 수 있는 환경을 제공합니다. 제가 경험한 네이버웤스와 달리 채팅에서 텍스트에 포멧을 적용할 수 있어 블릿포인트로 구성된 간단한 목록을 입력할 수도 있었고 또 조금 더 긴 내용을 공유하기 위해 컨플루언스에 페이지를 만드는 대신 ‘채널’에 게시물을 만든 다음 이 게시물의 링크를 공유하는 식으로 팀즈 안에서 어지간한 길이의 문서를 공유할 수도 있었습니다. 팀즈를 떠나지 않고 어지간한 길이의 문서를 공유할 수 있다는 점은 언뜻 장점처럼 보이지만 우리들이 사용하는 문서 작성 도구는 사실 컨플루언스이고 컨플루언스는 조각 문서들이 모일수록 점점 더 강력해진다는 점을 고려하면 일부 조각 문서가 팀즈의 채널로 분산된다는 점을 장점이라고만 말하기는 어렵다고 생각합니다. 하지만 팀즈가 컨플루언스로 가야 할 조각 문서를 삼킨 채 컨플루언스 검색에 한번에 표시되지 못하도록 한다는 점 정도는 팀즈 만든 사람들을 지옥에나 가라고 말할 정도로 심각한 단점은 아닙니다.

마이크로소프트 팀즈의 가장 지독한 동작은 사람들이 어떤 주제에 대해 함께 의견을 나눌 어떤 가상의 공간을 생성하기 위해 ‘채널’을 생성해야 할 지 아니면 ‘채팅’을 생성해야 할 지 헛갈리게 만든다는 점입니다. 특히 이는 이전에 슬랙을 사용하며 어떤 주제에 대해 새로운 이야기를 시작하려면 ‘채널’을 만들어야 한다고 학습한 사람들이 팀즈에서도 같은 상황에 ‘채널’을 만들어야 한다고 생각하게 만듭니다. 그래서 이전에 하던 것과 똑같이 ‘채널’을 만들었지만 팀즈의 채널은 채팅하는 곳이 아니라 게시물을 올리는 곳으로 모양과 역할이 완전히 다릅니다. ‘채팅’에 글을 올리는데는 그저 하고 싶은 말을 타이핑하고 엔터 키를 누르기만 하면 됐고 다른 사람들도 똑같이 행동합니다. 그런데 팀즈의 ‘채널’에 글을 올리고 싶으면 마치 메일을 작성하듯 각 잡고 제목과 내용을 작성해야 합니다. 저는 그저 ‘지금 필드 레벨로 이동하면 크래시되는데 저만 그런가요?’라고 여러 사람들이 모인 곳에 말하고 싶은데 이 말을 할 수 있는 곳이 채널 뿐이라면 팀즈에서는 ‘제목: 질문, 내용: 안녕하세요. 기획팀 김우진입니다. 지금 필드 레벨로 이동하면 크래시되는데 저만 그런가요?’ 라고 적은 다음 글을 올려야만 합니다. 실제로 저런 글을 올린 적은 없는데 그도 그럴 것이 채널에는 좀 더 본격적이고 심오한 글들이 올라와 저런 시시껄렁한 질문을 올리면 안될 것 같은 인상을 줬고 또 고작 저런 질문을 하기 위해 제목과 내용을 각 잡고 쓰고 싶지도 않았기 때문입니다.

물론 팀즈에서도 채팅을 생성하면 이전에 슬랙이나 메타모스트를 사용하던 것과 같은 요령으로 사용할 수 있었지만 이번에는 네이버웤스가 하던 못된 버릇대로 채팅은 주로 비공개로 생성되어 그 존재를 알 수 없고 둘러볼 수 있는 채널은 모두 사실상 ‘게시판’에 가까워 짧고 단순한 말을 할 수 있는 곳은 어디에도 없었습니다. 팀즈의 채널은 채팅과 헛갈려 간단한 말을 주고 받아야 하는 요구사항을 제목과 내용을 각 잡고 써야 하는 게시판으로 만들어 채팅을 주고 받을 수 없도록 만듭니다. 막상 채팅은 주로 비공개로 생성되어 그 존재를 알 수 없어 네이버웤스의 고약한 동작과 마찬가지로 호기심 많은 사람들의 정보 획득 욕구를 근본적으로 파괴합니다. 그럼에도 다른 업무용 메신저가 ‘채널’이라고 부르는 ‘채팅’을 팀즈 혼자 ‘채널’이라고 부름으로써 이를 깊이 생각하지 않고 그냥 만들면 ‘채팅’이 필요한 상황에 ‘게시판’을 만드는 실수를 하도록 유도하면서도 정작 이 실수에 대해 이야기할 적당한 ‘채팅’할 공간을 제공하지 않음으로써 문제를 해결할 수도 없게 만듭니다.

마이크로소프트 팀즈는 다른 업무용 채팅 프로그램과 달리 사실상 게시판 소프트웨어에 채팅 기능이 추가되어 있는 나머지와는 좀 다른 관점의 업무용 메시징 소프트웨어입니다. 채팅 기능이 없지 않지만 ‘채팅’을 생성해야만 이 기능을 사용할 수 있고 다른 소프트웨어에서 그랬듯 ‘채널’을 만들면 원하지 않게 게시판을 만들어 많은 사람들이 말할 공간을 효과적으로 없앱니다. 마이크로소프트 팀즈가 ‘채널’이라고 말하는 게시판은 근본적으로 같은 회사에서 만드는 이메일 및 일정관리 소프트웨어인 아웃룩의 기능과 충돌해 같은 메시지를 이메일을 통해 보내야 할 지 아니면 채널을 통해 보내야 할 지 고민하게 만들 뿐 아니라 일정은 아웃룩과 팀즈 양쪽 모두에서 동일하게 보여줘 워크플로우를 안정시키기 어렵게 만듭니다.

근본적으로 팀즈는 메시징 소프트웨어가 아닙니다. 그러면서도 메시징 소프트웨어로써 거의 무료에 가깝게 제공되어 이 기능을 진지하게 생각하지 않는 사람들이 쉽게 실수하게 만들고 이 실수가 여러 사람들의 입을 닫게 만들면서도 이 사실을 말할 공간조차 없도록 만들고 있습니다. 이런 특징과 이 특징에 의한 결과야말로 마이크로소프트 팀즈를 이런 형태로 개발하는데 공헌한 모든 사람들이 지금 당장 지옥에 떨어져 지구에 산소가 고갈 되는 그 순간까지 영원히 고통 받아야 한다고 생각하는 이유입니다. 마이크로소프트 팀즈 개발에 관여한 모든 사람들은 지옥에 가야 합니다.