프로젝트 관리와 협업 도구에 대한 고찰(Reflections on project management and collaboration tools)

CHAZM LAB
29 min readJun 22, 2024

--

Below is an English translation of the article at DeepL. Please note that it is a machine translation, so there may be some awkwardness.

프로젝트 관리의 필요성

프로젝트란 무엇이고 왜 관리해야 할까요?

프로젝트란 목표를 달성하기 위해 일정 기간 동안 수행되는 작업의 집합입니다. 한정된 자원으로 정해진 기간에 목표를 달성하여야 합니다. 프로젝트 관리자(Project Manager)는 프로젝트의 특성을 고려하여 목표를 달성하고, 자원을 효율적으로 관리하며, 일정을 준수하기 위해 조직하고 지휘합니다.

우린 고객사(클라이언트)의 요구를 들어주어야 하는 에이전시입니다. 다양한 산업군과 다양한 고객 담당자를 만납니다. 그들의 다양하고 넓은 범위의 요구사항을 정제하여야 하고, 그들의 요구사항에 해당하는 산출물의 범위를 지정해야 합니다. 또한 산출물을 전달하는 방식도 고려하여야 하고, 모든 커뮤니케이션을 기록하여야 합니다. 그렇게 하지 않는다면 소통에도 문제가 발생하지만 책임 소재의 여부가 파악되지 않고 어디서부터 문제가 발생하는지 알기 어려워 클라이언트와 싸우는 일이 발생합니다.

IT 커뮤니티에 가면 종종 이러한 이야기들이 나옵니다. 클라(클라이언트의 줄임말)와 말이 안 통하고 답답하다는 이야기들. 여러 문서의 형태를 만들고 산출물을 전달하는 것 또한 문서화하여 해당 문서를 이메일로 전달합니다. 실제 디자인이나 개발에 대한 실무를 수행하는 것보다 문서지옥의 늪에 빠지게 됩니다. 그리고 어떠한 작업을 끝냈는지 혼동이 됩니다. 내부의 작업 지시와 클라이언트에게 보고하는 작업을 형용하는 언어가 다르기 때문입니다.

또한 클라이언트는 IT 전문가가 아닙니다. 내부에서 사용하고 있는 Figma, GitHub와 같은 많은 서비스와 툴에 대해서 알지도 못하며 계정 또한 없는 경우가 많습니다. 이러한 보고는 결국 PDF와 문서 형태로 변환되어 전달됩니다. 이 과정에서 많은 리소스 낭비가 발생합니다.

또한 그들은 어떤 일들이 이루어지고 있는지 궁금해합니다. 우리 같은 에이전시 업체들은 이런 일을 지금 한다고 하면서 다른 일을 하기도 합니다. 왜냐하면 클라이언트가 한둘이 아니고 프로젝트가 많기 때문에 일정계획표대로 클라이언트의 업무만 수행한다면 다른 일들을 하지 못합니다.

프로젝트 관리 도구의 도입

그래서 우리는 많은 고심을 합니다. 모든 작업 내용을 기록하고, 보고하지 않아도 모든 log를 확인할 수 있는 소프트웨어, 협업 툴을 찾아봅니다. 그러다가 Height(하이트)라는 서비스를 알게 되었습니다. Height 이전은 협업 툴 유목민이었습니다. 어떤 기능이 마음에 들어서 사용하기로 했다면 꼭 2%는 나사가 빠져 있었습니다. 협업 툴이 대수냐? 내부의 컨벤션과 같은 규약이 중요한 것이 아니냐 할 수도 있겠습니다.

저희가 협업 툴을 옮겨다니던 때는 2020년으로 코로나19(Covid-19)가 한창이던 때입니다. 일주일에 한 번은 재택근무하던 것을 일주일에 한 번 출퇴근으로 정하였고 결국 강남에 있던 사무실을 뺐습니다. Invision(현재 Miro에 인수된 handoff 서비스)의 사례를 보면서 100% 원격근무에 대한 열망이 피어올랐습니다. 문제는 오프라인으로는 건너가서 이야기할 수 있었던 사소한 요청도 무조건 텍스트로 남겨야 하는 겁니다. 처음에는 Slack으로 대화를 하고 todo를 엑셀에 정리하여 확인했습니다.

