콘텐츠로 이동

Empi가 작업 일정을 잡는 방식

일정 관리는 단순한 할 일 목록이 하지 못하는, Empi만의 일입니다. 플래너는 여러분의 작업을 받아 각 작업이 실제로 언제 이루어지는지를 하루 단위로 배치합니다. 그래서 마감이 닥치기 전에 모든 일이 들어맞는지 미리 확인하고, 들어맞지 않는 부분에 대해 대응할 수 있습니다.

The Planner view

플래너가 만들어 내는 것

제안(proposal): 여러분의 작업을 제때 끝낼 수 있도록 하루 단위로 배치한 캘린더 예약 묶음입니다. 플래너가 실행되어도 아무것도 실제로 예약되지 않습니다. 순위를 매기고 예측할 뿐입니다. 제안을 실제 캘린더 블록으로 바꾸는 것은 별개의 명시적인 단계입니다. Reserving time을 참고하세요.

Planner view는 이 제안을 살펴보고, 무엇이 바뀔지 검토하고, 적용하는 곳입니다.

무엇이 일정에 들어가는가

작업은 다음 조건이 모두 충족될 때에만 일정에 배치됩니다:

  • 리프(leaf) 작업일 것. 하위 작업이 없어야 합니다. 하위 작업이 있는 작업은 건너뛰고 대신 그 하위 작업들이 일정에 배치됩니다. 상위 작업의 추정치는 하위 작업들의 합에 불과하므로, 둘 다 일정에 넣으면 같은 작업을 두 번 예약하게 되기 때문입니다.
  • 본인에게 배정되어 있을 것. 플래너는 여러분의 작업을 계획하며, 동료의 작업은 결코 계획하지 않습니다.
  • Done 상태가 아닐 것. Backlog를 포함해 그 밖의 모든 상태는 일정에 배치됩니다.
  • 마감일과 추정치가 모두 있을 것. 마감이 없으면 무엇을 기준으로 계획할지 알 수 없고, 크기가 없으면 무엇을 맞춰 넣을지 알 수 없습니다.

마감일이나 추정치만 빠진 채 나머지 조건을 충족한 작업은 조용히 누락되지 않습니다. 그런 작업은 사유("Needs a due date", "Needs an estimate", 또는 둘 다)와 함께 Not planned yet에 나열되며, 클릭 한 번으로 해당 작업으로 이동해 값을 추가할 수 있습니다.

플래너는 여러분이 직접 예약해 둔 작업도 건너뜁니다. 스스로 고정해 둔 시간은 이미 확정된 것으로 간주됩니다. 즉 남은 일정에서 그만큼을 빼주며, 플래너는 그 시간을 결코 옮기지 않습니다.

작업이 고려되는 순서

두 가지가 순서를 결정하며, 그 우선순위는 다음과 같습니다: 의존성, 그다음 정렬 키.

의존성이 먼저이며, 이는 절대적입니다. 어떤 작업은 자신을 막고 있는 모든 것이 처리된 뒤에만 배치됩니다.

의존성이 충족된 작업들 사이에서의 순서는 다음과 같습니다:

  1. 연체(Overdue)가 우선. 이미 마감일이 지난 것은 맨 위로 올라갑니다.
  2. 진행 중인 작업이 다음. Doing 상태인 작업은 마감일이 더 늦더라도 아직 시작하지 않은 작업보다 우선됩니다. 시작한 일부터 끝내라는 뜻입니다.
  3. 가장 이른 마감일.
  4. 가장 높은 우선순위(P1이 P4보다 우선).
  5. 남은 작업량이 가장 적은 것을 마지막 동점 처리 기준으로 삼아, 두 번의 실행 사이에 아무 이유 없이 계획이 뒤섞이지 않도록 합니다.

작업을 하루에 채워 넣는 방식: 마감이 왕이다

플래너는 그 정렬된 목록을 훑으면서 각 작업을 마감일까지의 범위 안에서 아직 여유 용량이 남아 있는 가장 이른 날들에 부어 넣습니다. 마감이 이른 작업이 먼저 배치되므로, 그 작업들이 가장 이른 용량을 차지하고 나머지 작업은 남은 자리로 흘러 들어갑니다. 이것이 마감을 왕으로 만드는 이유입니다. 어떤 작업을 마감일 전에 끝낼 용량이 존재한다면, 그 작업은 그 용량을 차지합니다.

