의존성(Dependency)의 이해: 선행 작업과 후행 작업의 논리적 연결
의존성(Dependency)이란 무엇인가?
아무리 많은 인력과 무한한 예산이 있더라도, 프로젝트의 모든 작업을 동시에 짠! 하고 시작할 수는 없습니다. 왜냐하면 어떤 작업은 반드시 앞선 작업이 끝나야만 물리적으로 시작할 수 있는 제약 조건을 가지기 때문입니다. 이처럼 두 작업 사이에 존재하는 논리적인 제약 관계를 공정 관리에서는 의존성(Dependency) 또는 선후행 관계라고 부릅니다.
예를 들어 건축 현장에서 '기초 공사(선행 작업)'가 마무리되지 않았는데 허공에 '철골 기둥 세우기(후행 작업)'를 할 수는 없습니다. 소프트웨어 개발에서도 '기획 스펙 문서'가 나오지 않았는데 '코딩'을 먼저 시작할 수는 없는 것과 같은 이치입니다.
[그림 5] 간트차트 상에서 선행 작업과 후행 작업을 이어주는 의존성 연결 화살표
4가지 논리적 의존 관계 타입
작업 간의 연결 방식은 단순하지 않습니다. 국제 프로젝트 관리 표준(PMBOK)에서는 의존성의 타입을 4가지로 분류하고 있습니다.
| 의존성 타입 | 약어 | 설명 및 실무 예시 |
|---|---|---|
| 종료 후 시작 | FS (Finish-to-Start) | 선행 작업이 종료되어야만 후행 작업이 시작할 수 있음. 가장 일반적이고 많이 쓰이는 형태 (전체 의존성의 약 90% 이상). 예) 벽 페인트칠(A)이 완료되어야, 벽에 액자 걸기(B)를 시작할 수 있음. |
| 시작 후 시작 | SS (Start-to-Start) | 선행 작업이 시작되어야만 후행 작업도 시작할 수 있음. 예) 기초 콘크리트 붓기(A)를 시작해야, 콘크리트 평탄화 작업(B)도 시작할 수 있음. |
| 종료 후 종료 | FF (Finish-to-Finish) | 선행 작업이 종료되어야만 후행 작업도 종료할 수 있음. 예) 코드 개발(A)이 모두 끝나야, 전체 시스템 테스트(B)도 끝낼 수 있음. |
| 시작 후 종료 | SF (Start-to-Finish) | 선행 작업이 시작되어야만 후행 작업이 종료될 수 있음. (실무에서 거의 쓰이지 않는 매우 특수한 경우) |
선행 지연(Lead)과 후행 지연(Lag)
화살표로 두 작업을 연결한 뒤에도 물리적인 대기 시간이 필요할 때가 있습니다. 이를 공정 관리에서는 리드와 래그라고 부릅니다.
- Lag (지연 시간): 선행 작업이 끝나고 일정 시간 대기해야 후행 작업을 시작할 수 있는 경우입니다. 예를 들어 콘크리트를 다 붓고(A) 페인트를 칠하려면(B) 콘크리트가 굳는 '3일의 대기 시간(Lag=3)'이 필요합니다.
- Lead (앞당김 시간): 선행 작업이 채 끝나기 전에 후행 작업을 미리 당겨서 시작하는 경우입니다. 전체 공기를 단축시킬 때 사용하는 패스트 트래킹(Fast Tracking) 기법의 핵심이 됩니다.
의존성 설정이 가져다주는 마법: 자동 스케줄링 (Auto-Scheduling)
초보자들은 단순히 "작업이 순서대로 배치되었으니 선을 긋는다"고 착각하기 쉽지만, 의존성의 진짜 목적은 '변화에 대한 자동 대응'입니다.
만약 선행 작업인 A가 예상치 못한 문제로 1주일 지연되었다면 어떻게 될까요? 의존성 화살표가 제대로 연결되어 있다면, A작업의 막대가 뒤로 1주일 밀리는 순간 화살표로 연결된 B, C, D 등 모든 후속 작업들이 도미노처럼 차례대로 밀려나며 새로운 마감일을 자동으로 계산해 냅니다. 루디아 온라인 간트에서는 마우스 드래그 한 번으로 화살표를 잇기만 하면 이 강력한 오토 스케줄링 기능을 누릴 수 있습니다.
Tags: #의존성 #Dependency #선행작업 #프로젝트관리 #공정관리