“이거”

  • “이거 했어?”
  • “이거?”

이러한 대화가 Slack을 가득 채웠습니다. ‘이거’에 대한 맥락을 알려면 최소 세 네 번은 대화가 오고 가야 했습니다. 또한 ‘이거’를 해결하면 그 해결에 대하여 엑셀 시트에 체크를 해줘야 했습니다. 사람인지라 체크를 깜빡하면 일이 진행이 안 된 것으로 생각할 수 있습니다. 그래서 매일 아침마다 daily scrum을 통해 전날 했던 일과 앞으로 할 일에 대해서 매일매일 회의를 진행했습니다. 원격근무는 근무만 원격지에서 하는 것이 아닌 ‘시간’에서 원격이라는 개념이 들어가야 한다고 생각했습니다. 원격을 지향하면서 우리는 사무실에 앉아 있는 사람들처럼 그대로 온라인에서 일을 수행하는 겁니다. 그게 바로 Digital Transformation일까요? 종종 정부기관에 민원을 작성할 때 온라인으로 민원을 처리하고는 합니다. 그렇지만 제출처가 온라인으로 옮겨간 것뿐 똑같이 문서 툴을 이용하여 A4 규격으로 문서를 작성하고 PDF 파일로 변환하여 업로드합니다. 온라인에서 민원을 처리할 수 있다면 문서라는 아날로그 방식을 전환해야 하는 겁니다. 그래서 완전히 새로운 방식으로 프로젝트 관리를 바꾸기로 하였습니다.

다시 Height로 돌아와서 설명하면, Height 워크스페이스에는 list(리스트)라는 개념이 있습니다. 리스트는 프로젝트가 될 수도, todo가 될 수도 있습니다. 우리는 에이전시이기 때문에 리스트에 클라이언트를 일대일로 대응했습니다. 그리고 프로젝트는 모든 작업의 최상위 작업이라고 정했습니다.

  • 리스트: 클라이언트
  • 프로젝트: 모든 작업의 최상위 작업

사업 모델 확장을 위한 생각의 확장

이유는 클라이언트가 하나여도 프로젝트는 여럿 있을 수 있기 때문입니다. 그때 우리가 클라이언트를 대하는 방식이 달라졌습니다. 이전까지는 소프트웨어 개발의 측면보다는 웹사이트 개발, 즉 홈페이지 제작이 주 사업 모델이었습니다. 그렇기 때문에 고객사의 홈페이지를 만들어주고 나면 프로젝트가 없는 겁니다. 하지만 클라이언트에 여러 프로젝트가 있을 수 있다고 가정하니 우리의 사업 모델도 확장하여 소프트웨어 개발로 확장하게 되었습니다. 여러 프로젝트를 진행할 수 있는 클라이언트를 만나기로 하였습니다. 우리의 몸집을 키우기 위해서는 우리가 잘할 수 있는 것을 어필하여 계약해야 합니다. 우리는 실력 대비 저렴한 가격을 어필하고 싶지 않았습니다. 다른 에이전시가 디자인 실력과 개발 실력을 어필하였다면 우리는 프로젝트 관리를 어필하기로 하였습니다.

