멀티 롤을 수행하면 곧잘 맞닥뜨리는 문제 상황들과 해결책
지난 편 멀티 스레딩 즐기기 (1) 멀티 태스킹 말고, 멀티 롤을 수행한다는 것의 진짜 의미 에서는 멀티 스레딩이 왜 생각보다 더 어려운 건지 속성들을 풀어서 설명 해보았다.
그러한 속성들로 인해 흔히 벌어지게 되는 문제점과 해결책들을 이번 편에서 이어서 다뤄보겠다.
1. 유연함 부족으로 인한 어려움
멀티 스레딩은 필연적으로 리소스를 타이트하게 쓰게 된다. 매일, 매주 일정이 빡빡하다보니 잘 맞춰놓은 아다리가 조금이라도 어긋나면 계획이 빠그라진다. 완충제가 없다보니 외부의 충격에 쉬이 깨지게 된다. 또한 고려해야 될 변수가 많다보니 갑작스런 변수 발생시 최적의 대응책을 파악하는 계산식이 복잡해진다. 결과적으로 서프라이즈 발생시 쉽게 당황하게 되고 큰 스트레스를 겪게 된다. 이 때 조심해야 할 것은, 순간적인 당황함으로 그릇된 의사결정을 하기 쉽다는 점이다. 당장의 그 상황을 넘기는 것이 중요한 것이 아니라 전체적인 상황을 객관적으로 두고 우선 순위 조율을 다시 해야 하는 것이 중요하다. 당혹의 크기가 너무 크다면, 잠시 의사결정을 미루는 것도 방법이다.
물론 사후약방문 보다는 미연에 방지하는 것이 백번 낫다. 가능하다면 버퍼 시간(유연함)을 의도적으로 마련해두는 것이 좋다. 리소스상 그것이 어렵다면 앞선에서 미리 특정 스레드의 목표 납기일을 늦추는 조율을 하는 것이 좋다. 합리적인 조직이라면 그러한 조율에 언제든 열려있으니 과도한 책임감으로 혼자 끙끙 앓을 필요가 없다. 조직 내에서 멀티 스레드를 수행 중인 사람이라면 이미 어느 정도 신뢰를 얻고 있을테니.
2. 컨텍스트 스위칭으로 인한 어려움
멀티 스레드의 고질적인 문제다. 스레드를 바꿀 때마다 앞뒤 맥락을 복습하는 데에 시간을 쓰게 된다.준비 운동을 하루에 한번만 하면 될 것을 하루에도 여러 번 해야 하는 셈이다. 그로 인해 시간이 낭비될 뿐 아니라 아예 준비 운동만 하다가 하루가 끝날 때도 있다. 따라서 각 스레드별로 업무를 몰아서 배치하고, 각각에 집중할 수 있게끔 플래닝 하는 것이 좋다. 가령 목요일 오전에는 A 스레드를 살피고, 오후에는 B 스레드를 살핀다든지. 기본적으로 협업 동료들과 미팅 일정을 잡을 때에도이러한 것을 고려하여 잡는 습관을 들이면 좋다.
3. 정지 마찰력 증대로 인한 어려움
애초에 맡고 있는 스레드 자체가 여러 개다 보니, 업무를 플래닝 할 때에도 큼직하게 뭉뚱그려 플래닝 하기 쉽다. 가령 내일 오전에는 A 스레드 업무, 오후에는 B 스레드 업무, 이런 식으로 플래닝할 때의 문제는 막상 그 업무를 시작하려 할 때 업무 크기에 압도되어 선뜻 시작하기 어려움을 느끼게 되고, 머뭇거리다가 컨텍스트 스위칭 비용이 더 커지게 된다. 멀티 스레드의 경우에도 싱글 스레드를 하듯 최대한 잘게 (원자 단위까진 말고 분자 단위 정도로) 업무를 나눠서 플래닝 하는 것을 추천한다. '슬립 사운드 프로젝트 기획 보완 3시간' 으로 잡아두지 말고, '슬립 사운드 탐색뷰 디자인 피드백 20분', '슬립 사운드 탐색뷰 스트링 재정비 30분', '슬립 사운드 플레이어뷰 동작 정의 30분' ... 이런식으로 플래닝 해두면 별다른 정지 마찰력 없이 금세 해당 업무들을 처리해 나갈 수 있다.
4. 우선 순위 오판으로 인한 어려움
쌓여 있는 업무들을 전부 다 오늘 해야될 것 같은 압박감을 종종 느낀다. 개중에는 정말 그날까지 해야만 하는 투두들이 있을 수 있다. 내일이 팀 플래닝 날이라면, 그 전에 플래닝을 위해 미리 해둬야 할 것들을 진행해야 할 것이고, 오늘 지표가 갑자기 크게 하락했다면 지표 원인에 대한 딥다이브를 오늘 해야 할 것이다. 이러한 상식적인 우선 순위 설정이, 멀티 스레딩을 하다보면 종종 잘 안될 때가 있다. 이는 해야 하는 일과 별개로 '해치우고 싶은 일'이 산적해 있기 때문이다. 왠지 그것들을 얼른 해치워야만 '해야 하는 일'에 집중이 잘될 것 같다는 생각에, 해치우고 싶은 일들의 우선 순위를 높이는 것이다. 오늘 해야 할 것들이 정말 많다고 느껴진다면, 그 중 해야 할 것 외에 '해치우고 싶은 것'이 섞여있는지 확인해보자. 과감하게 다음 주로 미뤄도 괜찮은 업무들이 섞여있을 수 있다.
5. 고장난 업무 분업으로 인한 어려움
그냥 내가 하는 게 빠르다는 생각으로 불필요하게 업무를 끌어 안고 있는 경우가 종종 있다. 동료들에게 요청을 하는 것이 맞는데 그 요청 커뮤니케이션이 당장 더 귀찮아서 내가 하고, 팀원들에게 위임을 해야 하는데 교육하고 피드백을 주는 시간 비용이 당장 더 커보여서 내가 하고, 외주를 맡기는 것이 더 효율적인데 계약서를 쓰고 대금 지불하는 프로세스 밟는 리소스가 당장 더 들어 보이니... 그냥 내가 하는 것이다. 이따금 정말 바쁘고 정신 없을 때는 그것이 효율적일 수 있으나 이것이 두 세번 반복된다면 비합리적인 의사결정이 아닐지 돌아볼 필요가 있다. 억지로 시간을 내어 딱 한 가지 업무만 덜어내도(분업/위임/외주) 얼마나 크게 숨통이 트이는지 느끼게 될 것이다. 분업의 효용을 한번이라도 느끼기만 하면 이 문제는 절로 해결될 것이라 생각된다.
1) 유연함이 부족하고,
2) 컨텍스트 스위칭으로 버려지는 시간들이 많아지고,
3) 정지 마찰력이 커져서 업무 진행이 더뎌지고,
4) 우선 순위 오판으로 매일 매일 불필요한 업무까지 끌어다가 처리하고,
5) 혼자서 모든 업무를 끌어안고 해결하려 하다보면 ...
스트레스가 터지기 마련이다.
아 내가 리소스 유연함이 부족했구나, 버퍼 시간을 좀 둬야겠다.
아 내가 컨텍스트 스위칭 코스트가 컸구나, 스위칭 빈도를 줄여야겠다.
아 내가 업무 크기를 너무 크게 둬서 망설이게 되었구나, 크기를 좀더 잘게 쪼개봐야겠다.
아 내가 해치우고 싶은 일까지 우선 순위를 높였구나, 미룰 건 미뤄야겠다.
아 내가 나눠서 해야 할일을 혼자 끌어안고 있었구나, 적절하게 나눠야겠다.
더 나아가 이것들로 해결이 안되면,
아 내가 다소 비현실적인 멀티 스레딩을 하고 있구나, 대표를 포함한 리더들과 이야기를 해봐야겠다.
의 판단을 해야 하는데 스트레스가 터지면 위 내용처럼 뾰족하게 정돈하며 사고하기가 어렵다.
일차적으로 짜증이 치솟고, 막연한 힘듦과 불만을 토로하는 데에 그친다. 하지만 '나 너무 힘들어.'만으로는 문제 해결이 전혀 되지 않을 뿐더러 불평불만만 늘어놓는 투덜이로 전락하고 만다. 때로는 극도의 예민함으로 인해 동료와의 불필요한 감정 마찰을 빚기도 한다. 점점 문제 해결로부터 멀어지며 오히려 또다른 문제들을 야기하게 된다. 이 얼마나 속상한 결말인가.
어디가 어떻게 힘든지 현상들을 구체화하여 정의하여야 조직도 함께 적절한 해결책을 찾아 나아갈 수 있다.
이를 위해서는 한발 물러서서 주기적으로 회고를 하는 습관을 들이는 것을 추천하고 싶다.
끝으로, 여전히 멀티 스레딩 관련해서는 겪고 있는 어려움이 많다. '중장기적인 업무와 단기적인 업무 사이의 우선 순위 조율'이 바로 그 중 하나이다. 팀원과의 1on1, PM 들간의 기획 진행사항 싱크 등과 같은 업무는 그 효과가 단기적으로 드러나지 못한다. 오히려 추후 발생할 이슈들을 미연에 방지하기 위해, 원활한 협업을 위해 중장기적으로 지속 진행하는 업무이다. 헌데 내가 이번 주까지 해야 하는 업무가 있어서 이를 취소하거나 미룬다면? 한번 정도는 그래도 괜찮지 않을까? 라는 생각으로 미루다보면 어느 새 계속해서 미루고 있다. 그러다가 싱크 미스로 인한 이슈가 터지면 어떻게 될까. 뭐든 밸런스가 중요하다지만 아직까지도 적절한 밸런스 지점을 찾기가 어렵다. 또렷한 기준이 마련되면 좋을텐데, 그 기준점을 찾고 있는 요즘이다.
세계 2차 대전시 승승장구하던 독일의 패망을 두고, 2개의 전선을 두었던 것이 패인이었다는 이야기들이 있다. 하지만 이는 지극히 결과론적인 해석이라 생각한다. 1개의 전선을 두었다가 반대쪽이 뚫려서 더 빨리 패망했을 수도 있지 않은가.
시기적절한 멀티스레딩은 스타트업의 빠른 성장에 필연적인 현상이라 생각한다. 개인의 성장에도 중요하고.
그저 이를 효율적이고 건강하게 안착시키기 위한 모두의 노력이 필요할 뿐.
멀티 스레딩을 겪고 계신 분들 모두 모두 화이팅 !