# 위임과 협업

## 위임과 협업

> 내 역량을 확장하고 싶을 때 **협업**
>
> 생산성을 극대화하고 싶을 때 **위임**

### 협업(Collaboration)

> 하나의 테스크를 AI와 함께 해결해나가는 과정

* AI와 같은 Window를 공유하며 '질문-답변'을 주고 받으며 문제를 해결
*  AI의 지식과 나의 지식을 결합해 원하는 정보를 도출
*  AI라는 집단지성과 함께 **사고를 확장하며 역량을 키워감**

### 위임(Delegation)

> 두 개 이상의 테스크에서 AI와 역할을 분담하여 **병렬적으로 업무를 처리**하는 것

* 명확한 목적과 요구사항을 AI에게 전달하고, 동료로서 함께 업무를 수행하는 과정
*  AI에게 더 많은 컨텍스트와 정보를 전달해야 더 명확해진다.
* 반복적인 워크플로우는 자동화하여 **생산성 극대화**
* 위임 이후에는 결과를 **검토하고 피드백**하는 과정이 반드시 필요

### 협업 -> 위임

1. 문제의 윤곽이 명확해졌을 때
   1. 문제가 명확하지 않으면 내 의도를 명확히 전달되지 않을 수 있고 원하는 결과물이 나오지 않을 수 있음
2. 반복 가능한 패턴이 보이기 시작했을 때
   1. 반복 가능한 패턴을 발견했을 때 문제의 윤곽이 명확해짐
   2.      자동화가 가능하고, 위임이 가능해져 생산성을 높일 수 있게됨
3. 원하는 결과물을 정확히 지시할 수 있을 때
   1. 내가 원하는 결과물을 인지하고, 그 과정을 지시문으로 명확히 풀어낼 수 있을 때 위임 가능

### 위임 -> 협업

1. AI의 결과물이 예상과 다를 때
   1. AI에게 추가적인 컨텍스트를 제공하고 보완하는 협업이 필요
2. 더 나은 방향을 함께 고민해야할 때
3. 새로운 요구사항이 추가되었을 때

## AI 워크플로우

### 1. 요구사항 분석 (협업)

* 주어진 PRD를 바탕으로 요구사항을 정리
*  모호하거나 불확실한 부분은 AI와 함께 대화하며 명확화
* AI와 **협업**을 하면서 내가 모르는 부분들을 채우고, 그 과정에서 내 사고를 구조화
* 불확실성이 높은 부분으로 AI와 끊임없이 대화하며 함께 요구사항을 명확히 정리&#x20;

#### 문제 정의와 설계

> '주어진 PRD를 바탕으로 내가 고민해야 할 문제들을 정리해줘'

* AI에게 내가 모르거나 부족한 부분들을 질문하면서 문제들을 명확히 가시화하는 과정
* 내가 놓친 부분들을 AI가 보완하고 고도화하는 과정
* 문제를 파악하는 과정에서 개인 역량 상승

#### Task 분리 및 역할 분배

> '작성한 요구사항을 바탕으로 작성하되, Task에는 실행해야하는 목표, 개발 난이도, 개발 기간, 개발 난이도가 높을시 Sub Task로 분리해서 설명해줘'

* AI의 Context Window(기억력) 사이즈의 한계로 복잡한 테스크는 어떻게 서브테스크로 잘게 나눌지 플래닝 필수
* AI가 고품질의 소스코드를 작성하기 위해 반드시 필요한 단계
* 테스크를 명확히 분리하는 과정은 협업하는 과정에서 반드시 필요함&#x20;

### 2. 구현 설계 (위임)

* **구체적인 스펙을 정의**한 후 AI에게 일을 **위임**
*  AI는 구체적인 코드 구현에 집중

#### Task 개발 계획 수립

> '정의한 테스크 문서에서 가장 먼저 해야할것을 뽑아서 개발 계획을 상세히 세워줘'

* 협업을 통해 정의한 테스크 문서를 바탕으로 하나의 테스크를 수행할 떄 어떻게 해야하는지 상세 계획을 수립하는 단계
* AI에게 해당 테스크를 분석을 위임하고 계획을 만들어나가는 과정
*  하나의 테스크 안에 여러 단계로 나누어지고, 그 구조적인 단계를 하나씩 해결해나가는 과정에서 전체 컨텍스트 맥락이 유지되고, 유지된 컨텍스트를 바탕으로 고품질 소스코드가 만들어지게됨&#x20;

#### 계획에 맞게 소스코드 작성

> '주어진 계획에 맞게 구현해줘'

* 계획이 잘못 수립되게 되거나, 내 의도에 맞지 않는 단계가 섞여있는 경우 AI가 과하게 소스코드를 작성하게 되는 일이 종종 발생
* 이 때 내 의도에 맞는 소스코드를 작성할 수 있도록  추가적인 컨텍스트를 제공해야함

### 3. 코드리뷰 및 개선 (협업)

* AI가 작성한 코드를 '**협업**' 과정을 통해서 지속적으로 고도화
* 위임된 코드 결과물을 리뷰하며 디테일 보완
* AI 결과물이 의도와 다를 경우, 그 이유를 파악하고 추가 컨텍스트 제공
* 구체적인 스펙에서 누락된 부분은 다시 협업을 통해 고도화

#### AI가 작성한 코드 검토 및 피드백

> AI와 협업하면서 발생하는 병목은 산출물을 검토 및 리뷰하는 과정

* 사람의 인지적 한계로 내 의도를 명확하게 전달하지 못헀을 확률이 높음
* 인지적 한계를 극복하기 위해 의도가 제데로 전달되지 않은 부분들을 다시 명확히 전달하여 재요청하는 단계
* AI가 완성한 코드를 검토하는 과정을 통해 디테일을 챙기고 완성도를 높임