이때 Height의 게스트 초대를 이용하였습니다. 특정 리스트(우리가 클라이언트로 지정한)에 고객사 담당자와 관계자들을 모두 메일로 초대하면 그들은 모두 Height를 무료로 사용할 수 있습니다. 모든 기능들을 다 사용할 수 있는 것은 아니지만 멤버가 보는 화면을 동일하게 보면서 프로젝트의 진척도를 확인할 수 있습니다. 또한 Height의 강력한 기능은 모든 작업에 채팅이 있다는 겁니다. ‘이거?’라고 물어볼 필요가 없이 그 채팅 안에서 그 작업에 대한 대화만 합니다. 또한 그 작업에 대한 모든 로그가 채팅으로 기록되기 때문에 누가 작업을 생성했고, 디스크립션을 수정하였고, 어떤 태그를 지정했고, 어떤 속성을 넣었는지 다 알 수가 있는 겁니다. 고객사에 모든 작업 내역을 공개하는 것은 리스크가 큽니다. 실수하면 다 드러나고 어떻게 일하는지를 안다는 것은 때론 독이 되어 클라이언트와의 싸움에 밀릴 수 있기 때문입니다. 하지만 우리는 오픈 주방을 택하여 모든 요리과정을 투명하게 공개하는 파인다이닝이 되기로 한 겁니다. 우리 스스로가 전문적이면 문제가 될 여지가 없습니다. 모든 것을 공개하기로 정하고 나서 처음에는 혼선이 있었지만 지금은 안정화되었습니다. 당연히 클라이언트는 만족합니다. 이메일 말고는 못 하겠다는 고지식한 곳에서도, 지방자치단체와 공공기관에서도 만족하고 있습니다. 투명한 것이 우리의 최고 가치가 되었습니다.

강력한 통합 기능

하지만 모든 것을 다 공개할 수는 없고 작업에 대한 내용이 아닌 논의와 잡담을 위해 Slack 채널은 남겨놨습니다. Height는 기본적으로 연동 기능도 아주 탄탄합니다. 우리가 생각하는 것 외의 서비스들에 대해서도 연동을 제공하기에 Height를 선택하면서 Slab 같은 서비스에 대해서도 알게 되었습니다. 지금은 Slack에서 Discord로 소통 채널을 옮겼습니다. Slack과 Discord에 둘 다 강력한 통합을 제공하여, Height task 링크나 Task ID를 입력하면 Slack/Discord에 Height 작업에 대한 정보가 뜨며 동시에 해당 작업의 채팅에 Slack/Discord에 남긴 대화 내용이 입력됩니다. 다른 소통 채널에서 작업 이야기를 해도 이를 로그에 남겨 맥락을 놓치지 않게 한 Height의 배려에 놀랐습니다.

또한 Figma와 통합도 매우 강력합니다. Figma의 Height 플러그인을 실행하여 최상위 작업을 연동하면 Frame이나 Section을 작업에 링크할 수 있습니다. 링크하는 순간 내가 잡은 Frame이나 Section 혹은 전체가 이미지로 캡처되어 작업 채팅에 남겨집니다. 클라이언트에게 Figma 가입을 요구할 필요가 없습니다. 또한 작업 하나에 디자인 하나(여럿도 가능)를 연결할 수 있어 내부적으로도 ‘이거’ 이렇게 바꾸고 저렇게 작업하라고 코멘트로 이야기할 필요 없이 채팅으로 소통할 수 있습니다. 또한 항상 동적으로 저장이 되는 것이 아니고 링크한 시점에 메시지로 발송되므로 디자인 히스토리를 관리할 수 있게 되었습니다. ‘시안3–2’ 이런 식으로 파일을 나누어서 보낼 필요가 없어지게 되었습니다. Figma는 강력한 디자인 툴이지만 항상 파일이 최신으로 동기화되기 때문에 오히려 이력 관리가 어렵습니다. 그 안에는 디자인만 있는 것이 아니라 디자인을 위한 소통의 메시지들도 여럿 있고 각종 레퍼런스들이 들어가 있기 때문에 디자인만의 이력 관리를 하는 것이 상당히 어렵습니다. 하지만 Height를 통해서 이력 관리를 할 수 있게 되었고, 모든 작업에는 고유한 ID가 있습니다. 이 작업의 ID를 이용하여 모든 컴포넌트와 디자인 요소의 이름을 지을 수 있게 되었습니다. 요소의 기능 변화로 이름이 변경되더라도 ID는 고유하기 때문에 혼동을 방지할 수 있습니다.

veiw를 바꾸지 말고 컨벤션을 만들자