알아 둘 만한 몇 가지 결과가 있습니다:

  • Today는 아직 남아 있는 하루의 일부만 제공합니다. 이미 지나간 시간은 예약 가능한 용량이 아닙니다.
  • 하루에 담기에 너무 큰 작업은 연속된 여러 날에 걸쳐 나뉩니다. 직접 쪼갤 필요가 없습니다.
  • 작업의 시작일은 하한선입니다. 플래너는 그보다 이른 시점에 절대 예약하지 않으므로, 시작일과 마감일이 같은 작업은 앞당겨지지 않고 그 하루에 배치됩니다.
  • 블록은 깔끔합니다. 예약된 모든 블록은 5분 단위이며, 최대 슬롯 크기보다 크지 않고 최소 슬롯 크기보다 작지 않습니다. 최소 크기 미만의 자투리는 일부러 일정에 넣지 않고 남겨 둡니다. 작은 블록으로 캘린더를 어지럽히기보다 회의 사이에 자연스럽게 흡수될 만큼 작기 때문입니다.

두 슬롯 크기는 모두 직접 설정할 수 있습니다. Working hours and focus hours를 참고하세요.

Focus shaping: 최고 집중 시간대의 몰입 작업

각 날의 여유 용량은 두 개의 버킷으로 나뉩니다: peak 분(근무 시간과 peak focus 창에 모두 속하는 시간)과 그 밖의 나머지입니다.

Deep 작업은 peak 버킷에서 먼저 끌어오고, 그 버킷이 다 차야만 밖으로 넘칩니다. Shallow 작업은 하루의 나머지 시간에서 먼저 끌어옵니다. 결과적으로 몰입 작업은 여러분의 최상의 시간대에 배치되고, 얕은 작업은 그 시간대에서 빠지게 됩니다.

이것은 슬롯 품질에 대한 부드러운 선호일 뿐, 그 이상은 아닙니다. 어떤 작업이 일정에 들어가는지, 그 순서, 마감일을 결코 바꾸지 않습니다. P1인 shallow 작업도 여전히 deep 작업에게 peak 슬롯을 양보하며, shallow 작업은 일정에서 빠지느니 peak 시간으로 넘칩니다. peak focus 창을 하나도 지정하지 않으면, 플래너는 이 기능이 없을 때와 완전히 똑같이 동작합니다.

작업의 분(minutes)을 시각 슬롯에 배치할 때 플래너가 무엇을 최적화할지도 지정할 수 있습니다: Focus first(기본값. 작업을 하루에 걸쳐 나누어 최상의 슬롯에 배치하도록 허용) 또는 Reduce switching(하루치 작업 블록을 하나의 연속된 구간으로 유지). 둘 다 Settings의 Tasks에 있습니다.

휴식 시간

여러분은 기계가 아니며, 계획도 여러분을 기계처럼 취급해서는 안 됩니다. 휴식은 분 단위로 지정합니다: 연속 작업을 얼마나 한 뒤 휴식을 받아야 하는지, 그리고 그 휴식이 얼마나 지속되는지를 정합니다.

다음 블록을 배치하면 연속 작업 구간이 그 한도를 넘게 될 때, 플래너는 바로 앞에 Break을 예약한 뒤 구간을 초기화합니다. 휴식은 일정의 빈틈이 아니라 캘린더상의 실제 예약입니다. 눈에 보이고, 다른 사람에게 바쁨으로 표시되며, 하루 용량에서 차감되므로 계획이 여러분을 슬며시 과도하게 채우지 않습니다.

휴식 시간만큼 긴 자연스러운 빈틈은 이미 휴식으로 간주됩니다. 여유 시간, 회의, 이동은 모두 구간을 초기화하므로, Empi는 이미 있는 점심 위에 휴식을 겹쳐 쌓지 않습니다.

병렬 스레드(파이프)

스레드(thread)는 진행 중인 하나의 작업 단위입니다. 상위 작업 전체가 하나의 스레드로 간주됩니다. "Website redesign"의 하위 작업 세 개를 하는 것은 세 개가 아니라 하나의 맥락입니다. 회의는 스레드가 아닙니다. 오직 작업만이 스레드입니다.

여러분의 pipes 목표는 특정 날에 동시에 다루고 싶은 스레드의 개수입니다. 하나의 스레드는 처음 작업한 날부터 끝날 때까지, 중간에 손대지 않은 날에도 매일 자기 슬롯을 유지합니다. 이것이 새로운 일을 벌이기 전에 시작한 일을 끝내도록 유도합니다.