Height는 또한 기본적으로 스프레드시트 형태의 뷰를 제공합니다. 스프레드시트는 모든 속성을 한눈에 확인하기 쉽다는 장점이 있지만 종속성과 연관성을 표현하기 힘듭니다. 상위 작업에 하위 작업을 추가하여 나가는 경우 점점 보기 힘들어지는 문제가 있습니다. 그래서 우리는 클래스 명명 규칙인 BEM을 응용하기로 하였습니다. 이로써 같은 위계에 있는 작업들이라 하더라도 바로 종속성과 연관성을 확인할 수 있습니다. BEM에 대한 정보는 다른 글에서 설명드리도록 하겠습니다.

GitHub와도 통합되기 때문에 Git을 모르는 비개발 인력도 commit 메시지를 확인할 수 있고 개발 작업의 진척도를 알 수 있습니다. 모두가 깜깜이처럼 일하며 뭐하는지를 보고하지 않는다면 서로 뭐하는지를 알 수 없어서 계속 확인하는 데 많은 시간을 할애하는 것을 이런 프로젝트 관리 도구의 도입으로 온전히 실무에만 집중할 수 있게 되었습니다. 이는 시간을 절약하게 되었고 그 시간은 곧 성장으로 다가왔습니다. 에이전시는 시간이 생명이며 돈입니다. 더 많은 프로젝트, 더 큰 프로젝트를 수주하여야 직원들의 급여를 줄 수 있습니다. 초급 대표님들은 더 큰 프로젝트의 수주에 자신이 없어 더 많고 작은 프로젝트를 수주하려고 합니다. 대표님들이 영업에 몰두하기 때문에 프로젝트 관리는 직원의 몫이 됩니다. 하지만 직원은 책임은 있으나 권한이 부족합니다. 그렇기 때문에 작은 회사의 시스템은 엉망이며 시스템이 엉망인 회사의 이직률은 높고 양질의 직원을 구하기가 쉽지 않습니다. 저희는 대표인 제가 모든 시스템을 만들고 그 시스템을 이룰 수 있는 강력한 툴을 도입하여 시스템을 구축할 에너지를 아낄 수 있었습니다.

직원이 아닌 소프트웨어로 auto를 구축하자

Height의 장점은 여기에서 언급한 것보다 더욱 많습니다만 프로젝트 관리에 대한 고찰이 주제이고 제목이기 때문에 Height 편에서 내용을 나누어 추가로 설명드리도록 하겠습니다. 어쨌든 저희의 시스템은 이제는 Height를 주축으로 개편되었고 발전했으며 프로젝트 관리뿐 아니라 문서와 파일 관리에도 Height를 도입하여 관리하고 있습니다. 내부에는 Copilot이라는 AI 기능이 있어 각종 자동화를 통해 일손을 덜어줍니다. 직원을 더 뽑아서 오토로 돌리는 회사가 아니라 도구를 도입하여 오토로 만든 겁니다.

지금은 누가 보면 제가 Height 신봉자인 것으로 보일 겁니다. Height에도 문제가 있고 개선하였으면 하는 요구도 있습니다. 그런 요구를 하기 위해서는 사용자가 많아야 하기 때문에 주위에 소개하고 있고 Height에 할인 쿠폰을 요구하였습니다. Height 본사와 몇 달간 소통하였고 우리 회사와 제휴하게 되었습니다. 일이 바빠 공격적인 마케팅을 하지 못했지만 주말을 틈타 오랜 숙원이었던 블로그 글쓰기를 통해 프로젝트 관리에 대한 고찰과 그 고민들을 해소해 주었던 툴에 대한 글을 작성하였습니다.

아래는 Height 프로모션 코드 신청 링크입니다.

https://bit.ly/promo_height

신청 즉시 프로모션 코드를 이메일로 받을 수 있습니다. 연간 구독 결제 시 10% 할인을 받을 수 있습니다.

The need for project management

What are projects and why do we need to manage them?

A project is a set of tasks performed over a period of time to achieve a goal. The goal must be achieved within a set timeframe with limited resources. A project manager (Project Manager) organises and directs the project to achieve the goals, manage resources efficiently, and meet the schedule, taking into account the nature of the project.

We are an agency that listens to the needs of our clients. We meet with different industries and different client representatives; we have to distill their diverse and wide-ranging requirements; we have to scope the deliverables to meet their needs; we have to consider how to deliver the deliverables; we have to record all communications; and if we don’t, we end up fighting with the client because there are miscommunications, but there’s no accountability and it’s hard to know where the problem starts.
If you go to the IT community, you’ll often hear stories like this. Stories of miscommunication and frustration with the client. It’s also about creating multiple documents and delivering deliverables in the form of emails. You end up in a documentation hellhole rather than doing any actual design or development work, and you get confused about what you’ve done. This is because the language used to describe internal work orders and the work you report to the client is different.

Also, clients are not IT experts — they don’t know about many of the services and tools we use internally, such as Figma and GitHub, and often don’t even have accounts. These reports end up being converted into PDFs and documents and delivered to them. There’s a lot of wasted resources in this process.

And they wonder what’s going on. Agencies like ours say we’re doing this now, but we’re doing other things, because we have a lot of clients and a lot of projects, and if we’re just doing the client’s work on a timeline, we can’t do other things.

On the introduction of project management tools

So we do a lot of thinking. We look for software, collaboration tools, where we can log everything, where we can see all the logs without having to report, and then we came across a service called Height. Before Height, we were collaboration tool nomads. If we liked a feature and decided to use it, there was always two per cent of the screws missing. You could say that collaboration tools are a big deal, and it’s important to have internal conventions.

The last time we moved collaboration tools around was in 2020, during the height of the Covid-19 pandemic. We went from working from home once a week to commuting once a week, and eventually got rid of our office in Gangnam. Seeing the example of Invision (a handoff service now acquired by Miro) sparked my desire to work 100% remotely. The problem was that I had to text every little request that I could have talked about offline. At first, I had conversations on Slack and organised my todo in Excel.

“This”

  • “Did you do this?”
  • “This?”

These conversations would fill up Slack, and it would take at least three or four conversations back and forth to get context on “this.” And when you solved “this,” you had to tick off the excel sheet against it. Being human, if you forgot to tick it off, people would think you didn’t make progress. So we had daily scrums every morning to talk about what we did the day before and what we were going to do in the future. We thought that remote working should be about ‘time’, not just working remotely, so we’re doing the same things online as people who are sitting in an office. Is that what Digital Transformation is all about? Often when you write a complaint to a government agency, you’re doing it online, but it’s the same thing, you’re using a document tool, you’re writing it on A4, you’re converting it to a PDF file and uploading it. If we can handle complaints online, we have to move away from the analogue of documents, so we decided to change our project management in a completely new way.

Coming back to Height, in the Height workspace, there’s a concept called a list. A list can be a project or it can be a todo. Because we’re an agency, we decided that lists corresponded to clients on a one-to-one basis, and projects were the top level of all our work.

  • List: Clients
  • Project: the top-level task of all tasks

Expand your thinking to scale your business model

That changed the way we dealt with clients, because you can have one client, but you can have multiple projects. Up until that point, our business model had been more about website development — building websites — than it was about software development. So if we built a website for a client, we didn’t have a project. But assuming that a client could have multiple projects, we expanded our business model and expanded into software development. We decided to take on clients who could have multiple projects. In order to grow our size, we need to win contracts by appealing to what we can do well. We didn’t want to sell ourselves as cheap, so while other agencies were selling design and development, we decided to sell project management.

We used Height’s guest invite feature, where you can email a specific list (which we designated as the client) and invite all of their representatives and stakeholders to use Height for free. They don’t have full access to all the features, but they can see the same screen that the members see, so they can see the progress of the project. Another powerful feature of Height is that every task has a chat, so you don’t have to ask, “Is this?” you just have a conversation about the task in that chat. And all the logs for that task are logged in the chat, so you know who created the task, who edited the description, what tags they put on it, what attributes they put on it. It’s risky to open up all your work to a client. But we chose to be an open kitchen, to be a fine-dining restaurant where everything is transparent. If we’re professional, there’s no room for problems. Once we decided to open everything up, there was some confusion at first, but now it’s stabilised. Of course, the client is happy. Even in places where you can’t do anything but email, municipalities and public authorities are happy. Being transparent has become our number one value.