Pipes는 부드러운 목표이지 벽이 아닙니다. 우선순위는 마감일, 그다음 pipes, 그다음 우선순위입니다. 플래너는 pipe 개수를 지키기 위해 마감을 놓치는 일은 결코 하지 않습니다. 실현 가능한 전체 계획을 펼쳐 놓고, 그것이 요청한 것보다 더 많은 스레드를 필요로 했다면 이렇게 알려 줍니다: "fits, but needs 5 parallel threads instead of 3". 계획은 올바르고, 숫자는 정보이며, 그에 대해 무엇을 할지는 여러분의 선택입니다.

아무것도 숨기지 않는다

무언가가 잘 풀리지 않을 때, 플래너는 시도된 전체 계획을 경고와 함께 Heads up 아래에 보여 줍니다. 여러분의 작업을 조용히 누락시키는 법은 결코 없습니다.

경고 의미 대응
Overdue 이미 마감일이 지났습니다. 그래도 가장 먼저 일정에 배치됩니다. 일정을 다시 잡거나, 늦었음을 받아들이세요.
Won't fit in time 있는 용량을 모두 써도 마감일까지 끝낼 수 없습니다. 마감일을 연장하거나, 추정치를 줄이거나, 경쟁하는 작업의 우선순위를 조정하세요. Empi가 두 원인 중 어느 쪽에 해당하는지 알려 주고 클릭 한 번으로 "Extend due to "를 제안합니다.
Too many at once 계획이 pipes 목표보다 더 많은 병렬 스레드를 필요로 했습니다. 추가적인 맥락 전환을 감수하거나, 일부 마감일을 미루세요.
Dependency conflict 선행 작업이 그것에 의존하는 작업보다 늦게 마감되거나, 의존성 순환이 있습니다. 의존성이나 날짜를 고치세요. 일정 관리만으로는 해결할 수 없습니다.

경고와 나란히, Not planned yet 목록에는 마감일이나 추정치가 없어 애초에 일정에 들어가지 못한 모든 것이 담깁니다. 이 둘을 통해 어떤 작업이 왜 계획에 들어갔는지, 혹은 들어가지 못했는지를 항상 알 수 있습니다.

Note

"Won't fit in time"에 대한 해결책으로 작업 분할이 제시되는 일은 결코 없습니다. 플래너는 이미 작업을 여러 날에 걸쳐 스스로 펼쳐 놓으며, 분할해도 전체 추정치는 그대로 입니다. 분할은 용량을 만들어 낼 수 없습니다. 정직한 해법은 더 늦은 마감일, 더 작은 추정치, 또는 경쟁하는 작업의 우선순위 조정입니다.

현실에 맞춰 계획한다

용량은 "근무 시간의 총량"이 아닙니다. 실제로 비어 있는 시간입니다. 플래너는 정말로 이용할 수 없는 모든 것을 빼줍니다:

  • 연결된 일정에 있는 회의와 이벤트. 여러분이 일정 관리에 사용하는 캘린더의 모든 시간 지정 이벤트는 바쁜 시간입니다. 여기에는 점심도 포함됩니다. 이벤트의 유형은 그 분이 어느 버킷으로 집계될지를 결정할 뿐, 시간이 비었는지 여부를 결정하지 않습니다.
  • 이동 구간. 회의에 주소가 있으면 그 앞뒤의 이동 시간도 바쁜 시간이므로, 플래너는 길에서 보내는 틈에 작업을 밀어 넣지 않습니다.
  • Reserve 창. 들어올 회의를 위해 비워 둔 시간은 절대적인 고정입니다. 몰입 작업은 그 안에 결코 배치되지 않습니다.
  • 근무 외 시간. 어떤 창에도 속하지 않는 시간은 결코 일정에 잡히지 않으며, 기존 휴식 또한 그렇습니다.
  • 직접 예약한 시간. 이는 고정되어 결코 옮겨지지 않습니다.

겹치는 바쁜 시간은 한 번만 계산되고, 여러 날에 걸친 이벤트는 그 이벤트가 걸친 모든 날을 차지합니다. 그래서 여러분이 보는 숫자는 실제로 가진 여유 시간입니다.

캘린더 충돌 복구

고정한 블록은 보통 그 자리에 남습니다. 나중에 회의, 이동 시간 또는 여러 날의 부재 이벤트와 겹치면 Empi는 충돌 블록을 해제하고 미완료 시간을 여유가 있는 날에 다시 계획합니다. reserve window는 사용자가 확보한 시간이므로 이 복구를 시작하지 않습니다. 휴가나 부재로 하루 전체가 막힌 경우 evening wrap에도 그 이유가 표시됩니다.