Powerful integrations

But we can’t reveal everything, and we’ve saved our Slack channel for discussions and chats that aren’t about work. Height has very robust integrations out of the box. We chose Height because it offers integrations for services outside of what we thought of, so we’ve learned about services like Slab, and now we’ve moved our communication channels from Slack to Discord. Both Slack and Discord have robust integrations, so when I type in a Height task link or Task ID, information about the Height task pops up in Slack/Discord, and at the same time, the chat for that task is populated with the dialogue I’ve left in Slack/Discord. I was pleasantly surprised by Height’s thoughtfulness in logging my task conversations in other communication channels so that I didn’t lose context.

The integration with Figma is also very strong. When I run the Height plugin in Figma to link a top-level task, I can link a Frame or Section to the task. The moment you link it, the Frame, Section, or the whole thing is captured as an image and left in the task chat. I don’t have to ask the client to sign up for Figma. I can also link one design (or multiple) to a task, so I can communicate internally in the chat without having to say in comments, ‘change this to this and do that’. It also allows me to manage the history of the design, as it’s not always saved dynamically, but sent as a message at the point of linking. I don’t have to split files up and send ‘cyan3–2’ and so on. Figma is a powerful design tool, but it is difficult to manage the history because the files are always synchronised to the latest, and it is quite difficult to manage the history of the design alone because there are not only designs in it, but also many communication messages for the design, and various references. But with Height, we can manage the history, and every task has a unique ID. We can use this ID to name all components and design elements. Even if an element changes its name as its functionality changes, the ID is unique, which prevents confusion.

Don’t change the VIEW, create a convention

Height also provides a spreadsheet-like view by default. Spreadsheets have the advantage of making it easy to see all properties at a glance, but they have a hard time showing dependencies and associations. We decided to apply BEM, a class naming convention, so that we can see dependencies and associations right away, even if they are in the same hierarchy. We’ll explain more about BEM in another article.

It also integrates with GitHub, so non-developers who don’t know Git can see commit messages and know the progress of development work. With project management tools like this, we’ve been able to focus on what we’re doing, instead of working in the dark and spending a lot of time constantly checking in because we don’t know what each other is doing if we don’t report what we’re doing. It’s saved us time, and that time translates into growth. As an agency, time is life, and time is money. You need to win more projects, bigger projects, so you can pay your people. Entry-level principals are not confident in winning bigger projects, so they try to win more and smaller projects. Since you’re focused on sales, project management falls to your staff. But employees have responsibility but lack authority. That’s why systems in small companies are messy, and turnover in companies with messy systems is high, and it’s hard to find good employees. We decided to create all the systems and bring in a powerful tool to make them happen, so that I, the owner, could save energy building systems.

Let’s build AUTO with software, not employees

There are many more benefits of Height than I’ve mentioned here, but since this is a reflection on project management and the title is Height, I’ll explain more in the Height installment. Anyway, our system has now been revamped and evolved around Height, and we use it not only for project management, but also for document and file management. Under the hood, we have an AI feature called Copilot that does all sorts of automation to take the work off our hands. We’re not a company that hires more people and turns them into automation, we’re a company that introduces tools and turns them into automation.

I have issues with Height, and I want them to improve, and I need a lot of users to make those demands, so I’ve been spreading the word and asking for discount coupons from Height. I’ve been in communication with Height HQ for a few months now and they’ve partnered with my company. I’ve been busy at work and haven’t been able to market aggressively, but I’ve been able to take a weekend to do something I’ve been meaning to do for a long time: write a blog post about my thoughts on project management and the tools that have helped me with that.

Below is the link to apply for the Height promo code.

https://bit.ly/promo_height

You’ll receive your promo code by email as soon as you apply. You’ll get 10% off when you pay for an annual subscription.

--

--